Categories
Command Line HowTo Linux Ubuntu

ERROR: Failed to build gem native extension.

While attempting to install a package from gem, I encountered this issue:

sudo gem install dashing
Building native extensions.  This could take a while...
ERROR:  Error installing dashing:
	ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
	from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from extconf.rb:2:in `
' Gem files will remain installed in /var/lib/gems/1.9.1/gems/eventmachine-1.2.3 for inspection. Results logged to /var/lib/gems/1.9.1/gems/eventmachine-1.2.3/ext/gem_make.out

Simply to solve this you just need to install ruby-dev packages on ubuntu:

sudo apt-get install ruby-dev
Categories
Linux Ubuntu

VirtualBox (4.26) USB Issue: “unable to enumerate USB device on port n”

After a couple of hours trying to get a USB device (USB-to-Serial FTDI) working in VirtualBox with OSX host and Ubuntu 12.10 guest and receiving an error message similar to the follow:

usb 6-3: new full speed USB device number 24 using ohci_hcd
usb 6-3: device not accepting address 24, error -110
hub 6-0:1.0: unable to enumerate USB device on port 2

It turns out, the issue lies with VirtualBox, when the machine is given more than 1 processor it fails to properly mount any USB device. The only fix I have found to work is to simply reduce the number of processors back to 1. Once it’s returned the USB devices work simply by mounting them the usual way, from the VirtualBox menu > Devices > USB Devices >.

If anyone find a better solution, be sure to comment below.

Categories
Command Line HowTo Linux Ubuntu

what(): Serial Port failed to open: open: Permission denied

what():  Serial Port failed to open: open: Permission denied

Trying to get access to your serial port without the need for running whatever program as sudo or root? You’re probably not in the dialout group, if that’s the case, here’s the fix:

First, check you aren’t in the group:

groups alex

This will list all the groups the user is in, here the user is called ‘alex’, just substitute that for your own username. If the output doesn’t contain the dialout group, keep going. If it does, you might have another issue which this isn’t likely to solve.

sudo gpasswd --add alex dialout

This command will add the user ‘alex’ to the ‘dialout’ group. Once that’s done you’ll need to logout and back in again for the effects to take place.

Categories
Fedora HowTo Linux Ubuntu

Team Fortress 2 Segmentation Fault – Steam for Linux

After getting invited to join the Steam Beta for Linux, (after weeks of using the bypass) I decided to get playing some TF2. After the long install and download I booted it up. The Value splash screen with the tap-guy loads and the menu begins to load, but once it has finished, the game closed and returned to my desktop.

So I tried again, but this time ran steam through terminal in order to get some error messages. The following is what I found to occur when the game crashed:

response: CrashID=bp-ca59d62f-9c2b-47e4-8cd9-9d0b02121212
/home/alex/Steam/SteamApps/username/Team Fortress 2/hl2.sh: line 72: 4811 Segmentation fault ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
Game removed: AppID 440 "Team Fortress 2", ProcID 4811
saving roaming config store to 'sharedconfig.vdf'
roaming config store 2 saved successfully

To fix it, there’s a pretty simple solution. This is to add the option “-nojoy” to the launch options of the game:

  1. Right click Team Fortress 2 in the Library pane of Steam.
  2. Click “Properties”.
  3. Click “Set Launch Options”
  4. Add the following: -nojoy
  5. Hit OK and launch the game, everything should be working!

If you’re running Fedora, some folk have found another solution to this fix, if the previous doesn’t work:

sudo setsebool -P allow_execheap 1

Where it seems SELinux isn’t allowing the game to start for whatever reasons.

 

Categories
Arch Linux Command Line Linux Raspberry Pi Ubuntu

Setting up a static external IP address on a Raspberry Pi (For Free!)

If you’re planning on setting up your raspberry pi as a server or a project that’ll want you to access it from a static external IP address, here’s a really simple and quick way to get that up and running for free.

First off, this guide uses the free service from no-ip (www.no-ip.com), so you’ll want to head over there and register for that. (http://www.no-ip.com/newUser.php)

Done? Ok, great. Next you’ll want to create a new host, this can be found under the “Hosts/Redirects” page (this link should work if you’re logged in: https://www.no-ip.com/members/dns/)

Click “Add a Host”

Enter a name and choose one of the free domains from the drop down box (alternatively you are able to use an existing domain name or sub-domain if you have one.) There are some other settings, if you know what you’re doing go ahead and choose which you prefer but from those who just want to get this set up you can now click “Create Host” and you’re done.

Now, in order for this system to know what your pi’s current address is in order to assign it that domain address you need to install the client on the pi (thankfully, they have a Linux one!).

Download the latest version of their client – http://www.no-ip.com/downloads.php?page=linux

tar -zxvf noip-duc-linux.tar.gz
make
sudo make install

One there, you’ll be promted for your email and password for no-ip.com.
It will then show you have a host registered, just hit enter.
Then it will ask to update the host you made on the site “Do you wish to have host [somedescriptivename.no-ip.org] updated?[N] (y/N)”. Type “Y” then hit enter.
It’ll ask for an update interval, this can be left at 30.
Then it’ll ask if you want to “run something on successful update”, basically this allows a script to run if it gets a connection. Choose N and hit return.

That’s it, you should be done. Just test out the connection via SSH or ping and compare the IPs.

Categories
HowTo Linux Ubuntu

mlbviewer 2012 Installation guide for Ubuntu (MLB.TV on Linux)

Download mlbviewer:

Go and grab the latest version from the sourceforge page below:

http://sourceforge.net/projects/mlbviewer/

Unrar:

tar -zxvf mlbviewer2012.tar.gz

It doesn’t require any installation but you will need a few extras and the easiest way to install them is shown below:

Download PyXML:

PyXML is an XML processing tool for python which this project uses, sometimes it can be tricky to install python modules so we’ll be using setuptools which you can get from the link below.

If you’re unsure of what version you need, open terminal and type “python”, this will show the version of python you’re running. Mine was 2.7.4 so I downloaded “setuptools-0.6c11-py2.7.egg” I would imagine yours would be similar.

http://pypi.python.org/pypi/setuptools#cygwin-mac-os-x-linux-other

Once you have it, run it (replacing the version you downloaded for the one here):

sudo sh setuptools-0.6c11-py2.7.egg

Now to install PyXML it’s as simple as running:

sudo easy_install pyxml

That’s it, you’re done.

Optional – Install MPLAYER2:

MPLAYER2 offers at lot of advantages over MPLAYER however we’re most interested in it because it offers better streaming support and handle stream rate switches (important if you enable adaptive streaming in nexdef mode).

sudo add-apt-repository ppa:motumedia/mplayer-daily
sudo apt-get update
sudo apt-get install mplayer2

(Thanks to – Web Upd8)

Optional – Install mlbhls (for nextdef | HD):

Instructions as per in REQUIREMENTS-2012.txt in the mlbviewer package.

You’ll also need some extra packages which aren’t stated:

sudo apt-get install libconfig-dev libcurl4-gnutls-dev
svn co https://mlbtv-hls-nexdef.googlecode.com/svn/branches/experimental mlbhls
cd mlbhls
make
sudo cp mlbhls /usr/bin

Once that’s done, you should be able to get the higher bitrate streams too!

Using mlbplayer:

Setup:

The first time you run mlbviewer it will generate a config file which you’ll need to enter your Premium MLB.TV account details in, running mlbviewer will tell you where this file is located:

python mlbviewer.py

Go edit the file and enter your email as the “user” and your password after “pass”.

Now re-run mlbviewer and it should start up!

python mlbviewer.py

Sit back and enjoy!

Categories
Blog Command Line Featured Linux

10 Command Line Tricks I Wish I’d Always Known

One thing that Linux Guru’s and Terminal Wizards often argue is that it’s way quicker to use the command line to do anything in Linux than it is through menus and what not. While the jury is still out on this, there are a lot of things they know which do help put the ball in their court which can often take a lot of time exploring the terminal to discover. I’ve compiled a list of my favourite commands and tricks that I think that would have saved me a bunch of time if I’d been aware of them when I first ventured in to Linux.

1. Repeat Recent Commands:

Let’s say you’ve just ran a command but forgot you needed to run it as sudo, you can use !! to repeat it with the additional sudo at the beginning, as below:

alex:~$ apt-get install package
alex:~$ sudo !!
sudo apt-get install package

Additionally you’re able to use this to go back further than the last command by replacing the second ! for -n (where n is the number of commands ago you want to repeat).

alex:~$ ls
alex:~$ cd dir
alex:~$ cat file
alex:~$ !-3
ls

How about if you want to reuse the arguments from the last command but not the command itself, well it can do that too:

alex:~$ ls /home/alex/Desktop
alex:~$ cd !*
cd /home/alex/Desktop

2. Replace String In Last Command:

The use of the following command allows you to repeat the last command but replacing a string within it, useful if you made a mistake or typo. The follow example shows correcting a path for a change directory command.

alex:~$ cd /this/dir/is/wrong
alex:~$ ^wrong^right^
cd /this/dir/is/right

3. Reset:

Chances are, you’ll come across a situation where you’ve seemingly borked a terminal. Maybe you used cat on the wrong file or a program tried to export some strange characters which changed the settings. The following command should get you back to a fresh terminal quickly and you can often run it even when you don’t think you can. If the screen is really borked, try hitting enter before hand, typing reset and hitting enter again.

alex:~$ reset

4. Running A Command In The Background:

Adding an & after the command you run allows you to continue to use the terminal screen while keeping the process running. Below shows an example of opening gedit in the background but allowing me to continue using the terminal for other commands. Great for editing and compiling code with the minimal number of terminals open.

alex:~$ gedit &

Once ran it’ll give you the process ID which allows you to kill it easily once you’re done with it.

5. Exiting A Terminal & Keeping Background Processes Running:

If you’ve opened a bunch of processes in the background (as per previous command) but now you want to close the terminal screen but not these processes you can use the following to release the ownership of the processes and exit.

alex:~$ disown -a && exit

6. htop:

Similar to ‘top’ (which allows you to view tasks in real-time with other useful info such as memory and CPU usage) but it’s displayed in a much easier to understand and interactive. It allows you to kill tasks without entering its PID, search, filter, sort and a bunch of other features.

alex:~$ htop

7. Reverse History Search:

Ctrl + r

Using this will allow you to start typing and it’ll find the last command that contained the string you’re typing, hitting enter will execute that command. For example:

alex:~$ cd /home/alex/this/is/a/dir
ctrl+r & typing "a/dir"
(reverse-i-search)`': cd /home/alex/this/is/a/dir

8. Piping (Combining) Commands:

Piping commands allows you to pass the data that would usually be outputted to be directly passed as an input to another command, for example below is a list command being passed in to the less command to allow for scrolling of the data. This will work for most commands and experimentation is the best form of learning in this case.

alex:~$ ls | less

9. Auto Complete Command & File Names:

Half way through typing a command you can hit the Tab key and it’ll auto complete the word for you, if there are more than one other possible combinations a double tap of it will show you the possibilities. This also works for directory and files and can save some serious typing time.

10. Other useful Keyboard Shortcuts:

A few other keyboard shortcuts that are also useful to know (and not always as obvious as they should be):

Ctrl + c – kill current process
Ctrl + z – put current process in to the background
Ctrl + l – clear the terminal
Ctrl + a – set cursor to the start of the line
Ctrl + e – set cursor to the end of the line
Ctrl + shift + c – copy
Ctrl + shift + c – paste

Categories
Featured Linux Ubuntu

Toggle Touchpad With Keyboard Shortcut in Ubuntu

Install Jupiter

Instructions for Ubuntu 11.10, 11.04, 10.10, 10.04: http://www.webupd8.org/2011/09/jupiter-applet-finally-available-for.html

sudo add-apt-repository ppa:webupd8team/jupiter 
sudo apt-get update 
sudo apt-get install jupiter

Jupiter comes with a useful script to disable and re-enable the touchpad/track pad, it can be ran using the following command:

sudo /usr/lib/jupiter/scripts/touchpad

Now all you’ll need to do is add this command to a keyboard shortcut, below are instructions for several desktop environments.


In xfce:

Applications > Settings > Settings Manager

Click Keyboard

Click on the “Applications Shortcuts” tab.

Click Add:

Here you will be promped with a new window asking for the command you wish to run, enter the following:

sudo /usr/lib/jupiter/scripts/touchpad

Click OK and it will now ask for a keyboard shortcut. Simply press the key combination you want to assign to disabling the touchpad (for example, I used Alt+F1) the keys you’re pressing will show up and the window will close.

You’ll now see the command and shortcut in the list and you can now press that key combo to disable the trackpad and press it again to re-enable it.


In Gnome:

In Unity:

bish bash bosh.

Categories
Arch Linux Fedora HowTo Linux Ubuntu

Heat Management in Linux

When you first switch from Windows or OSX to Linux, one of the things you’ll probably first notice (especially if you’re using a laptop) is that it can run considerably hotter than the alternatives. There are a few things you can do to remedy this, however. The following software packages help you keep track of and cool down your laptop/netbook, how much will depend per machine but my HP Pavilion dm1 goes from around 60-70degrees without these tools installed to around 50-60degrees and the same goes for my older Acer Travelmate which dropped from 70-80degrees to 60-70degrees. Hopefully this information will help you shave off 10degrees from your laptop, making it cooler, easier to use and hopefully extending its life a little too!

lm-sensors

First thing that you’re going to want to do is be able to see what the temperature readings of the components (that have temperature sensors) inside your computer/laptop. This can be done by installing lm-sensors:

sudo apt-get install lm-sensors

Now you’ll want to run the script which probes all the possible sensors in your laptop:

sudo sensors-detect

You’ll be asked if you want to scan for sensors and what not, follow the on-screen instructions, mostly just pressing enter, if YES is written in capitals this is the default answer and it will scan. After several times it’ll ask you if you want to save the changes, make sure you do and then you’re done.

Now you can see the temperature the sensors are reading by using the following command:

sensors
cpufreq

cpufreq is a utility which scales the frequency of the CPU, either by monitoring the systems status (if it needs more, it’ll get more) or by user controlled settings. This essentially underclocks the CPU while it isn’t in use, reducing power usage and thus heat.

Installation:

sudo apt-get install cpufreq

The best choice would be to set cpufreq to on-demand (default) or to power-saving. Alternatively, if you’re using a laptop or netbook let jupiter take care of it for you:

jupiter

Jupiter is a light weight power and hardware control applet for Linux. It is designed to improve battery life of a portable Linux computer by integrating with the operating system and changing parameters of the computer based on battery or powered connection.

Additionally, Jupiter provides quick access to some of the commonly needed hardware controls like screen output and resolution, WIFI, and bluetooth.

If you use Linux on a portable computer, let Jupiter take the effort out of going mobile.

By using this to intelligently control the CPU frequency when on battery and AC along with the tuning to the kernel and hardware, it can make a huge difference to the temperature expelled by your laptop.

Ubuntu 11:10 installation instructions: here

Graphics Card Drivers

If you have a dedicated graphics card in your laptop, you’ll also be better off installing the proprietary graphics drivers provided by the hardware vendor. While the open source ones do an awesome job of getting the card to work, more often than not they don’t include any control over the frequency scaling and keep the card running at max, along with all those other little features the card has, they’ll probably all always be running.

Nvidia : Link
ATI/AMD : Link

Categories
HowTo Linux Ubuntu

Updating The Kernel in Ubuntu

Download the latest from here:

http://kernel.ubuntu.com/~kernel-ppa/mainline/

The folders correspond to kernel versions and should also include the ubuntu version, for example I chose to update 11.10 (oneiric) from “3.0.0-14-generic” to “3.1.4”, this was in a directory called “v3.1.4-oneiric/“.

You’ll need 3 files (replace * with the kernel version you’ve downloaded):

linux-headers-*_all.deb

For 64 bit systems (replace * with the kernel version you’ve downloaded):

linux-headers-*_amd64.deb
linux-image-*_amd64.deb

For 32 bit systems (replace * with the kernel version you’ve downloaded):

linux-headers-*_i386.deb
linux-image-*_i386.deb

Once you have the files, install them in the following order using these commands (of course, replacing the version number for the ones you’ve downloaded):
sudo dpkg -U linux-headers-3.1.4-030104_3.1.4-030104.201111281851_all.deb
sudo dpkg -U linux-headers-3.1.4-030104-generic_3.1.4-030104.201111281851_amd64.deb
sudo dpkg -U linux-image-3.1.4-030104-generic_3.1.4-030104.201111281851_amd64.deb

Once that’s done, reboot. Once you’re back use the following command to check that the kernel you’re using is the one you’ve just downloaded and installed!

uname -r