I recently installed Ubuntu Linux 7.10 on my Ultra 40 at home. When I ran any command that reported memory (free, top, system monitor, etc.) it reported that 2.5 GB was available on my system. The problem with this is that my system has 3 GB.
I did a lot of searches on "missing memory," "underreported memory," etc. and never came up with anything. But after running the dmesg command today on an unrelated matter, I noticed this message:
Use a PAE enabled kernel
After a few searches, I determined that Ubuntu had chosen the wrong kernel for my machine. I needed the bigsmp flavor. Previous Linux variants had installed this by default but not Ubuntu 7.10. It was not easy to figure out how to get that kernel, either. A search in Synaptic for bigsmp yielded nothing. So back to Google, where I was able to find the advice to install the linux-image-server package. So I did, restarted my system, and the bigsmp kernel came up in my grub boot list.
So I booted it.
Now some more fun - gnome wouldn't come up in high resolution. Seems this kernel is incompatible with the nvidia video driver I had installed. gnome put me in 800x600 mode. So I went to the Restricted Drivers panel to disable my nvidia drivers.
More fun. I got a message telling me that this panel wouldn't start up without the linux-restricted-modules-2.6-22.14-server
So I go to Synaptic and look for the package. It's not there! Back to Google, more searching around, appears the package doesn't exist but I can get it if I recompile things on my system. I don't feel like it, so no more nvidia drivers and no more nice compiz for this release.
So one more power down, then reboot into the generic kernel, where it nicely lets me disable my generic driver. Then a final reboot into the bigsmp (aka server) kernel, where I now have access to the full 3 GB on my system.