
It has been noted many times that the Asus Eee PC 701 chipset supports 2GB SO-DIMM RAM modules but the default Xandros Linux build does not. With the new move from Asus to offer the rest of the source code, it's now relatively easy to recompile the kernel to add support for things. THANK YOU Asus! This HOWTO covers kernel options only - not modules. I will be adding highmem support and changing USB support from a module to a kernel option (thereby allowing me to move default filesystems to the SD card.)
IMPORTANT NOTE on unionfs:
The Asus Eee uses "unionfs" to keep critical system functions protected from user space. This is why booting into "XANDROSBOOTDEBUG" mode is essential later in the howto. Even experienced Linux users should not expect the boot loader or system configuration editing to behave the same way. Unionfs takes two filesystems and combines them. On this machine, it is done to protect users from themselves. This is why the video from Kevin Tofel (JKOnTheRun) was so fast in restoring factory status - It just wiped out all the "user space" changes. Search Eeeuser.com forums for a way to do away with all that.
Prerequisites:
- A Debian based Linux box (I am using xubuntu on a Parallels virtual machine) with the following installed:
- unrar
- build-essential
- gcc
- libncurses5
- libncurses5-dev
- libqt3-mt-dev
- A USB stick or SD card for carting files to the Eee. This can also be done over the network if you're smart enough to set it up.
- Decent working knowledge of Linux concepts, shell commands and, vi
- The Linux kernel sources from Asus
On your Linux box, download and unrar Linux_Kernel_071127.rar, then type the following in a shell:
dpkg --install linux-source-2.6.21.4-eeepc_5_all.debCopy the Eee's config file from your USB stick to a file called .config in that directory. This will pre-set all your kernel configuration variables to the default Eee kernel which will make compatibility (and life) much easier. Time to configure it!
cd /usr/src
tar -xjvf linux-source-2.5.21.4-eeepc.tar.bz2
cd linux-source-2.5.21.4-eeepc
make menuconfigI made the following changes:
Processor type and features -> High Memory Support -> Change from "off" to "4gb"
Device Drivers -> Support for Host-side USB -> Change all
Exit, saving the new kernel configuration. Here's where the magic happens: Type "make"
Your kernel is now compiling!
Once that's done, cp arch/i386/boot/bzImage to a USB stick or SD card. Since I didn't change anything major, I am only copying the compressed kernel. Plug your little storage device into your Eee and copy the bzImage your home directory on your Eee.
Boot into Single User Mode and mount the local filesystems using the instructions on wiki.eeuser.com. Make sure to follow it precisely including mounting /mnt-user and /mnt-system filesystems.
Copy the new kernel from /mnt-user/home/user/bzImage to a file called /mnt-system/boot/vmlinuz-new making sure to not break the existing vmlinuz. That's now a ready-to-use kernel, but you need to give yourself a boot option to use it. Time to edit the grub menu. Assuming you're still in /mnt-system/boot you should cp /mnt-system/boot/grub/menu.lst menu.lst.orig to make a backup. Following that, edit menu.lst (vi is installed - Google for help with it) and add the following:
title New KernelSave the file, unmount the filesystems, and reboot.
root (0x80,0)
kernel /boot/vmlinuz-new rw vga=786 irqpoll root=/dev/sda1
initrd /boot/intramfs-eeepc.img
On the next boot, use the F9 trick to get into the boot menu and select your new kernel. If it works, great! Go back to XANDROSBOOTDEBUG mode and edit menu.lst to make it your default kernel. If not, use dmesg to see what went wrong and try again.
Worked for me!
p.s. I will not do tech support on this article (see prerequisite 3) except to give you the search phrase to punch into Google or the Eeeuser forum. If you are afraid of breaking your Eee, you should experiment with a spare Linux box or virtual machine first.

10 comments:
Excellent tutorial! I've upgraded from 512 MB of RAM to 1 GB, but don't really see much difference in terms of performance. Have you thrown a 2 GB module in there after enabling support for it and if so, any impact?
Thanks for the info, useful stuff.
I ran through this;
http://wiki.eeeuser.com/howto:installingdevelopmenttools
first to install gcc, etc, and did the kernel compilation on my eee pc itself. Took some time to install and extra space for the tools but it all worked :)
I was just wondering, since all the Asus eee boxes are the same, why should everyone have to go through this process of rebuilding the kernal to recognize 2 gigs of ram? Wouldn't it be easier if you just made the new iso available for download with instructions on how to install just that?
I'm curious: I can understand changing the 4G kernel option, but is it really necessary to build all of the USB modules into the kernel? That's a lot of ticking.
Cheers.
Yes, do you mind providing the kernel?
Not everyone will have a spare linux machine, and the hardware is all the same... so if it works for you it'll work for us. ;)
Wait, what do you mean release the REST of the source code? Isn't Xandros under the GPL? Don't they have to pass on the rights to the source code to whoever owns the Eee? Plus the fact that you could just install another distro on it (with some work).
I'm having difficulties in booting with the new kernel. Although I installed the BIG version from http://www.eeepc.speedlinq.nl/ following the single user mode described here, I cannot boot with it.
When I select the entry in the grub menu I get an error message (to quick to be read) and then the system start to perform a fsck stopping with a message stating
USER: FILE SYSTEM WAS MODIFIED
press ENTER to REBOOT
And again and again fsck message stoping at the same block (2990)
Did anyone experience the same?
Thanks for that. Just two little hitches.
First of all, I can't see any kernel download at that Asus link. In fact, I can't see any downloads at all. That's with Firefox under Ubuntu - have they made it Internet Explorer only, perhaps?
Secondly, you say "Copy the Eee's config file from your USB stick to a file called .config in that directory.". Erm, what config file? It hasn't been mentioned before, and the little gizmos are stuffed with config files of various sorts..
If your Eee supports PAE and NX (check /proc/cpuinfo) you can enable CONFIG_HIGHMEM64G for increased security.
First of all, I can't see any kernel download at that Asus link. In fact, I can't see any downloads at all. That's with Firefox under Ubuntu - have they made it Internet Explorer only, perhaps?
I had the same problem and got it directly by typing:
wget http://dlsvr01.asus.com/pub/ASUS/EeePC/701/Linux_Kernel_071127.rar
econdly, you say "Copy the Eee's config file from your USB stick to a file called .config in that directory.". Erm, what config file? It hasn't been mentioned before, and the little gizmos are stuffed with config files of various sorts..
The eee config file for me is
/boot/config-2.6.21.4-eeepc
hope this helps. Thanks for the tutorial-worked for me!
Post a Comment