Blog Forum Wiki Links Contact Us
 
Translations of this page:

Ubuntu 8.04 Hardy Heron on the EeePC 901/1000

This will give a step by step to get things going on the EEE 901. Although not confirmed, I would assume most of this would work on the 1000 and 1000H as well, seeing as they have very similar hardware.

I recently came into the Eee community, and being an Ubuntu lover, wanted to get things rolling. Due to the significant hardware changes, it was initially difficult to get things working. After a lot of hard work, a member of the community has made things much more simple when running Ubuntu on the Eee. adamm has created a custom kernel which contains drivers, fixes for lan, wifi, microphone (still working on it), standby, and also speeds up boot time. If you would like the simplest way to get Ubuntu going on your Eee 901/1000, I'd like to point you in his direction http://www.array.org/ubuntu/index.html He has instructions on installing his kernel on his site, and he will keep that updated, so I would recommend going there for more info.

If you are more of a do it yourself kind of person, I've compiled many of the fixes we have discovered along the way into this convienient wiki. Please feel free to add your own knowledge.

The following things work automatically on the 901 with Ubuntu 8.04.1:

  • Multitouch scrolling on the trackpad
  • Graphics
  • CPU Scaling
  • Audio
  • Webcam
  • Bluetooth

The following things don't work:

  • WiFi
  • Ethernet
  • Standby
  • Shutdown
  • Microphone*
  • New Buttons above the keyboard*
  • Buttons Activated by the FN key (F2, F5-F9)*

*fix not yet available.

Installation

There are two main methods of installing Ubuntu on the Eee. The first (and simpler) would be using a USB CD-ROM drive. The second, more complicated way (the way I ended up using) is by creating a liveUSB flash drive with the Ubuntu CD on it. There is a fairly easy program to do this I used called UNetBootIn [http://unetbootin.sourceforge.net/]. I used the Windows version, which worked just fine.

I think the best way to set up the partitions is to do 'Guided', and set the 4GB drive to the '/' mount point and the larger drive (12 or 16GB) to the '/home' drive. This will keep all your system info on the faster partition, and your personal info on the slower one. This is what Asus does on their Linux version.

After the installation completes, it will ask you to reboot. It won't be able to, however, due to a problem we'll fix later. You'll have to pull that battery, so after the installation COMPLETELY installs, you can pull the battery. Now let's boot up and get to work.

Remove the reference to the cdrom in the /etc/fstab, as you don't actually have a CD-ROM and it can conflict with mounting devices later:

   /dev/sdc1       /media/cdrom0   udf,iso9660 user,noauto,exec 0       0

If you have wireless, I would recommend doing that first. It is the simplest way to get connected to the internet, which makes all of the other fixes much easier (especially ethernet).

Wireless

First thing we need to do after install is get some sort of internet connection. Easiest way to do this is through NDISWrapper. For native linux drivers, you need to have build-essential installed, which requires a bunch of dependencies. I think it's much easier to get NDISWrapper working, and then install build-essential. NDISWrapper is a utility that allows you to use windows wireless drivers in linux. I seem to get better reception with the native driver, and I believe there is better support for WPA encryption. I used WEP with no problem NDISWrapper. If you are switching from NDISWrapper to a native linux driver, or to adamm's kernel, see the section below the NDISWrapper install.

NDISWrapper

1) Download and install NDISWrapper main program, utilities, and GUI. (You can download them and move them via USB flash drive)

    http://packages.ubuntu.com/hardy/i386/misc/ndiswrapper-common/download
    http://packages.ubuntu.com/hardy/i386/misc/ndiswrapper-utils-1.9/download
    http://packages.ubuntu.com/hardy/i386/net/ndisgtk/download

After downloading , install it on your eeePC:

    cd <where it was saved>
    sudo dpkg -i ndisgtk_0.8.3-1_i386.deb \
        ndiswrapper-common_1.50-1ubuntu1_all.deb \
        ndiswrapper-utils-1.9_1.50-1ubuntu1_i386.deb

Now “System → Administration → Windows Wireless Drivers” is available

An Alternative way to get ndiswrapper from your install cd is:

    sudo apt-cdrom add
    sudo apt-get install ndiswrapper-common
    sudo apt-get install ndiswrapper-utils-1.9
    sudo aptitude ndisgtk

Note you may want to comment out your CD drive in /etc/apt/source.list once you are done to allow the other repositories to function correctly.

2) Install the wireless driver onto a windows XP computer (Easiest way is to open the :\Drivers\WLAN folder, run setup.exe.

3) Copy the C:\Program Files\RALINK\Driver folder to a flash drive. (You really only need the rt2860.inf and rt2860.sys, so either way)

4) System → Administration → Windows Wireless Drivers, simply point the program into the Driver folder you just copied.

  • This is how I got it to work originally. Another way to do it with a native Linux driver.

NDISWrapper Uninstall

By default, removing NDISWrapper after installing the Array.org kernel left me with no working internet. There are some traces that NDIS doesn't get rid of (at least it didn't for me). This is what I did.

   sudo apt-get remove ndiswrapper*
   sudo rmdir /etc/modprobe.d/ndiswrapper

Native Linux Driver

Confirmed to work on both 901 and 1000 Since you need build essential, it's easier to go the NDISWrapper route and then install build-essential. This assumes you have build essential installed. For information on installing that, check out the ethernet section.

1. Ralink has released a patched version of the driver. Their normal driver had some problems with encryption (WPA wouldn't work at all, and WEP dropped out regularly). The latest version can be found here.

   wget http://www.itwriting.com/DPO_RT28xx_60_LinuxSTA_V1.7.0.0_2008_07_15.tgz

2. Extract the tar.gz and move to the newly created directory.

   tar -xzvf DPO_RT28xx_60_LinuxSTA_V1.7.0.0_2008_07_15.tgz
   cd DPO_RT28xx_60_LinuxSTA_V1.7.0.0

3. Build the driver and install it

   sudo make
   sudo make install

4. This didn't work for me right away. It might have been because I had NDISWrapper installed. So I did:

   sudo apt-get remove ndiswrapper*

This gets rid of all the NDISWrapper pacakges. Then I had to go into the System > Administration > Hardware Drivers. You should see an entry for 'rt2860sta'. I had to uncheck the box, and then recheck it again. After that, you should be able to configure using the network-manager applet on the gnome-panel.

Once you get working WiFi, I would recommend updating (either through update manager or synaptic etc.).

Stopping mm-applet asking for a keyring

Every time you start up wireless to make a connection, mm-applet appears asking you for a keyring password. This can be irritating. To remove this, install seahorse.

  sudo apt-get install seahorse

when complete. Click applications > Accessories > Passwords and Encryption Keys. Once loaded, click Edit > Preferences. Now click on default, click Change Unlock Password. Set a blank password, and click OK. Read the warning message and continue. Sorted. When you restart no more annoying wireless password request.

Ethernet

Asus has yet to provide a download page for the Eee 901, and the network card found within the Eee is fairly rare. This NIC is also used within another one of their boards, so we can steal the driver from there. You're going to need a computer with a working internet connection and a way to transfer files onto the Eee. If you're reading this, you've already got the first one. This guide assumes you're using a USB flash drive. You could also use bluetooth if you want to be creative.

   http://support.asus.com/download/download.aspx?product=1&SLanguage=us-en&type=map&model=P5KPL-CM

1. Go to this website, click on the Driver tab. From the Operating System dropdown, select linux. They packaged all the linux drivers together, so just click the global icon at the bottom and it will download the entire package.

2. We only care about the LAN driver, so unzip the package (LinuxDrivers.zip), go into the “L1e_Lan” folder, unrar the file inside (use “unrar x” command from package unrar or unrar-free) and copy the “l1e-l2e-linux-v1.0.0.4” folder into the root of your flash drive. (Do not delete the Ubuntu install files from your USB drive, you may need them later.)

Installing build-essential (CD-ROM Install)

If you installed by USB CD-ROM drive, simply open up Synaptic (System → Administration → Synaptic Package Manager), open software sources from the menu, click the second tab and tick the box that says use packages from CD. Then, you can simply select build-essential in Synaptic and click apply.

Installing build-essential (USB Install)

3. After your Eee has booted into Ubuntu insert your USB drive.

4. Install build-essential from the files that are still on your USB drive from the Ubuntu install.

   cd /media/<usb drive name>/pool/main
   sudo dpkg -i ./b/build-essential/build-essential_11.3ubuntu1_i386.deb \
                ./d/dpkg/dpkg-dev_1.14.16.6ubuntu3_all.deb \
                ./g/gcc-4.2/g++-4.2_4.2.3-2ubuntu7_i386.deb \
                ./g/gcc-defaults/g++_4.2.3-1ubuntu3_i386.deb \
                ./g/glibc/libc6-dev_2.7-10ubuntu3_i386.deb \
                ./g/gcc-4.2/libstdc++6-4.2-dev_4.2.3-2ubuntu7_i386.deb \
                ./t/timedate/libtimedate-perl_1.1600-9_all.deb \
                ./p/patch/patch_2.5.9-4_i386.deb \
                ./l/linux/linux-libc-dev_2.6.24-16.30_i386.deb

If this doesn't work, try attempt 3 described below.

Installing build-essential (If all else fails)

3. Even if the first way didn't work for you try, we still need build-essential to get things rolling. It may be easier to just download the dependencies and put them on your USB drive. There are a bunch of dependencies needed to get build-essential working.

This a complete list of the packages needed (i.e. not already in the basic eeebuntu build) to be able to install 'build-essential':

  • binutils_2.18.1~cvs20080103-0ubuntu1_i386.deb
  • perl-modules_5.8.8-12_all.deb
  • build-essential_11.3ubuntu1_i386.deb
  • bzip2_1.0.4-2ubuntu4_i386.deb
  • cpio_2.9-6ubuntu1_i386.deb
  • cpp_4.2.3-1ubuntu3_i386.deb
  • cpp-4.2_4.2.3-2ubuntu7_i386.deb
  • dpkg-dev_1.14.16.6ubuntu3_all.deb
  • g++_4.2.3-1ubuntu3_i386.deb
  • g++-4.2_4.2.3-2ubuntu7_i386.deb
  • gcc-4.2_4.2.3-2ubuntu7_i386.deb
  • gcc-4.2-base_4.2.3-2ubuntu7_i386.deb
  • libbz2-1.0_1.0.4-2ubuntu4_i386.deb
  • libc6_2.7-10ubuntu3_i386.deb
  • libc6-dev_2.7-10ubuntu3_i386.deb
  • libgcc1_4.2.3-2ubuntu7_i386.deb
  • libgomp1_4.2.3-2ubuntu7_i386.deb
  • libstdc++6-4.2-dev_4.2.3-2ubuntu7_i386.deb
  • libtimedate-perl_1.1600-9_all.deb
  • linux-libc-dev_2.6.24-19.36_i386.deb
  • lzma_4.43-12ubuntu1_i386.deb
  • make_3.81-3build1_i386.deb
  • patch_2.5.9-4_i386.deb

Transfer all these files to your flash drive, and plug the flash drive into the Eee.

4. Install all packages.

After build-essential has been installed

5. Cd to the src directory (insert your drive name)

   cd /media/<usb drive name>/l1e-l2e-linux-v1.0.0.4/src

6. Build the driver from the source you extracted from the rar.

   sudo KBUILD_NOPEDANTIC=1 make
   sudo KBUILD_NOPEDANTIC=1 make install

7. A file called atl1e.ko is made, that’s your driver. Move to: /lib/modules/2.6.24-16-generic/kernel/drivers/net/atl1e/at1le.ko (If for some reason the atl1e directory isn’t made, just sudo mkdir atl1e, your kernel name may be different)

8. Move into the directory from step 7 and insert the driver:

   cd /lib/modules/2.6.24-19-generic/kernel/drivers/net/atl1e/ 
   sudo insmod ./atl1e.ko

That should take care of it! Wired connection should show up instantly in network-manager.

WARNING: This only works for the kernel it is put into. To make this work for other kernels, you will need to copy the atle1.ko file into the folder listed in step 8, except change the 2.6.24-19-generic to whatever kernel you are going to use.

* Information taken from http://kunin.wordpress.com/2008/07/05/asus-eee-pc-901/

Standby

The 901 can enter standby mode, however is incapable of returning from it. It says with a black screen.

This is already fixed in adamm's kernel. The fix is to simply install and compile the eeepc-acpi source.

1. Install the source package and module assistant, build it, and load it in the kernel.

   sudo apt-get install module-assistant eeepc-acpi-source
   sudo m-a a-i eeepc-acpi
   sudo sh -c 'echo eeepc-acpi >> /etc/modules'

Fixing Shutdown

When you install, Ubuntu doesn't shut down properly. Shutting down your Eee will make the screen turn off, but does not cut the power. So

Add:

   rmmod snd-hda-intel

at the beginning of the /etc/init.d/halt script in order to make the Eee shutdown properly.

*Stolen from here http://ubuntu-eee.com/index.php5?title=Fix:_The_shutdown_on_hardy

Webcam & Bluetooth

The webcam and bluetooth module are disabled by default in the BIOS, you need to turn them on. In windows, there is a software switch to turn these off to save power. In Linux, there's an equivalent called PowEEErsave[http://grh.mur.at/software/poweeersave.html]. For many people the webcam and bluetooth will work fine once you switch them on in the BIOS. If you're not using adamm's kernel, you'll have to install a new driver for the webcam.

Webcam Driver To install the new driver, we going to use subversion to get the latest version of the driver, complie it, and insert it into our kernel.

1. Get subversion (a way to manage code between many people on a single project).

   sudo aptitude install subversion

2. Use subversion to get the latest version of the video driver.

   svn co svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc

3. Compile the driver we just got and install it.

   cd linux-uvc
   sudo make
   sudo make install

4. Remove the old driver and insert the new compiled driver into the kernel and load it.

   sudo modprobe -r uvcvideo
   sudo mv /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko.original
   sudo cp uvcvideo.ko /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko
   sudo modprobe uvcvideo

*Followed these instructions[https://answers.launchpad.net/ubuntu/+question/19770] (look at Andrea's comment from July 11th).

CPU Frequency Selection

The default setting for the CPU Frequency Applet doesn't allow for manual changin of the CPU speed. To do this, simply run this code to change the permissions on this so anyone can change it.

   sudo chmod +s /usr/bin/cpufreq-selector

Buttons Activated by the FN key

By default, the volume keys (F7-F9), wireless (F2), and the CPU Scaling button? (F6) do not do anything. The standby button (F1, Zz) does put the computer into standby and the brightness keys (F3&F4) do work, although there is no OSD. Strangely, the monitor switch button (F5) increases the volume and plugging the computer into a power supply launches your email client (Evolution or Thunderbird). We'll fix that at the end.

To fix the volume keys, we're going to get the acpi functioning and then create a script to run when the buttons are pushed. If you have installed adamm's kernel (used in the standby fix), you already have ACPI istalled, so you can skip step one.

1. Install the source package, build it, and put it in the kernel.

   sudo apt-get install module-assistant eeepc-acpi-source
   sudo m-a a-i eeepc-acpi
   sudo sh -c 'echo eeepc-acpi >> /etc/modules'

2. Create the link between the acpi keys and the script we will call when they are pressed.

  sudo sh -c 'echo event=hotkey ATKD >> /etc/acpi/events/eeepc-hotkey' 
  sudo sh -c 'echo action=/etc/acpi/eeepc-hotkeys.sh %e >> /etc/acpi/events/eeepc-hotkey'

3. To get the extra buttons work create a new file named /etc/acpi/eeepc-hotkeys.sh.

   sudo gedit /etc/acpi/eeepc-hotkeys.sh

4. and paste the following to it: This is my personal modified script. I have inculded space to map all the hard buttons (4 silver buttons above the keyboard), and have two pre-mapped. I have disabled the bt-toggle button (as this only works with adamm's kernel). If you are using adamm's kernel, you can insert a bt toggle script to the location specified and remove the # from in front of /etc/acpi/bt-toggle.sh . I haveThe rightmost two hard buttons to previous and next track. You can change these to whatever you want, just find the script or program you want to run and point to it.

  #!/bin/sh
  code=$3
      case $code in
      # Fn+F2 -- enable/disable wifi
      0000001[01])
          /etc/acpi/wireless-toggle.sh
      ;;
      # Fn+F7 -- mute/unmute speakers
      00000013)
          acpi_fakekey 113
      ;;
      # Fn+F8 -- decrease volume
      00000014)
          acpi_fakekey 114
      ;;
      # Fn+F9 -- increase volume
      00000015)
          acpi_fakekey 115
      ;;
      # 1st (leftmost) hard button -- enable/disable bt
      0000001a)
          #/etc/acpi/bt-toggle.sh
      ;;
      # 2nd (left middle) hard button -- get creative! do something with this.
      0000001b)
          #whatever you want to run!
      ;;
      # 3th (right middle) hard button -- previous track
      0000001c)
          /etc/acpi/prevbtn.sh
      ;;
      # 4th (rightmost) hard button -- next track
      0000001d)
          /etc/acpi/nextbtn.sh
      ;;
  esac

5. Open gedit to create the wireless toggle script.

      sudo gedit /etc/acpi/wireless-toggle.sh

6. Paste the script in the newly opened gedit window.

      
      #!/bin/sh
      
      wlan_control=/proc/acpi/asus/wlan
      
      WLANSTATE=$(cat $wlan_control)
      
      wifi_on()
      {
        modprobe pciehp pciehp_force=1 pciehp_debug=1
        echo 1 > $wlan_control
        sleep 1    
        modprobe rt2860sta
      }
      
      wifi_off()
      {
        ifconfig ra0 down
        rmmod rt2860sta    
        sleep 1
        echo 0 > $wlan_control
        modprobe  -r pciehp
      }
      
        if [ $WLANSTATE -eq  1 ]
        then
          wifi_off
        elif [ $WLANSTATE -eq  0 ]
        then
          wifi_on
      else
          case $WLANSTATE in 
            1)    
                  wifi_off
            ;;
            0)
                  wifi_on
            ;;
          esac
      fi

7. Make it executable with

   sudo chmod a+x /etc/acpi/eeepc-hotkeys.sh /etc/acpi/wireless-toggle.sh

8. All that's left is reboot the acpi deamon.

   sudo /etc/init.d/acpid restart

All done! Bonus: Once done, you get the OSD for volume.

Fix for FN+F5 & Plugging In

Other Asus laptops send the same ACPI code for their volume up as the 901 sends for the F5 button (00000030). So for the 901, this makes F5 act as volume up. To get rid of this, we need to just delete one file (line 1) and reload the ACPI daemon (line 3). To fix the mail client issue, we will just get rid of the script that launches when the mail button is pressed (line 2).

    sudo rm /etc/acpi/events/asus-volume-up
    sudo rm /etc/acpi/mailbtn.sh
    sudo /etc/init.d/acpid restart

Enabling the Home key to activate the popup Applications menu

By default the Home key (the one between the Fn and Alt keys) is set as a 'modifier key' by X, (e.g. like control or alt). To remove this create/edit .Xmodmap in your home directory.

$ cd ~
$ nano .Xmodmap

and add the line:

remove mod4 = Super_L

Save the file and restart Xfce, ctrl+alt+backspace. When you've logged back in, go to Settings > Settings Manager, and click on Keyboard. Now click on the Shortcuts tab. At the end of the Themes column, click add. Call your new theme a name, clicking OK will select your new theme and the Shortcuts will now be selectable. click Add in the Shortcuts section, type your command xfce4-popup-menu Click OK, it will ask you to press a key. Press the Home button. The shortcut xfce4-popup-menu Super+Super_L should now of appeared on the list.

rio b and you sfr rio b and you sfr

 
hardy_on_eee901.txt · Last modified: 2012/01/28 10:09 by hello
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki