Sunday, July 4, 2010

Ubuntu 10.10 Maverick on Lenovo Q150



New related post Ubuntu 12.04 on Lenovo Q150 with OCZ SSD and 4Gb of Memory.

The Lenovo Q150 comes Atom D510 and the nvidia Ion gfx, 2GB of ram and a 250 GB HD.
I decided to install the 32 bit version of Ubuntu since flash more stable under 32 bit linux. I also installed:
  • ubuntu tweak
  • xbmc
  • miro
  • minitube (youtube player, faster than flash)
  • huludesktop
  • boxee
  • skype
  • cooliris
  • chromium
  • shotwell

The latest version of Ubuntu contains updates to the kernel, alsa and nouveau nvidia drivers. The new opensource drivers seems as fast as the proprietary drivers when playing video and this is great. It also detects the nvidia HDMI sound card out of the box.
So the biggest difference compared to 10.04 is that using the opensource drivers you can play video at 1080p full-screen without problems and HDMI sound card works.

- Basic installation from a USB key works fine.
- HDMI/VGA and sound out, little USB keyboard/mouse works fine.
- Dual boot with Windows 7 works fine.
- Detects the nvidia HDMI sound card.
- The open source nvidia ubuntu drivers, NVidia proprietary drivers, and the new drivers from nvidia web site work fine.
- Video acceleration at 1080p works great for Miro, mplayer, minitube, vlc, xbmc with the opensource drivers. You don't need to install nvidia proprietary drivers, unless you want 3D and HDMI sound. Flash is as fast with opensource drivers as the nvidia proprietary drivers.



- Hulu desktop plays fullscreen in high quality, with the opensource drivers and the proprietary drivers but you need to right click and select quality low on the context menu of hulu desktop. I thinks this use a decompress routine that is less CPU intensive (see the picture).
- When playing hulu, boxee, cooliris, youtube in full-screen it uses 100% of all CPUs. You can play youtube videos up to 720p without full screen with a good frame rate, but youtube 1080p is slow even in a small window.

Problems I found:

- Wireless card works, but requires compiling some code for now.
- Flash video acceleration does not work as fast as in windows, it uses more CPU, I think this is because flash on linuc does not have gfx acceleration.
- HDMI sound card requires nvidia video drivers and some tweaking see below.

XBMC install:


Add key on command line:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x6d975c4791e7ee5e
Adding the XBMC Repo

  • Adding the XBMC Repo tells your system where to look for xbmc for installation and future updates
  • From the Desktop, click System -> Administration -> Software Sources.
  • Click the "Third Party Sofware" tab.
  • Click "Add" for each of the following. For the Apt line type the following:
deb http://ppa.launchpad.net/team-xbmc/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/team-xbmc/ppa/ubuntu lucid main

HDMI sound instructions

sudo apt-get install alsa-utils
on alsamixer press F6 to select the nvidia card enable all s/PDIF devices
# list the devices
aplay -l
# my sound gets enabled when I play on device speaker-test -D plughw:1,9 -r 44100, after that the sounds starts to work. It's important to use the -r 44100 since the drivers are not setting up the correct frequency.
speaker-test -D plughw:1,3 -r 44100
speaker-test -D plughw:1,7 -r 44100
speaker-test -D plughw:1,8 -r 44100
speaker-test -D plughw:1,9 -r 44100


In case you want to make a permanent change for the hdmi sound as the deafult card you can update /usr/share/alsa/alsa.conf and change these lines:

defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0

to this:

defaults.ctl.card NVidia
defaults.pcm.card Nvidia
defaults.pcm.device 9

Wireless driver

Q150 uses a Realtek USB RTL8191SU 802.11n USB 2.0 wireless card.

There are 2 drivers for the wireless card, instructions described below:
Download the RTL8191SU driver from Realtek:
http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false

The one I got was dated 2010/6/30. Unzip the file.
Go into the "driver" sub directory:

cd rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100625/driver

Extract the driver:

tar -zxf rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20100625.tar.gz

Add this line:

{USB_DEVICE(0x13D3, 0x3323)},
to rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100625/os_intf/linux/usb_intf.c at line 96 or so.

This adds the vendor / product ID for the adapter the Q150 uses. I found out the correct numbers by doing a sudo lsusb -v and looking for the network device.

# download compiler and kernel source
sudo apt-get install build-essential linux-source linux-headers-generic
cd /usr/src
sudo tar -xvjf linux-source-2.6.35.tar.bz2
sudo ln -s /usr/src/linux-source-2.6.35 /usr/src/linux

# get a root shell
sudo bash
./clean
make
make install
modprobe 8712u
/etc/init.d/NetworkManager restart
exit
Note: these instructions where provided by Doug S.

Another driver you can use is r8192s_usb non stable driver, instructions below:
# get the realtek firmware
sudo apt-get install linux-firmware
wget http://svn.debian.org/wsvn/kernel/dists/trunk/firmware-nonfree/realtek/RTL8192SU/rtl8192sfw.bin
sudo mkdir /lib/firmware/RTL8192SU
sudo cp rtl8192sfw.bin /lib/firmware/RTL8192SU
# load the driver
sudo modprobe -v r8192s_usb
# the device should show up on network applet
# you can run dmesg|less and look for r8192s_usb to see if the driver loaded correctly.

Some other references for the wireless card:


http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false

Dlink DWA-131 usb wireless chipset use a similar chipset as the Q150, some guides on the DWA-131 available here:

Wake up from usb wireless keyboard

You need to enabled USB wake up, in /proc/acpi/wakeup
# cat /proc/acpi/wakeup
sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB1 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup
echo USB3 > /proc/acpi/wakeup
echo EUSB > /proc/acpi/wakeup

This will allow you to suspend the machine use the wireless usb keyboard to wake up.

Wake up from at certain time
# Check alarm is not step
cat /proc/driver/rtc
# clear alarm, is need before setting
sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
# Set alarm
sudo sh -c "echo `date -u --date "Aug 9, 2010 00:05:00" +%s` > /sys/class/rtc/rtc0/wakealarm"

# Check alarm time
cat /sys/class/rtc/rtc0/wakealarm
cat /proc/driver/rtc

Reference for timed wake:


Ubuntu 25.04 desktop review and apps to install

Ubuntu 25.04 This new version of Ubuntu installs without a glitch in my ThinkPad X1 and Yoga 920, I setup this device with dual boot with wi...