EeePC
=====
Update 01/004/2009
=====
I haven’t really used the EeePC much although it still fulfills its role nicely. In the next couple of weeks I’ll be taking it out of the closet and doing a clean install of Debian and updating this page. I still highly recommend the machine and will continue to use it for development in the future.
The last time I was shopping around for a laptop, and before I settled on my Macbook, I knew that I wanted something small. Originally I was looking at the Fujitsu Lifebooks because I liked the screen size. However, the price wasn’t worth paying in my opinion and I ended up getting the Macbook, which I’ve been very happy with.
Since I still wanted a subnotebook similar in size to the Fujitsu, I was very excited when Asus announced the EeePC. With its 7″ screen it was a bit smaller than I wanted, but nonetheless it was in the same segment of subnotebooks, and at 1/4 the cost in the case of the Fujitsu.
I knew that when I bought one I would put Debian on it because I wanted more flexibility than the default operating system had. That being said, the default operating system on the EeePC is very capable for almost everyone. If you want to do some development work, or write in LaTeX and need to install some weird packages then you can probably do so. However, I am more comfortable doing all those things with Debian, so that’s how I decided to proceed. I do think that for 90% or more of the population the default setup will work fine.
The only other thing I changed was that I took out the default 512MB stick of RAM and added a 2GB stick that I bought from Directron for $40 (I also got the actual EeePC there). FYI, the EeePC takes DDR2 PC-5300 667Mhz 200 pin notebook memory. You could use a slower speed, but I didn’t find one in a 2GB size like I wanted. I don’t think the price difference is all that big. Also of interest is the fact that with the default OS the machine wont recognize more than 1GB of RAM, so if you aren’t going to switch the OS to another Linux or Windows XP (vomit) then don’t waste your money on the 2GB stick.
As far as an assessment of the other benefits of the machine go, there are plenty of those around. I will say though that if you’re worried about the keyboard fear not, as I typed this whole thing on the EeePC using the vim editor and later the page editor at wordpress.com.
Below you will find my guide to installing Debian on the EeePC. It has the exact steps I went through, but if it doesn’t work for you for some reason feel free to email me with questions or problems. I’ll try to include sources where appropriate, as I didn’t come up with all this stuff on my own. Much of the information came from the DebianEeePC Wiki, which will likely be updated continuously in the future.
Step 1: Create the install media
In this case the install media will be a USB flash drive. It’s helpful to have two for the install as one will be used as the installation source and the other will be used to install a few additional packages.
I used the customized installer from Gekko at eeeuser.com. The instructions for creating the install media on my Macbook are as follows:
- Insert the USB flash drive, open Disk Utility, right click on the partition that’s on the media (disk2s1 in my case) and select unmount
- Download the installation image and save it somewhere easily accessible on your machine.
- Open a terminal (Finder -> Applications -> Utilities -> Terminal) and browse to wherever you saved the file by typing cd /Users/youraccountname/pathtofile, then extract the image by typing tar -xzvf *.gz (assuming it’s the only .tar.gz file in the directory).
- Write the image to the USB drive by typing dd if=/path/to/sid-usb.img of=/dev/disk2
- Download the following packages and save them on the second USB drive:
The ethernet drivers:
atl2-modules-2.6.22-3-686_2.6.22+1.0.40.4-9_i386.deb
The 386 kernel headers:
linux-headers-2.6.22-3_2.6.22-6_i386.deb
The 686 kernel headers:
linux-headers-2.6.22-3-686_2.6.22-6_i386.deb - Insert the USB drive with the installation imagine on it into the EeePC and boot it up to begin the installation
Step 2: Installation
This is probably the easiest part of the whole process, as you mostly just accept the defaults. The only places of particular interest in this case is disk partitioning, which you will want to do manually.
Partition the drive in the EeePC so there is a single partition using the whole disk, and make sure it uses the ext2 filesystem and not ext3 which is the default. The reason for this is that ext3 is a journaling filesystem and will require more disk writes, which is undesirable on a machine using a solid state disk, like the EeePC. The disk can only handle a finite amount of read/write cycles and so this is the first of many steps we will take to minimize them. This is also the reason there is no swap partition on the disk, as you don’t want the operating system to be sending data into the swap space which would increase disk writes. This may be a problem on default systems but with the expanded RAM in my machine I don’t anticipate any issues. Also, the EeePC doesn’t have swap space as configured from Asus, so I wouldn’t worry. For more information on SSDs, see the Wikipedia entry.
The only other place that defaults are changed is in the tasksel screen, where you should make sure that the only items that are marked are base system and laptop. By installing the laptop packages we will have wpa_supplicant installed, which will be useful when setting up the wireless card later.
Other than that, accept the defaults, and after installation is complete reboot and log in as root with whatever password you provided during the install.
Step 3: Configuration
This part is a bit more difficult for those not familiar with Linux and working from the command line, but it shouldn’t be all that terrible for most. Although the ethernet card was working during the install, the driver isn’t copied during the install, so we’ll be setting that up by hand, followed by the wifi card. After that we’ll make some configuration changes to reduce disk writes, install a window manager, and install a wireless network manager.
- Get the ethernet working.
Plug in your USB drive that has the driver and config files on it, mount it, and cd to wherever you mounted it. Install the ethernet drivers and the 386 kernel headers. If you try to install the 686 headers first you’ll have a package dependency error that you can’t clear up because you wont have a way to download packages.
dpkg -i atl2*
dpkg -i linux-headers-2.6.22-3_2*
restart
Now mount the USB drive again and install the 686 headers
dpkg -i linux-headers-2.6.22-3-686*
You will get a dependencies error here, that’s fine. Just apt-get -f install and it will clear everything up. -
Get the wifi working.
First downlaod the Madwifi driver:
wget http://snapshots.madwifi.org/madwifi-ng/madwifi-ng-r2756-20071018.tar.gz
tar -xzvf *.gz
cd madwifi*Now download the patch that allows it to work on the EeePC
wget madwifi.org/attachment/ticket/1679/madwifi-ng-0933.ar2425.20071130.i386.patch?format=raw
cp madwifi-ng* madwifipatch
patch -p0 < madwifipatchNow make and install the patched drivers. I had to install make before I could do this, so
apt-get install make
make
make install
modprobe ath_pci
I usually reboot here.
Step 4: Configuration Changes
vim /etc/network/interfaces and comment out everything except the lo interface. The network interface stuff will be managed with a GUI that we will install later.
Edit the /etc/modprobe.d/alsa-base and add the line
options snd-hda-intel model=3stack-dig
in order to get the microphone working
vim /etc/fstab and add ,noatime to the options column of the /dev/sda1 line, then add the following entries:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
This will cause all of those directories to be resident in memory and writes to those directories (common for log files) will not go to the disk, which will prolong disk life. If you need all your log files then there are scripts available to copy the log files to the disk before shutdown. At this point we are using around 533MB of disk space, and we want to keep it under 1GB so that there is still lots of extra space left. In addition a window manager will be needed (unless you work strictly on the command line) and I prefer to use Xfce as my window manager. I find that it’s the best balance of performance and usability.
In a terminal, as root, apt-get install xorg xfce4 xdm network-manager-gnome.
After installation is complete, copy this xorg.conf file onto a flash drive, rename it to xorg.conf (stupid WordPress.com wouldn’t let me upload anything with a .conf extension), and then cd into the /etc/X11 directory and copy the downloaded xorg.conf into it, replacing the old one. Now enter startx to try and start the window manager. This did not work for me initially and I had to open the file in vim after I copied it and then write and quit. I think it was due to an issue with newline characters but I’m not sure. If you get an error about a missing EndSection then I would suggest trying that. Otherwise, reboot and you will be able to log in graphically.
Open a terminal and as root type adduser yourusername netdev, and also vim /etc/network/interfaces and comment out all the interfaces except for lo. Thanks to Techno Wizah for the NetworkManager info.
Also, go to the Xfce menu, Settings, Sessions and Startup Settings, Advanced tab and select “Launch Gnome services on startup.”
The last basic configuration change is to auto-start the network manager. Do this by going to Xfce menu, Settings, Autostarted applications, add a new one, and use nm-applet for the command.
Reboot if you’d like to make sure that everything works after a reboot, and use the NetworkManager applet on the top right to connect to your wireless network.
After the reboot, apt-get install iceweasel so you have a web browser and install a GUI text editor if you need one (I stick with vim usually).
The last thing I did was to config the window manager to use 8pt fonts for window titles and system fonts. I also configured Iceweasel to use 10pt sans-serif fonts for browsing.
Conclusion
Your EeePC should now happily have a Debian install on it, and you can add whatever packages you need. I added a bunch of TeX Live packages, Ruby, MySQL, and others. Even with all the packages installed I’m still only using about 1.1GB so there’s still plenty of room on the SSD. If I need extra space I can always purchase an 8GB SD card for about $70, tripling the storage.
If you have any questions or problems email me or post below. I will be updating this periodically if I remember something I left out or somebody brings errors to my attention. Good luck.

I’d still be using crapandros if it wasnt for this, thank you SO much
It’s no problem at all. There are still some holes in this guide that I need to fill but for those who have some Linux experience it should be quite easy to follow. Check back every now and then, because I’ll be doing updates.
Do you know any front-ends that will work for wireless? that gnome manager only seems to work for my wired ethernet
I resolved the problem, and I’ll post the solution here for you.
For those who have the network manager, and have it not showing the wireless networks when you right click it, do this
AS ROOT!! (su):
nano /etc/network/interfaces
Comment out everything other than “lo” entries in that file and save the file
Create a file called /etc/default/wpasupplicant, add entry ENABLED=0 and save the file
touch /etc/default/wpasupplicant
Reboot your system or use the following command
sudo /etc/init.d/dbus restart
not to spam the comments, but one last thing.
In debian lenny (this one) the package for xfce is ‘xfce4′ ;]
No worries about spamming the comments, those things I left out need to be included. I really did forget about commenting out all the other lines in /etc/network/interfaces although I don’t think you need to do all the wpa_supplicant stuff though. Also, if you create the file and then touch it then I think it will just be overwritten anyway.
Thanks again for the reminders. Is the EeePC working well for you?
Yea really great system overall, debian is nice and snappy
My only problem was the network think not reading wireless networks, but for some odd reason the create/touch did it. Compressed some files I didn’t need, and I still have 2.8GB left after I installed everything I needed. I’d recommend it to anyone.