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:
The following things don't work:
*fix not yet available.
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).
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.
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.
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
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.).
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.
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':
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/
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'
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
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).
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
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
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.