CPU and motherboard
The Linux kernel in versions of (K)Ubuntu starting with Karmic Koala implemented mandatory CPU temperature and fan speed sensor monitoring (which was optional in previous kernels). The output from the sensors is used to effect CPU scaling (throttling) in the event of "out of range" temperature values. However, not all motherboards/CPUs have sensor drivers available, and due to a bug in the feedback routine, missing sensors drivers incorrectly report as an "out of range" error in the kernel. Originally this threw multiple errors which were logged (using rsyslogd) to both the /var/log/kern.log and the /var/log/syslog files, filling them to multiple Gb size within a few hours. This had the effect of slowing, then freezing, the machine. (Eventually the machine will simply not boot.)
The workaround involves disabling the ONDEMAND module.
Disable CPU Frequency scaling
This error shows on my system (at boot and in the kernel and system logs) as:
powernow-k8: failing targ, change pending bit set
My motherboard does not have drivers for my CPU fan sensor. Therefore, the Linux kernel cannot monitor the temperature and fan speeds properly and throttles the CPU (aka frequency scaling) inappropriately. This has the effect of slowing or freezing my computer. To turn off this behavior, I used the Debian RCConf utility:
sudo apt-get install rcconf dialog sudo rcconf
and unchecked the ONDEMAND item. (I also unchecked the fan control item). I then rebooted. For more info, see this.
- An alternative command is:
sudo update-rc.d ondemand disable
(Note: These instructions may not work with newer Linux kernels.)
libsensors (libsensors3 and/or libsensors4) is a module that allows an interface (such as lm-sensors) to monitor your motherboard/CPU temp and fan speeds. You can adjust settings:
sudo kate /etc/sensors.conf sensors -s
libsensors and lm-sensors are not used by the Linux kernel (which uses other routines).
Some hardware CPU sensors are not recognized by the Linux kernel, causing system slowdown or freezing. Here is some info about hardware/sensors problems.
Sensors-applet (Motherboard monitoring)
Sensors-applet (or xsensors) is the Gnome (Ubuntu) frontend for lm-sensors. These sensors monitor the temperature and fan-speed sensors of your motherboard.
sudo apt-get install sensors-applet lm-sensors sudo sensors-detect sensors-applet
- Make sure your sensors are installed.
For more info, see this thread.
Frequency Out of Range / Choose New Resolution
- If this error appears when booting Natty Narwhal or later, see the solution found here at Ubuntu Forums:
- Edit the grub configuration file:
sudo gedit /etc/default/grub
- Edit the lines:
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480
- by removing the comment hashmark and choosing an appropriate resolution so that the lines resemble:
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=1024x768
- Re-build the grub configuration file:
Install Latest Nvidia/ATI drivers
Ubuntu uses a GUI frontend to Jockey for the installation of the proprietary nVidia drivers (and other proprietary drivers).
- Menu -> System -> Hardware Drivers
- Sometimes after a kernel upgrade a proprietary driver may stop working. In such a case, try installing the new linux-headers that match the newly upgraded kernel:
sudo apt-get install linux-headers-$(uname -r)
- If dkms and build-essential have never been installed on your system, these can also be worthwhile:
sudo apt-get install dkms build-essential
Intel integrated graphics cards
- None of my computers with Intel integrated graphics had problems installing Precise. If the screen blanks or freezes at bootup, however, or flashes a "Frequency Out of Range" error several times, these steps may work around this problem. (I found, however, that these changes were NOT necessary and actually provided me with a worse boot up appearance).
- When booting up, choose recovery mode as root (or "root with networking"). This will give the command line (as root user).
- Edit the Grub2 configuration file:
sudo nano /etc/default/grub
- Make sure a graphics mode is specified (i.e. the relevant line is uncommented), according to these steps, such as:
- Change the line:
- or, alternatively,
- In previous versions of (K)Ubuntu I used
- but I don't think this option is required or used any longer.
- Then regenerate the Grub2 configuration file:
sudo grub-mkconfig --output=/boot/grub/grub.cfg
- After rebooting, graphics will usually work.
Intel graphics resolution problems
- On a fresh installation of Karmic Koala I had no problems with my onboard Intel graphics card. However, on an update from Jaunty to Karmic, I could not get higher screen resolutions -- the same problem I had in Jaunty. A solution to achieve higher resolutions is to revert to the old Intel drivers (used in Intrepid), as detailed here.
Screen Keeps Flickering
If you have an Intel Corporation Mobile 915GM/GMS/910GML card, your screen may flicker every 5-10 seconds. To prevent this:
- Menu -> System -> Administration -> Advanced -> Service Manager -> Uncheck "Detect RANDR (monitor) changes"
sudo dpkg-reconfigure xserver-xorg
Before installing any driver for ATI or nvidia, please make backup xorg.conf before following this method.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
If you have edited this file but would like it to be automatically updated again, run the following command:
sudo dpkg-reconfigure -phigh xserver-xorg
If you want to try this xorg.conf after installing the driver, you must back up your xorg.conf as following. And then, edit /etc/X11/xorg.conf in text editor. Add or modify this xorg.conf sample.
xorg.conf for nvidia
Section "Screen" Identifier "Default Screen" Device "Configured Video Device" Monitor "Configured Monitor" SubSection "Display" Depth 16 Modes "1280x1024" "1024x768" Option "AddARGBGLXVisuals" "True" EndSubSection Option "AddARGBGLXVisuals" "True" Defaultdepth 24 EndSection Section "Module" Load "glx" Load "GLcore" Load "v4l" EndSection Section "Device" Identifier "Configured Video Device" Boardname "vesa" Busid "PCI:1:0:0" Driver "nvidia" Screen 0 EndSection Section "Device" Identifier "Device0" BoardName "Generic Geforce 5500" Driver "nvidia" Vendorname "NVIDIA Corporation" Option "DualHead" "1" Option "ShadowFB" "1" Option "FPScale" "1" Option "TwinView" "True" Option "TwinViewOrientation" "RightOf" Option "UseEdidFreqs" "True" Option "Metamodes" "1024x768,1024x768" Option "UseDisplayDevice" "DFP" EndSection Section "Device" Identifier "Videocard0" Driver "nv" VendorName "NVIDIA Corporation" BoardName "GeForce 7600 GT" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" EndSection Section "ServerLayout" Identifier "Default Layout" screen 0 "Default Screen" 0 0 EndSection Section "Extensions" Option "Composite" "Enable" EndSection
xorg.conf for intel
- Make sure you try the solution here (including sudo update-grub and rebooting) before creating a new xorg.conf. It may solve your problem and you may not need this step.
Section "Device" Identifier "Configured Video Device" Driver "intel" EndSection # Section "Monitor" Identifier "Configured Monitor" EndSection # Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection
Installation of ATI and nVidia Graphics drivers
The current proprietary nVidia drivers are automatically installed using:
- Menu -> System -> Administration -> Hardware Drivers
Look for the current drivers to activate there.
- Here are alternate manual instructions.
- Please make a backup of xorg.conf before following this method.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
- Install the nvidia-settings package:
sudo apt-get install nvidia-settings
- Download the nVidia driver:
wget -O NVIDIA-Linux-x86-pkg1.run http://www.nvidia.com/Download/index.aspx?lang=en-us sudo sh NVIDIA-Linux-x86-pkg1.run
and choose yes to any verbose response. After you install the driver, reboot your computer.
If you have problems with ATI drivers after upgrading, check this link for solutions to common problems with ATI.
Monitors / Displays
Turn off power saving
Even when on AC power, the power saver feature of Ubuntu sometimes changes the screen brightness to the battery setting on laptops. This was a problem with the ACPI power management module in the past, but should now be fixed. If not, change the settings:
- To access the Guidance Power Manager module, click on the power icon on the desktop taskbar.
- Change the brightness setting for "Battery powered" to maximum.
You can also turn off power management settings (invoked when the computer is idle):
- Menu -> System -> Preferences -> Power Management -> Display -> Put display to sleep when inactive for: Never -> Close
Configure Dual Monitors with nVidia
- Make sure that the nVidia driver has been installed and is functioning properly on your first screen. Also, make sure both monitors are connected.
- Menu -> Administration -> NVIDIA X Server Settings
- or from the command-line terminal (Terminal or Konsole) type:
- Select "X Server Display Configuration".
- You should see 3 boxes (2 if your card doesn't have an S-Video out). From here you can configure all of your card's outputs.
- Check the "(Disabled)" box.
- Select "Configure...".
- The most common choice is TwinView. Select it.
- Setup the desired screen resolutions and positions of your two active displays.
- The new display will likely have resolution set to "Auto" to match your first. Change this if you wish.
- Leave the first screen's position as "Absolute" and set your second display's position relative to that.
- "Clone" means the same output on both.
- Once you are satisfied with your settings, hit Apply to test them.
- Note: if your displays are side-by-side, the kicker may extend across both screens as well as any maximized applications. This will be corrected when the X server is restarted.
- If everything else is ok, hit "Save to X Configuration File". Now hit Ctrl+Alt+Backspace to restart X. You now have 2 screens!
- Troubleshooting: if the X server fails to reload you can recover your old X configuration. In a terminal:
sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf
Scan hard drive and repair bad blocks
- A hard drive (including an external USB hard drive) can be formatted with the NTFS file system (used by Windows computers) using either GParted or KDE Partition Manager.
- To scan for bad blocks on an NTFS drive (designated, for example, as /dev/sdb1, by one of the partition managers listed above):
sudo badblocks -nvs /dev/sdb1
- The best utility for scanning and fixing an NTFS drive is still the Windows chkdsk utility. If the drive is mounted as drive E:, for example, in the Windows command line (run as an administrator):
chkdsk e: /f /r
- where /f indicates to fix the filesystem and /r indicates to relocate bad blocks.
Smartmontools is a utility to monitor ATAPI- and SCSI-based hard drives using a daemon.
sudo apt-get install smartmontools
- GSmartControl is a GUI for the SmartControl module of smartmontools. Install:
sudo apt-get install gsmartcontrol
- Also see this section for information about running Ubuntu from a USB drive.
- See this section for recommendations about securing USB drive access.
Add MTP capability
Many MP3 players, as well as the latest Android devices, use MTP (Media Transport Protocol) for transferring data to the device storage.
- In KDE (Kubuntu), enable MTP capabilities by installing the kio-mtp package:
sudo apt-get install kio-mtp
- After installation, the device should appear in the Dolphin (or Konqueror or Rekong) file manager when the USB cable is plugged in.
- A Gnome-based utility, gMTP, for managing MTP-capable devices is also available:
sudo apt-get install gmtp
- Troubleshooting Android device connectivity: As a security precaution the newest Android devices do not have USB transfer capabilities turned on by default. It is necessary to carefully consult your device's user manual to find the method for enabling USB transfers (also known as "USB debugging mode" on many devices). For example, on my device, it was necessary to tap the "Settings -> About phone -> Build #" button 7 times to merely enable the USB debugging option, and then enable "Settings -> Developer options -> USB debugging" as a separate step!
Printers & Scanners
Add a Printer
- Menu -> System -> Administration -> Printing -> Server -> New -> Printer
Most of the time, your printer (if connected and turned on) will be detected automatically.
My network printer with its own IP address at 192.168.0.124 was correctly installed at
You can also choose printers on a Windows system via Samba and other types of networked printers, in addition to directly connected printers.
- An alternative method to access the CUPS interface is through a web browser. Go to the URL:
Change default CUPS printer margins
- CUPS uses the maximum printable area of the chosen printer by default; there are no margins. The default settings for any printer can be changed in the PPD file for the specific printer found in the /etc/cups/ppd folder. Dimensions used in the PPD file are generally in points (in Postscript, 1 inch = 72 points). For my printer, Letter size is 612 x 792 points. I changed this to 576 x 756 points to make Letter size print 8 x 10.5 inches on the page.
- Another easy method (to adjust margins) is to create a Custom paper size with the desired margins and use this as the default. (This only works for printers whose PPD files allow custom paper sizes). For example, create a Custom paper size that is 8 inches x 10.5 inches (which would leave a 0.5 inch margin on all sides) and set it as the default. This is easiest to accomplish through the browser-based configuration utility. Start the CUPS interface through the web browser URL:
Then from this interface set the Default Options for your printer:
- CUPS -> Printers -> My Default Printer -> Set Default Options -> Media Size: Custom
- -> Width: 8 -> Height: 10.5 -> Units: Inches -> Set Default Options
Now the "Custom.8x10.5" Media Size should appear in the Printer Options section for your printer. (You can then choose between this media size and the essentially marginless "Letter" media size at any time.)
Note: 8 x 10.5 inches = 203.2 x 266.7 mm = 576 x 756 points in Postscript (72 points per inch in Postscript).
Most Brother printers are auto-detected or can be installed directly from the CUPS interface. For additional drivers and instructions see the Brother help site. For information on a specific model, see the Linux OpenPrinting site.
For Hewlett Packard printers / scanners, install hplip and hplip-gui.
sudo apt-get install hplip hplip-gui
- Add the printer:
- Menu -> Applications > System Tools > HP Toolbox
This should set up printer / scanners for scanning as well.
- For scanning, install Xsane:
sudo apt-get install sane xsane
- Menu -> Applications -> Graphics > Xsane image scanning
A full library of Linux drivers for HP printers is here.
If you get no sound with a fresh install, check that the sound levels are not set to zero. Click on the sound (speaker) icon on the panel, and then mixer. You may need to expand the dialog window to show labels. Ensure levels aren't set to zero, especially PCM.
Sound in (K)Ubuntu is routed by Phonon either directly to your sound card or through the PulseAudio sound system. To use PulseAudio, you must install it. This can be done by installing the PulseAudio control modules (which will install pulseaudio as a dependency):
- Install PulseAudio with the control modules:
sudo apt-get install pavucontrol paprefs
- Although I no longer use it, in older versions of (K)Ubuntu I also (optionally) installed a system tray widget:
sudo apt-get install padevchooser padevchooser
Some experimentation with the settings in
- Menu -> System -> System Settings -> Multimedia
may be necessary to make sound on your system work properly.
Try setting PulseAudio as the first sound system if you are having troubles getting sound (even if you are using ALSA). If that doesn't work, try making it the last choice.
Some programs require ALSA sound and try to send sound directly through ALSA drivers. Check your program's preferences section to see if ALSA is selected. You may have to switch to PulseAudio (or even OSSound) if you can't get sound.
HDMI with PulseAudio
I could only get my HDMI audio on my computer to work this way, and I can't quite figure out why it works.
- I checked to make sure my Mobile Intel 4 Series HDMI audio driver was installed (it is part of the most recent kernels):
aplay -l aplay -L
This told me the HDMI card was recognized and configured properly. The problem was that no matter what I did, I couldn't get the sound piped through the HDMI card using ALSA, Kmix or any other settings (I tried every permutation).
- In PAVUControl I selected the HDMI card as the output device:
- Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Digital Stereo (HDMI) Output
Then everything played through the HDMI audio card (through the cable to my HDTV).
This worked whether I had PulseAudio selected as the default audio or not (in System settings -> Multimedia). Don't ask me why. If PulseAudio Volume Control is not yet installed, install it:
sudo apt-get install pavucontrol
- My HDMI port/output is only recognized if the HDMI cable is plugged in at bootup (it does not matter whether the HDTV power is on or not). If I plug in the HDMI cable after bootup, it isn't recognized.
- After doing this, every program I use works: VLC, Audacious, or whatever. It does not seem to matter whether the application is using Default, ALSA, or PulseAudio for the audio output plugin. None of this makes sense to me, but it works. I'm happy to be able to play HDMI movies (through VLC) to my HDTV.
- To change sound output back to my computer's internal speakers (ALSA), I returned the output setting:
- Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Analog Stereo Output
Recording with PulseAudio
To set the PulseAudio inputs that will be recorded by an application (such as Audacity or FFMPEG), the recording must be already started! Only then can the inputs (to be recorded) be selectable in PulseAudio.
- For example, to record from a plug in microphone using Audacity, make sure the microphone is plugged in. Make sure in the Sound Mixer (icon) that the microphone is not muted and that the levels are set appropriately.
- In PulseAudio Volume Control, select the device that will be the input.
- Menu -> Multimedia -> PulseAudio Volume Control -> Input Devices -> Show: All Input Devices
- -> Internal Analog Audio Stereo: Port: Analog microphone
Of course, you should use the device you wish to use here. You can also select the Monitor of Internal Analog Audio Stereo device, which will use as an input to the recording/capture application whatever happens to be playing through the sound card (except for hardware inputs).
- Start Audacity (or other recording application). Make sure (in Audacity) that the Devices toolbar is visible:
- Menu -> Multimedia -> Audacity -> View -> Toolbars -> Device Toolbar (ticked)
Assuming you are using ALSA, make sure ALSA is selected, and that pulse is selected for both the output and microphone input on the Device Toolbar. Start recording.
- Start PulseAudio Volume Control. Under the Recording tab, you should see Audacity listed as "ALSA plugin: [audacity]: ALSA Capture from: Internal Audio Analog Stereo. If it isn't, then select it. (This is the tricky part that took me a long time to discover.)
Airport Express with Pulse Audio
Audio output can be streamed over your local network to an Airport Express. These capabilities require pulseaudio-module-zeroconf (for the Zeroconf/Bonjour networking protocol) and pulseaudio-module-raop (for Airport Express).
- Install PulseAudio:
sudo apt-get install pulseaudio
- Reboot to finish the installation.
- Select PulseAudio as the output device in
- Menu -> System -> System Settings -> Multimedia -> Device Preference
- and move "Playback/recording through the PulseAudio sound server" to the top of every category (or at least the ones for which you wish to use PulseAudio).
- Test some audio (e.g. playback through Amarok) to make sure the PulseAudio system is working. Some applications specifically require that the PulseAudio output is specified in their configuration settings, and some applications require a separate PulseAudio plugin to function properly.
- Install additional modules in order to use Bonjour/Zeroconf and raop (Airport Express output):
sudo apt-get install pulseaudio-module-zeroconf pulseaudio-module-raop
- Install utilities to control the preferences and volume of various PulseAudio devices:
sudo apt-get install paprefs pavucontrol
- Enable discovery of the Airport Express by PulseAudio:
- Menu -> Settings -> PulseAudio Preferences (Sound Audio preferences) -> Network Access
and check both:
- Make discoverable network sound devices available locally
- Make discoverable Apple Airtunes devices available locally
- It is not clear to me which ports need to remain unblocked in order for Bonjour/Zeroconf and mDNS to discover the AEx. mDNS and Bonjour/Zeroconf use ports 5353, 5000, and 6000. (The PulseAudio server uses port 4713.) However, even when I unblock these the AEx doesn't seem to be able to be discovered until I turn off the firewall completely. (Once the AEx is discovered I turn the firewall back on and then have no other problems). I usually just add the IP address of the Airport Express on the LAN to the list of firewall-allowed connections. (Doing this still doesn't allow it to be discovered, though, for unclear reasons. Still, as long as a connection to the IP address of the AEx is allowed, I can turn the firewall back immediately after the AEx is located by the Zeroconf discovery and everything continues to stream fine.)
- If your LAN's router allows traffic-shaping (QoS prioritization), giving priority to the traffic to/from the Airport Express can improve performance. Finally, be aware that screensavers can interrupt uninterrupted smooth audio output from a PC. If traffic to the AEx becomes choppy, disable your screensaver.
- Open PulseAudio Volume Control:
- Menu -> Multimedia -> PulseAudio Volume Control
- If the AEx has been successfully discovered (the firewall may have to be turned off temporarily in order for the AEx to be discovered) the name of the AEx should show up as an Output Device:
- PulseAudio Volume Control -> Output Device -> My AEx Name
- If desired, the AEx can be set as the default "fallback" output device to always be used:
- PulseAudio Volume Control -> Output Device -> My AEx Name -> click "Set as fallback" icon
- If it is not set as the default fallback output device, it must be manually selected as an output device each time.
- Start the application (such as Amarok or Audacious). To manually select which output device should be used, open PulseAudio Volume Control and choose the Playback output device for the application:
- PulseAudio Volume Control -> Playback -> ALSA plugin [Amarok]: ALSA Playback on: -> My AEx Name
- The output volume (for any of the output devices) can be set:
- PulseAudio Volume Control -> Output Device -> My AEx Name
This was my old method. It works, but is probably unnecessary (and loads a lot of additional modules).
- Install padvechooser (which also install paman, pavumeter, and paprefs):
sudo apt-get install padevchooser
- Padevchooser is an applet for the taskbar panel. The PulseAudio Manager is accessible through the applet. Start Manager:
- Menu -> Multimedia -> PulseAudio Device Chooser -> Manager -> Devices -> Sinks
- Select the Airport Express as the output device ("sink"):
My AEx is discovered, but I got no sound through it until I selected it as the default sink (output) by one of two methods:
- From the PulseAudio Device Chooser:
- Menu -> Multimedia -> PulseAudio Device Chooser -> Manager -> Devices -> Sinks
- I then noted the name of my Airport Express device to be raop.Base-Station-e60157.local, so I entered that as the sink:
- PulseAudio Device Chooser -> Default sink -> Other -> raop.Base-Station-e60157.local
raop-client (Airport Express streaming)
Another method to stream audio to the Airport Express uses raop-client, a tool written in Ruby. See information here.
GSTransmit (Airport Express streaming)
GSTransmit is a tool to allow GStreamer-based utilities to stream output to an Apple AirTunes Device (such as the Airport Express). It is available as a self-installing .deb file from the website.
Airfoil (Airport Express streaming)
You can stream media from a PC running Windows or Mac OS X connected to an Airport Express network to your (K)Ubuntu Linux desktop, using Airfoil. (Unfortunately you cannot send media output from (K)Ubuntu to the Airport Express network with Airfoil, only receive.) This can be useful in a distributed multimedia system, for example, in which your (K)Ubuntu PC is connected to a media center. You must be running Mono. You can download the .deb package at Rogue Amoeba. Installation instructions are at Rogue Amoeba Linux support.
Activate side-mouse-buttons in FireFox
Adding two lines to xorg.conf will activate side-mouse-buttons in FireFox.
- This should work with most brands of the 5-button mouse. Here is a list of mice that worked with this instruction.
- Logitech MX310
- Logitech MX510
- Logitech MX518
- Logitech MX700
- Logitech MX Revolution
- Intellimouse Explorer (first edition)
- Razer Copperhead
- Backup X.org configuration file
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
- Modify the X.org configuration file
kdesu kate /etc/X11/xorg.conf
- Find the Input Device section for your mouse and add two lines as shown below.
- You may also increase the number of buttons if your mouse has more than 7 -- just fix the rest of the section based upon the number of buttons.
- Note: "back/forward", "wheel click" & "tilt left/right" all count as buttons
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true" EndSection
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true" Option "Buttons" "7" Option "ButtonMapping" "1 2 3 6 7" EndSection
For Synaptics Touchpads:
sudo apt-get install gsynaptics
For more info, see the Ubuntu help wiki.
Wacom Pen Tablets
Support for the Wacom pen tablet is integrated into Jaunty by default, including for hotplugging. For more info, see the Ubuntu documentation.
Smart Card Readers
- Read the Debian wiki for full information about implementation of a smart card reader solution and this Debian wiki page for smart card / OpenPGP integration.
- See this list of smart card applications for Linux.
PC/SC is a set of cross-platform drivers, middleware, and other tools and applications for various smart cards and readers.
- Install the PC / SC Smart Card Daemon (pcscd):
sudo apt-get install pcscd pcsc-tools
- Find out if the Smart Card Reader is recognised:
- Install middleware from the Smart Card Reader manufacturer.
- Consider registering a personal certificate with an authority such as LuxTrust.
- These instructions work with the SCR331 Smart Card reader, but may be applicable to other devices as well.
OpenCryptoki is a Debian / Ubuntu-supported implementation that includes drivers and libraries to enable PKCS #11 tokens and IBM cryptographic hardware such as Trusted Computing Platform (TPM) cryptographic devices. Install:
sudo apt-get install opencryptoki
GnuPG Smart Cards
- Install the PKCS Smart Card Daemon:
sudo apt-get install gnupg-pkcs11-scd
LIRC (Infrared Remote Controls)
sudo apt-get install lirc
Remuco (Bluetooth and WiFi Remote Controls)
Remuco is a utility for controlling many multimedia players (such as VLC, Amarok, Rhythmbox, Audacious, and many others) using a Bluetooth or WiFi remote control. Each player has its own package. For example, the VLC package is named remuco-vlc and can be installed:
sudo apt-get install remuco-vlc
BlueZ is the package that allows Bluetooth connectivity in Ubuntu Linux. This package is included within the current kernel of Ubuntu. To add utilities to check whether your Bluetooth adapter's firmware is current, install:
sudo apt-get install bluez-utils bluez-firmware
The Wiimote (Wii Remote Control) uses both Bluetooth and Infra-red technology. It communicates with Ubuntu Linux using the incorporated BlueZ Bluetooth drivers and/or LIRC drivers. (It can function with Bluetooth alone, however.) You will need a Bluetooth receiver on your PC (such as a Bluetooth USB stick or built-in Bluetooth receiver, for example). (Note: not all Bluetooth receivers will work with the Bluez drivers. Check this list or test yours first.)
- Install the cwiid Wiimote controller package and the lswm Wiimote discovery package:
sudo apt-get install wminput lswm
- Install the drivers (or just reboot):
- Note: You can also add uinput to the modules files so it loads automatically at bootup:
sudo echo "uinput" >>/etc/modules
Run (while pressing button 1/2 on the Wiimote):
For more info, and to learn how to enable the infra-red functions, see this guide.
USB Wireless Cards
- See this review of Linux-favorable wireless USB cards.
Atheros Wireless cards should work automatically with the new kernel by installing the proprietary driver. At installation, after the first reboot, you will be prompted whether to use the proprietary drivers.
It should no longer be necessary to install the following package:
sudo apt-get install madwifi-tools
These instructions for the Atheros 802.11 b/g integrated card are here for reference only (or if you wish to install them manually instead):
- Download the latest 'snapshot' driver from Madwifi. When I was doing it, the version was:
- Extract the files
- Make sure your linux headers and build-essential packages are installed:
sudo apt-get install build-essential sudo apt-get install linux-headers-$(uname -r)
- Unload any drivers already running.
sudo ifconfig ath0 down sudo ifconfig wifi0 down
- Change to the directory where you extracted the driver.
- From that directory, run the installation scripts:
cd scripts sudo ./madwifi-unload sudo ./find-madwifi-modules.sh $(uname -r) cd ..
- Complete the installation by compiling the source and installing it.
sudo make sudo make install
- Add the installed drivers to your system.
sudo modprobe ath_pci
Following this, Network Manager was able to see the wireless card and I was able to configure everything else (WEP / WPA key, etc.) from there.
Complete instructions are available at MadWifi UserDocs.
Alternate instructions for installing the Atheros AR242x card are here.
3G protocols allow wide area cellular communications that include not only cellphone voice transmission but also integrated broadband internet connections. This can be integrated into a single device, or communications can be received through an EVDO adapter. Examples of 3G radio interfaces include Mobile WiMax, CDMA-2000, TD-CDMA, EDGE, and DECT. For info using 3G with the Ubuntu Network Manager, see this page. For additional info on using 3G with Ubuntu, see this guide.
he220r1 is a (K)ubuntu driver package for the Huawei e220 USB modem. It has also been found to work with other 3G devices, such as Nokia, Sony Ericsson, and Motorola. See the website for download and installation instructions.
T-Mobile Option 225 (Web'N'Walk) Stick
This website offers a driver optimised for the T-Mobile Web'n'Walk Stick/Option 225.
Virgin Huawei e169
sudo gedit /etc/ppp/options
find the line that says:
and uncomment it (delete #)
this (I think) disables CHAP authentication
I also had to change the APN to VirginBroadband instead of VirginInternet which was the default, and now it's happy.
Other settings Number *99# Uname <your virgin username> PW <your virgin password>
EVDO cards include USB modems and adapters to receive wide-area cellular broadband Internet connections.
See this Crystal Networking guide.
Tethering your PC to your Verizon cell phone
This is a per-minute plan in which you can use Verizon broadband services through your cell phone (such as the Motorola RAZR) connected to your PC via a USB cable. See this guide.
See the Ubuntu webcam guide for more info. Many webcams that worked in Hardy Heron may not work in Intrepid Ibex. This may be due to a migration from v4l (video for Linux) to v4l2. See this discussion.
Luvcview (USB webcam viewer)
Luvcview can be used to view your USB webcam to test it. Install:
sudo apt-get install luvcview
View your webcam:
luvcview -f yuv
Ubuntu can be installed on netbooks. (See this this page for laptop and netbook compatibility reviews.) At this time the Ubuntu Netbook Remix (or equivalent) is preferred to the standard Gnome-based desktop, especially for new users. Ubuntu Netbook Remix is provided to several individual netbook manufacturers (such as Asus and Acer) to be optimised for that device. (You can contact your specific netbook manufacturer for specific details on this product.) If you already have Ubuntu Netbook Remix (or eeebuntu Netbook Remix) installed, you can choose to add the full Ubuntu (Gnome) desktop, if you wish:
sudo apt-get install ubuntu-desktop
- Asus eeePC 1000H
- Reduce font size one or two sizes, and set the screen DPI to 120.
- eeebuntu Netbook Remix is available for this device.
- Dell Mini 9
- Ubuntu Netbook Remix runs on this device well. See this guide.
- HP Mini 1000 Mi
- A custom edition of Ubuntu is installed on this version of this device. No additional configuration is necessary.
- Samsung NC10
- Some package should be installed for keyboard functions (FN Key+functions). The procedure to install these package is available in this forum.
Another method is to install Ubuntu onto your netbook from scratch using a USB flashdrive LiveCD.
Acer Aspire One
There are several Ubuntu-based and other Linux-based OS's specially customised for the Acer Aspire One. Some of them are:
- Kuki Linux
- eeebuntu Netbook Remix is available for this device as well. See this article for the necessary tweaks.
Ubuntu Linux offers an operating system for Mobile Devices (such as the Samsung Q1 Ultra or Elektrobit MIMD) with a unique and simplified interface. For more information see the Ubuntu MID Edition site.
MP3 / Video Players
- gtkpod is a utility that uses the native iPod DB in a way similar to iTunes. Files on the iPod can be synchronised to a Linux-based PC with this utility. Install:
sudo apt-get install gtkpod
Usage instructions are here.
Copy files from iPod to computer
I do not like using gtkpod and prefer to listen to the files on my iPod with different audio players and in different formats. Furthermore, the iPod naming and database conventions are quite outdated and non-standard (the iPod is, after all, a VERY old device).
- It is desirable that all the files on the iPod have ID3v2 tags on them already. These tags will be used to rename the files after they are transferred. With the iPod connected to the computer to which the iPod is originally synchronised, use iTunes to make sure all the files are updated with current ID3v2 tags (prior to any copying / transfers).
- Plug the iPod into a USB port on the (K)Ubuntu computer. Open the Nautilus (or other) file manager and create a folder in which to store the files from the iPod. (Nautilus will usually automount the iPod once it is connected.) Copy the files from the iPod to the newly created folder on the (K)Ubuntu computer. The iPod naming convention assigns a random 4-letter code to each file. If there are a large number of files, they are split between folders, each with about 250 files in them. When copying, there is likely to be some duplicate 4-letter filenames. Simply add an extra character to the duplicate 4-letter filenames when prompted about duplicates (turning them into 5-letter filenames). For example if there are 2 files named AXYJ.m4a, when Nautilus attempts to copy the second file to the folder it will prompt for a new filename. Name the second file, for example, AXYJ2.m4a and carry on. Repeat as many times as necessary untill all the files are successfully copied (with unique filenames) into the folder on the (K)Ubuntu computer.
- Now use an ID3 tag editor such as EasyTAG to rename the files that have been copied to the (K)Ubuntu computer folder. EasyTAG includes a renaming utility that will scan and then rename the files based on the Artist and Title (for example) found in the ID3v2 tag. Allow EasyTAG to do this and then "Save File(s)" with the new filenames (using the FloppyDisc Icon in the toolbar). The resulting files will now be appropriately named (instead of having the archaic and arbitrary Apple filenames).
- EasyTAG will notify you of an error (and will stop) if a file with a duplicate Artist - Title exists. When such an event occurs, move the first re-named file out of the folder (into a Duplicates folder, for example) and then allow EasyTAG to continue converting the remaining files. Do this as many times as necessary. (This helps to weed out duplicates, as well.)
- Of course, you can also update other information in the the ID3v2 tags (to your preference) with EasyTAG at the same time, as well.
- Convert the format of any .m4a files to .mp3, .aac, .ogg (or any other desired audio format) using a batch format convertor such as SoundKonvertor (for Qt / KDE), SoundConvertor (for GTK / Gnome), Xcfa, Sox, or dir2ogg. (Usually ubuntu-restricted-extras must also be installed, and sometimes libfaac0 as well).
- libimobiledevice is a utility library that enables the transfer of files to / from the iPhone iOS (versions (1G, 2G, 3G):
sudo add-apt-repository ppa:pmcenery/ppa sudo apt-get update sudo apt-get install libimobiledevice1
- FTP is also a good solution for file transfer (sftp recommended). See these FTP tips.
- WebDAV is also a good solution for file transfer. See these WebDAV tips.
- Other online storage solutions may also be useful for file transfers.
The Sansa Fuze is a very high quality MP3 audio as well as video player. It is recognized by default as a USB device in Ubuntu/Kubuntu. To convert videos into a format that can be copied to the player, use Video4Fuze.
- Download and install:
wget http://video4fuze.googlecode.com/files/fuzemux-0.1_amd64.deb wget http://video4fuze.googlecode.com/files/video4fuze-0.6_all.deb sudo dpkg -i fuzemux-0.1_amd64.deb sudo dpkg -i video4fuze-0.6_all.deb
- Use fuzemux-0,1_i386 instead of fuzemux-0.1_amd64.deb if using a 32-bit OS.
- Start video4fuze from the command line:
or create a menu item with the Command: video4fuze.
- Convert files (mpg or mp4) using Video4Fuze. Do not use the Sansa Fuze player as the output folder, but use an output folder on your computer. Once the files have been converted, then copy them directly to a Video folder on the Sansa Fuze (using Nautilus in Ubuntu or Dolphin in Kubuntu).
- I like k9copy to extract something (that I have saved) on a DVD to an mp4 (.avi) first. The Sansa Fuze likes video at 224 x 176 and DivX 4/5, so I extract to those specifications:
- Menu -> Multimedia -> k9copy -> Input: DVD -> Output: MPEG-4 encoding -> folder icon: /home/user/Videos
- k9configure -> MPEG-4 -> Video -> Codec: MPEG-4 (DivX 4/5) -> Width: 224 -> Height: 176
- -> Audio: mp3 (lame) -> Bitrate: 128
I then use video4fuze to convert the extracted mp4 (.avi) into the format that the Sansa Fuze likes.
- Limitations: At this time Flash videos (.flv) cannot be converted directly by Video4Fuze. You must convert flash videos to another format (such as .mpg or mp4/.avi) prior to Video4Fuze conversion, using a converter such as mencoder or ffmpeg (e.g. with WinFF as the GUI).
The MachSpeed Trio works natively with (K)Ubuntu Linux. Files can be copied directly to the device from a File Manager (Dolphin or Nautilus).
- Video formats include .mpg, .flv and .avi. However, the screen is 7.5 cm x 4 cm, which is a 1.875 ratio (widescreen). If your video has a 1.33 ratio (fullscreen), you must add left and right padding to make it look normal. If your video is 320 x 240, for example, you must add left and right padding of 64 each (making it 448 x 240, which is approximately a 1.875 ratio).
- In addition, I found I had to convert some videos twice (using ffmpeg) to get it into a format the Trio would accept. For example, I have a 160x120 .avi video I recorded on my camera. (This requires 32 padding on each side instead of 64.) There was a 2 step conversion required to get it into a format the Trio liked:
ffmpeg -i cameravideo.avi -target ntsc-dvd -s 160x120 tempvideo.avi ffmpeg -i tempvideo.avi -padleft 32 -padright 32 triovideo.avi
- The first step does whatever it takes to get the video into a NTSC-compatible format. However, it encodes into the ac3 audio codec, which the Trio doesn't like. The second step converts the audio from the ac3 format to the default mp2 audio format (which the Trio likes better) as well as adds the padding (which in reality can be done in either step). I have tried to simplify this into a single command but haven't figured out how to do it yet.
- I then copy the converted file directly onto the Trio, where it plays.
- Install the Chromium browser (or the Google Chrome browser).
- In the Chromium (or Chrome) browser, add the Google Cast extension/plugin:
- Chromium/Chrome -> Settings -> Extensions -> Get more extensions -> Search: Google Cast -> + Free
- Anything that can be played through the Chromium/Chrome browser can be streamed to the Chromecast module by clicking on the rectangular casting icon in the upper right side of the toolbar once the video is playing in the browser.
- From the Nautilus file manager, open the video file to be played through the browser:
- Nautilus -> MyVideo.avi -> <right-click> -> Open With ... -> Other... -> Chromium/Chrome Web Browser
- Initial installation of the Google Chromecast device itself can be done "manually" through the browser. See these instructions.
- Note: Casting only worked for me with newer versions of Chromium (v.37 or later) or Chrome (v. 39 or later). Upgrade/update to a recent version.
Playing Netflix through Chromecast
- Once Chromecast has been configured ("manually," as above) to run on the network, it is possible to stream Netflix playing through the Google Chrome v. 39 or later (but not Chromium) browser natively (because Google Chrome has the WideVine CDM and Pepper Flash (PPAPI) modules, required to play Netflix, built in). Click on the rectangular casting icon while playing Netflix.
Chromecast and Firewalls
- Chromecast uses an array of ports for its connections. The easiest method is to turn off any firewalls while using Chromecast.
- The Chromecast device is discovered by the Chrome browser using the SSDP service on port 1900. Enable port 1900 in your firewall. On Firestarter:
- Firestarter -> Policy -> Outgoing traffic policy -> Allow service -> <right-click> Add Rule -> Port: 1900 -> Firewall host (ticked) -> Add
- If it is desirable to use the Chromecast device without diabling firewalls, it is best to discover the internal IP address of the Chromecast device on the local network and then allow its IP address.
- With the Firestarter firewall (for example), start both the Firestarter firewall and the Chrome browser. Attempt to cast using the Casting icon. Check the Firestarter Events log to see which IP addresses were blocked, indicating the IP address of the Chromecast device on your network.
- Firestarter -> Events
- for example, 192.168.1.70 might be listed as being blocked (as the Chromecast device) and 192.168.1.69 might be listed as being blocked (as the Chromecast DHCP service).
- Enable Outgoing traffic for this internal network IP address for the Chromecast device(s) (including the Chromecast DHCP server) on Firestarter:
- Firestarter -> Policy -> Outbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> 192.168.1.70 -> Add
- Firestarter -> Policy -> Outbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> 192.168.1.69 -> Add
- Enable Incoming traffic for this internal network IP address for the Chromecast device(s) (including the Chromecast DHCP server) on Firestarter:
- Firestarter -> Policy -> Inbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> 192.168.1.70 -> Add
- Firestarter -> Policy -> Inbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> 192.168.1.69 -> Add
Playing VLC through Chromecast
- At this time, the VLC ability to stream to the Chromecast device is actively being developed. Stay tuned.
Speech Recognition and Synthesis
For more info see the Ubuntu Wiki -- Speech recognition and the Ubuntu Community wiki -- Text-to-Speech. Integrated voice recognition is an ongoing project; accumulated information is available at VoxForge.
- Julius -- open source continuous speech recognition / grammar engine (Japanese only -- does not have an English acoustic module currently). Install:
sudo apt-get install julius julius-voxforge
- CMU Sphinx -- open source voice recognition software. Install:
sudo apt-get install sphinx2-bin sphinxbase-utils pocketsphinx-utils
Apps using voice recognition (also see this list):
- Festival is a Text-to-Speech synthesis system. See the manual for usage instructions. Also see tips from the Ubuntu Community help page. Install:
sudo apt-get install festival
- Flite (Festival-lite) is a small, fast run-time synthesis engine designed for small embedded machines and/or large servers. Flite is designed as an alternative synthesis engine to Festival for voices built using the FestVox suite of voice building tools. Install:
sudo apt-get install flite
- FestVox is a tool to build new synthetic voices, relying on the Festival framework. Search for festvox in your Package Manager to find voices already created and distributed in (K)Ubuntu.