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.
- A Debian based Linux box (I am using xubuntu on a Parallels virtual machine) with the following installed:
- 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-126.96.36.199-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!
tar -xjvf linux-source-188.8.131.52-eeepc.tar.bz2
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.
kernel /boot/vmlinuz-new rw vga=786 irqpoll root=/dev/sda1
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.