1. Lenovo ThinkPad Edge WiFi with Ubuntu 10.04

    The Lenovo Thinkpad Edge is a rather nice notebook from the budget end of the Lenovo range. It makes savings in the right places (screen not quite as high res as the expensive models; no carbon fibre; fewer things that blink) whilst retaining a solid, well built feel. Just one problem: under Ubuntu (Lucid - 10.04) the wifi doesn’t really work… 

    NB: As of the update providing kernel 2.6.32-22 Wifi appears to work out of the box, thus rendering this article redundant.

    NB(b): Ubuntu 10.10 was found again to be unstable; as of writing the latest Realtek drivers, installed as per this article, seem to be more stable.

    This is Mrs P’s machine, and she was adamant that her tech support (that’s me) should install Ubuntu right away. Thus 10.04 went on - we’re just a month from it being released but it’s been pretty solid for me thus far.

    All went swimmingly. Just one problem: the wifi would bind, get an IP address, send a few packets (maybe one ping, for example) and then… nada.

    Googling helped but fellow googlers will find a few key points missing or unclear, so here is what you need to do:

    1) First, you might like to compare the output of lspci with mine:

    00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge

    00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)

    00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1)

    00:07.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 3)

    <... snip ...>

    00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

    00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

    00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

    00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

    01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]

    01:05.1 Audio device: ATI Technologies Inc RS780 Azalia controller

    02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

    03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)

    The last line, in bold, is the Wifi device.

    2) Pre-requisites: you’re compiling a kernel module so you’ll need some basic tools. At the risk of stating the obvious, as you’re downloading new packages you’ll need to plug into the network with a cable for this:

    $ sudo apt-get install build-essential $ sudo apt-get install linux-headers-`uname -r`

    3) Download the latest driver code from Realtek by going to http://bit.ly/9DJrc0 and clicking on “RTL8192SE (Software)”; download the “Linux driver for kernel 2.6.X”

    4) Unpack the download: 

    $ tar zxvf rtl8192se_linux_[version].tar.gz  # INSERT NAME OF FILE YOU OBTAINED!

    5) Change to the directory you’ve just unpacked

    6) Compile:

    $ sudo su # make # make install # exit

    Note (October 2010): Steps 7a-c are redundant with the latest driver downloads from Realtek, but I leave them here to give an indication of where things go should you find there to be any problems.

    7a) Swap in this new driver. You are first going to unload the existing kernel module:

    $ sudo rmmod r8192se_pci

    7b) Now we’ll delete the old Ubuntu version (the above did not install over Ubuntu’s version which will always be found first if you leave it in place):

    $ cd /lib/modules/`uname -r`/kernel/ubuntu $ rm -Rf rtl8192se

    7c) Load the new driver (which installed into /lib/modules/`uname -r`/kernel/drivers/net/wireless):

    $ sudo modprobe r8192se_pci

    8) You may find the network applet getting excited at this point - click on it and see if you have wifi. If not, you might just kick-start networking:

    $ sudo /etc/init.d/networking restart

    With luck, you’re now happily connected to the world without wires. If you loose this ability, chances are you’ve had a new kernel installed by Ubuntu and you’ll need to re-install. You’ll probably want to re-compile (do a “make clean” first) and re-install and also check there isn’t an ubuntu stock driver to be deleted again. ie, follow the above steps. 

    Now I understand there are issues with bluetooth and Skype although so far all looks good (using latest 10.04 beta and Blueman for managing bluetooth)… if there are, and if I find solutions, I’ll write up the procedures here.


  1. matthew-pontefract posted this