Enable PAE in Hardy kernel to support 4GB memory

~~ Update ~~ seems the BIOS on my damn Toshiba laptop refuses to report 4GB to the  OS level.

Gave up on this… Oh Well.


I got all exited the other day and went ahead and ordered 4 GB of RAM for my laptop.  Rushed home and put it in.


Rebooted and checked available memory using the free command:

total       used       free     shared    buffers     cached
Mem:       3114640 2949160     165480          0      90196    1801028
-/+ buffers/cache:    1057936    2056704
Swap:      6072528         80    6072448

WTF? Only 3 GB?! So I start reading the Ubuntu forums and come to find out that Ubuntu does not enable PAE which is required for accessing 4GB.

A few options:  install the server kernel, 64 bit kernel, or recompile.  Being the adventurous type,  I decide to recompile.

Now a little history here, its been YEARS since I last compiled a kernel, I don’t think I have even every done a 2.6 kernel,  if that tells anyone something!!

Using the  guide found here : https://help.ubuntu.com/community/Kernel/Compile

I start with :

sudo su – (easier than running each and every command as root)

apt-get install linux-kernel-devel fakeroot build-essential

apt-get install git-core

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-intrepid.git ubuntu-intrepid

Note:  intrepid kernel?  figure what the heck 🙂

This pulls down the whole kernel and puts in it /root/ubuntu-intrepid

Now, where is the option to turn on PAE.

# cd debian/config/i386

# grep -n -i pae *


So, I add this same line to the config. generic file.


Next I compile.

# AUTOBUILD=1 fakeroot debian/rules binary-debs

Then its time to go take a nap, have some lunch, etc…

Somewhere along the way it occurs to me that if I am just rebuilding the generic kernel and I am going to end up with the .deb packages to install, then I really need to rename this some what so that I am not over writing the current working kernel …    duh!  I am working with the intrepid kernel, so that should hopefully solve that problem, so it should not be the hardy generic but intrepid generic …   Also, if this is going to install the packages, does that eliminate all of the old way of doing it where the initrd had to be built, manually add the new kernel to the bootloader?  Will see….

Update —

ACK – Didn’t work  — well the kernel booted and everything, but since I was using the ATI restricted driver, it fucked up my graphics … back to the drawing board



Leave a Reply

Your email address will not be published. Required fields are marked *