Ubuntu Maverick on the Asus UL30VT
From David Darts Wiki
Updated: May 16, 2011
Note: I am now running Natty (11.04 AMD64) on my UL30VT (BIOS 211) and overall am pleased with the results.
Note: This is an updated version of my earlier guide: Ubuntu Lucid on the Asus UL30VT.
There are a few issues that need attention post-installation and I have outlined instructions for how to address them below.
Contents |
Hybrid Graphics Drivers
The UL30VT ships with two graphics cards: the NVidia G210M Graphics with 512MB DDR3 + Intel GMA 4500MHD (Switchable VGA). It is possible to get either of these cards working though it is not currently possible to easily switch between them. A bug report has been filed on launchpad and there has been some progress in the Linux community to support hybrid graphics.
To compensate for the lack of Linux support for the UL30VT's Hybrid Graphics, I have installed two instances of Ubuntu 10.10 on my machine - one for running the native Intel driver and the second for using the Nvidia driver. This is obviously not ideal though it does allow me to switch between cards.
Intel GMA 4500MHD
By default, Ubuntu provides a driver for the Intel card which supports 720p on YouTube etc. It also fully supports suspend & resume from suspend (which are both natively fast). Also, with a bit of work, it is possible to get the keyboard brightness keys working (see Screen Brightness section below).
Support isn't perfect, however - while the VGA port works under the Intel driver, the HDMI port doesn't appear to function at all. Also, the Nvidia graphics card appears to be active which drives up the power consumption and lowers battery life. You can confirm that both cards are active by opening a terminal and typing:
lspci |grep VGA
It is possible to turn off the Nvidia card by installing the .deb package from this Ubuntu forum post. Now you should be able to temporarily deactivate the Nvidia card by issuing the following command:
sudo modprobe nvidia_g210m_acpi
Note: Running lspci |grep VGA in the terminal will still indicate that both cards are recognized, however, powertop (apt-get install powertop) will indicate a significant reduction in power consumption (16W at idle down to 8W).
To deactivate the Nvidia card on each reboot, add the following line to /etc/modules:
nvidia_g210m_acpi
Note: Unfortunately the Nvidia card appears to be reactivated after resuming from suspend.
Other links for reference:
Switch on/off nvidia card Asus UL30Vt, UL50V, UL80V laptops
Nvidia Accelerated Graphics Driver
The second option is to disable the Intel card and activate the Nvidia Accelerated Graphics Driver. At present, the only way to disable the Intel card is to switch the SATA Operation Mode from "Enhanced" to "Compatible." Check out this bug report on Launchpad for more details.
To disable the Intel card, enter the BIOS Setup Utility (press the F2 key on startup) and Select: Advanced > IDE Configuration > SATA Operation Mode. Change the configuration from Enhanced to Compatible. Press F10 to save and exit.
Next install the Nvidia driver via the System menu > Administration > Hardware Drivers. Reboot to activate the driver.
You can confirm that the driver is activated by opening a terminal and typing:
lspci |grep VGA
The Nvidia driver should be the only driver listed.
This driver definitely offers a performance boost for video etc. I can consistently get over 15000 frames per second when I run glxgears in a terminal. To install glxgears, open a terminal and type:
sudo apt-get install mesa-utils
To run glxgears, enter the following in a terminal:
glxgears
I've also tested the HDMI out port on my TV and it seems to work well. The key downside to this configuration is that it degrades the I/O performance of the hard drive. See gille's post for more info. I can confirm that booting on the stock HD takes 20-30 seconds longer as does suspend and resume from suspend. I've done multiple resumes from suspend and so far everything (wireless, audio, etc) continues to work.
Screen Brightness (Backlight)
There are a number of techniques posted around the net for enabling the Fn+F5 and Fn+F6 keys to control screen brightness. Success is somewhat dependent upon which graphics driver/card you employ.
Intel Driver
I've managed to restore some functionality to the screen brightness keys under the Intel card using the "setpci" command. You can test this method by adjusting the screen brightness from the command line. To do this, open a terminal and paste the following (Note: replace XX with a hexadecimal number - 1A is the dimmest value, while ff is the brightest):
sudo setpci -s 00:02.0 F4.B=XX
You can also determine the current screen brightness value setting from the command line by opening a terminal and pasting:
sudo setpci -s 00:02.0 F4.B
Scripts to Activate Screen Brightness Keys
To bind the "setpci" method to the screen brightness keys (Fn+F5 and Fn+F6), I've included two scripts below. While this method seems to work pretty well, please note that there's a short lag time between pushing the key and the screen dimming or brightening. I've found pushing the brightness keys at one second intervals seems to keep everything in sync (definitely not ideal).
- First backup asus-brn-down.sh:
sudo cp /etc/acpi/asus-brn-down.sh /etc/acpi/asus-brn-down.sh.backup
- Then open asus-brn-down.sh with Gedit.
sudo gedit /etc/acpi/asus-brn-down.sh
- Erase everything and paste the following inside.
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_BRIGHTNESSDOWN
# added per http://forum.notebookreview.com/showpost.php?p=5665108&postcount=1235
#brightness=`echo $3 | sed 's/0000002//'`
#setpci -s 00:02.0 F4.B=${brightness}f
# added per mailing-list post
brightness=$((0x`setpci -s 00:02.0 F4.B`-16));
if [ $brightness -lt 0 ] ; then
brightness=1;
fi
setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;
- Save and close.
- Now backup asus-brn-up.sh
sudo cp /etc/acpi/asus-brn-up.sh /etc/acpi/asus-brn-up.sh.backup
- Open asus-brn-up.sh with Gedit.
sudo gedit /etc/acpi/asus-brn-up.sh
- Erase everything and paste the following inside.
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
# DeviceConfig
if [ "$model" != "701" ] ; then
# On an Eee PC (ASUSTeK model 701) the keys in the range handled by this
# script have entirely different meanings. They are handled in separate
# scripts.
acpi_fakekey $KEY_BRIGHTNESSUP
fi
# added per http://forum.notebookreview.com/showpost.php?p=5665108&postcount=1235
#brightness=`echo $3 | sed 's/0000001//'`
#setpci -s 00:02.0 F4.B=${brightness}f
# added per mailing list post
# in /etc/asus_brn_up.sh
brightness=$((0x`setpci -s 00:02.0 F4.B`+16));
if [ $brightness -gt $((0xff)) ] ; then
brightness=$((0xff));
fi
setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;
- Save and close.
- Now you need to modify grub:
sudo gedit /etc/default/grub
- Change your "GRUB_CMDLINE_LINUX_DEFAULT=" to the following:
GRUB_CMDLINE_LINUX_DEFAULT="i915.powersave=0 acpi_backlight=vendor vga=792 quiet splash""i915.powersave=0 acpi_backlight=vendor vga=792 quiet splash"
- Now update your grub.cfg file:
sudo update-grub
- Reboot to activate the screen brightness keys.
Note: These two scripts provide 9 different hexadecimal screen brightness values (ff, df, bf, 9f, 7f, 5f, 3f, 1f, 01). You can increase or decrease the number of steps by altering the step value in the asus-brn-down.sh and asus-brn-up.sh scripts. In the asus-brn-down.sh script, look for the following line: brightness=$((0x`setpci -s 00:02.0 F4.B`-16)); and change "16" to a higher or lower number (8 will double the number of steps and 32 will cut the number of steps in half). Repeat with the asus-brn-up.sh script: brightness=$((0x`setpci -s 00:02.0 F4.B`+16));
While this gives you more control over your screen brightness settings, using a value other than 16 means that the screen brightness notification bubble will no longer be perfectly in sync with your screen brightness keys.
Nvidia Driver
A simple workaround for those using the Nvidia driver is to install the Power Manager Brightness Applet (the applet doesn't appear to work when using the Intel graphics driver). Installation is simple: right click on the top panel, select "Add to Panel...", and choose Brightness Applet.
Unfortunately, the Brightness Applet can only be operated via the keyboard. To do so, click on the applet once to highlight it and then move the slider with the Page Up or Page Down Arrow keys to adjust the brightness level.
User wapko on the Ubuntu forums has come up with a way to activate the brightness keys by altering the asus-brn-up and asus-brn-down scripts. These scripts obviously conflict with the modified brightness up and down scripts listed above for the Intel card so users who use both cards will need to pick one or the other...
First backup your script with:
sudo cp /etc/acpi/asus-brn-up.sh /etc/acpi/asus-brn-up.sh.backup
Then open the brn-up script with:
sudo gedit /etc/acpi/asus-brn-up.sh
And replace with the following:
#!/bin/bash
#levels: 5 11 17 23 29 35 41 47 53 59 65 72 79 86 93 100
acpi_fakekey $KEY_BRIGHTNESSUP
levels=([0]=5 [1]=11 [2]=17 [3]=23 [4]=29 [5]=35 [6]=41 [7]=47 [8]=53 [9]=59 [10]=65 [11]=72 [12]=79 [13]=86 [14]=93 [15]=100)
CLvl=`cat /proc/acpi/video/VGA1/LCDD/brightness |grep current: |cut -c 10-`
for ite in {0..15}
do
if [ ${levels[$ite]} -eq $CLvl ]; then
if [ ${levels[$ite]} -ne "100" ]; then CLvl=${levels[$ite+1]}; fi
break
fi
done
echo $CLvl > /proc/acpi/video/VGA1/LCDD/brightness
Now backup the brightness down script with:
sudo cp /etc/acpi/asus-brn-down.sh /etc/acpi/asus-brn-down.sh.backup
And then open the brn-down script with:
sudo gedit /etc/acpi/asus-brn-down.sh
And replace with:
#!/bin/bash
#levels: 5 11 17 23 29 35 41 47 53 59 65 72 79 86 93 100
acpi_fakekey $KEY_BRIGHTNESSDOWN
levels=([0]=5 [1]=11 [2]=17 [3]=23 [4]=29 [5]=35 [6]=41 [7]=47 [8]=53 [9]=59 [10]=65 [11]=72 [12]=79 [13]=86 [14]=93 [15]=100)
CLvl=`cat /proc/acpi/video/VGA1/LCDD/brightness |grep current: |cut -c 10-`
for ite in {0..15}
do
if [ ${levels[$ite]} -eq $CLvl ]; then
if [ ${levels[$ite]} -ne "5" ]; then CLvl=${levels[$ite-1]}; fi
break
fi
done
echo $CLvl > /proc/acpi/video/VGA1/LCDD/brightness
Reboot to activate the screen brightness keys.
Suspend and Hibernate
Suspend and Hibernate work well out of the box though there appears to be a bug with the gnome-power-manager when going into suspend on idle (while running on battery). Instead of going into suspend, the system instead hibernates. Fortunately there's an easy workaround:
- Open the Configuration Editor by opening a terminal (or pressing Alt+F2) and typing:
gconf-editor
- Navigate to apps > gnome-power-manager > actions sleep_type_battery
- Click on "hibernate" and replace the text with "suspend"
A a bug report has been filed on Launchpad - thanks to James Adney for the workaround.
Touchpad
The touchpad on the UL30VT actually works pretty well though it remains a little jumpy and is prone to palm brushes while typing (which can move the cursor around the screen). Also, the finger-tap mouse clicking functionality seems to have changed a little since Lucid though fortunately there is a workaround.
Tap Clicking
"Tap clicking" on the touchpad still works under Maverick, though three-finger tap clicking seems to have disappeared. Fortunately, Cierreics has come up with a workaround.
- To activate tap clicking, first ensure the "Enable mouse clicks with touchpad" box is checked under System > Preferences > Mouse > Touchpad.
- Next, you need to enable the synaptic driver for the elantech touchpad by opening a terminal and typing:
sudo gedit /etc/modprobe.d/psmouse.conf
- Paste the following into the psmouse.conf file and then save and close.
options psmouse force_elantech=1
- Now we need to install a patched gnome-settings-daemon. First add this repository by opening a terminal and typing:
sudo add-apt-repository ppa:yurivkhan/proposed
- Then do an update and install the daemon:
sudo apt-get update && sudo apt-get -y upgrade
- Now open the gconf-editor by pressing Alt + F2 (or by opening a terminal) and typing: gconf-editor
- Navigate to desktop > gnome > peripherals > touchpad and set tap_button_1 to "1", tap_button_2 to "2" and tap_button_3 to "3".
- Restart your system to activate the changes. You should now be able to one-finger tap on the touchpad for a left mouse click, two-finger click on the touchpad for a double left click, and three-finger click on the touchpad for a right click.
Two-finger Scrolling
To enable two-finger vertical and horizontal scrolling, simply go to System > Preferences > Mouse > Touchpad and check the "Two-finger scrolling" and "Enable horizontal scrolling" boxes.
Disable Touchpad
Pressing Fn+F9 key does not disable/enable the touchpad out of the box. However, there appears to be a fix (thanks to kurosch for the heads up). Check out this tutorial on the Ubuntu forums for more details.
As an alternate workaround for disabling the touchpad, you can install gpointing-device-settings which allows you to disable the touchpad.
To install, open a terminal and type:
sudo apt-get install gpointing-device-settings
After installation, restart your system and then open gpointing-device-settings via the System > Preferences > Pointing devices menu. Keep in mind that once you check the "Disable touchpad" box (under the General tab), you will only be able to re-enable your touchpad by using a mouse to uncheck the box.
Power Saving
There are a number of modifications you can make to increase the battery performance of the UL30. Cierreics offers some useful power saving techniques on the Ubuntu forums.
PowerTOP
PowerTOP can help you monitor and improve power consumption while running on battery. To install, simply use:
sudo apt-get install powertop
Webcam and Skype
The webcam works out of the box though the webcam image displays upside down. You can test this by installing Skype (see instructions below) or by installing and opening Cheese:
sudo apt-get install cheese
Fortunately, there's an easy fix for flipping it back around. Thanks to radu cotescu and Simon von Danwitz
- Download and install Skype for Linux Beta
- Add the 4l2ucp package (not sure this is necessary)
sudo apt-get install v4l2ucp
- Add the libv4l-PPA, update package lists and install libv4l-0
sudo add-apt-repository ppa:libv4l
sudo apt-get update
sudo apt-get install libv4l-0
- Create shell-script to start Skype by opening the gedit Text Editor and pasting the following inside:
#!/bin/bash LD_PRELOAD=/usr/lib32/libv4l/v4l2convert.so skype
- Save the file as "skype.sh" and give it executing rights by navigating to the file's folder and typing:
sudo chmod +x skype.sh
- Restart your system and then start Skype by double-clicking on and running skype.sh
- Note: when Skype first opens, navigate to General > Choose style and select "Desktop Settings" to correct the menus.
- Quit Skype and start again by double-clicking and running skype.sh
Mainline Kernel (Optional)
To install a mainline kernel, visit the mainline repository, select a kernel from the list, and click on the links to install these 3 packages with the GDebi Package Installer (use the following order to ensure all dependencies are met):
- linux-image (pick your system: i386 or amd64)
- linux-headers (all)
- linux-headers (pick your system: i386 or amd64)

