TuxMobil: Linux with Laptops, PDAs, Mobile Phones and Portable Computers
PRINT version of "Gentoo Linux on a Gateway 450X Laptop"
    <= Back to SCREEN version <=


The purpose of this document is to document my experiences running Linux (specifically, Gentoo) on a Gateway 450X notebook. There is relatively little documentation online covering these, and similar notebooks.

NOTE: There appears to be another Gateway 450X that has a Pentium4-m CPU, and is basically a completely different machine. This is the Centrino(tm) 450X, which you can find on Gateway's products page (which does not have a Pentium4-m 450X). Interestingly, Gateway's support pages lists this as a 450rog, and the 450X as having a p4-m. Rather confusing.

These are the specs for the machine:

For convenience, here is the output of lspci and the contents of /proc/cpuinfo. Please feel free to ask Chris Irwin <centrino-linux_at_cidesign.ca> if you wish more information.


The first thing I did was scale back MicroSoft-Window's NTFS partition to 15G. This left approx 15G for Gentoo (actual: 13 or so). I did this through Partition Magic from Windows. NTFS is very difficult to work with, I may look into switching to FAT32. I have heard success stories of using ntfsresize, but did not try it myself.

The install was done with a Gentoo Linux 1.4rc4 livecd and stage 1 tarball. These tarballs contain gcc 3.2.2, which has known bugs which generate invalid SSE2 instructions. For the bootstrap, CPU type must be set to Pentium3.

Stage 1

Here are the changes I made in make.conf.

NOTE: The CFLAGS in particular are a little nuts, feel free to drop everything after -pipe. Also, ~x86 is known to break from time to time. I suggest not changing ACCEPT_KEYWORDS.

USE="X dvd gtk2 gtk -arts -kde -qt -gpm"
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -fprefetch-loop-arrays"

Following the install instructions, partitioning and bootstrapping went smoothly. This took under two hours, but I already had all source downloaded.

NOTE: I realize a Pentium-M is not a Pentium 4, or even a Pentium 3 for that matter, but I have not had any problems.

Stage 2

Type `emerge system` at this stage. That is pretty much it, unless you are starting here.

`gcc -v` still reported being gcc 3.2.2, so I did not enable any advanced features such as sse2. gcc 3.2.3 (and newer releases such as 3.3) fix the sse2 bugs. It may be possible to set -march=pentium4 when the tarballs are updated. I will also be switching once the system is completed.

This took just under an hour. Again, expect longer if you must download source.

Stage 3

It is mentionned in the install docs that you sync portage again, and update if neccessary.

UPDATE: I'm currently using these flags, after switching to gcc 3.2.3 (I still havent tried ALSA yet):
USE="acpi acpi4linux dga dvd gtk2 imap joystick music offensive openal \
pcmcia pnp radeon sse trusted wxwindows xosd -3dnow -apm -arts -gpm \
-kde -qt"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -mfpmath=sse -mmmx -msse -msse2"
I could probably be more agressive due to the rather large 1MB cache on this CPU, but I don't wish to risk system stability while on vacation :)


I used the latest -ac sources kernel, version 2.4.22-pre3-ac1. I chose this kernel for the ACPI patches. Enabling ACPI thermal support is very important. I also enabled MTRR and AGPGART, but disabled dri. The dri code is too old in 2.4 kernels and won't work with xfree 4.3.0.

With a few kernels, I had to compile agpgart as a module, and pass the "try_agp_unsupported=1" flag with it. the -ac sources fixes this, i believe, but I left it in my modules_autoload.

UPDATE:: I'm currently using a 2.6.0-test2 kernel. It works fine with the exception of framebuffer.
UPDATE:: Currently using a 2.6.0-test3 kernel. It works fine with vesa framebuffer, but not with radeonfb yet..

Post-Stage 3

By this point I had rebooted, and was running from my new base system.


The only issue I have with video is the radeon driver. Unfortunately, with the radeon 7500 you are limited to only the xfree implementation. This is not a bad thing, as dri accelleration is possible with this driver. However, it doesnt support some proprietary things that the ati binary drivers support (S3TC, etc). So basically, this means no UT2003. But you still get a mean tuxracer, and reportedly Neverwinter Nights as well.

I told portage to merge fluxbox, so I could have a workable X system to play with. After that completed, I ran `X -configure` to get a basic XF86Config file, just as the instructions stated. X ran fine, detected display properly (no need to set modes).

I want accellerated opengl, so I now decided to look at dri. Gentoo has a package called xfree-drm that provides the latest kernel modules. I installed this module, and put 'radeon' in my modules.autoload. I also added a few things to my XF86Config for DRI, as well as some other minor customizations (second mouse, etc).

You can see my whole XF86Config, or just a diff against the original generated file.

Also, X compiled in about an hour, maybe a little less. I was impressed.

UPDATE:: I've attatched my new XF86Config now. This contains the updates neccessary to use the synaptics touchpad with the development series kernels (note there are three mouse sections. I kept the old default mouse section incase i needed to use a 2.4 kernel)


CPU_A: Pentium M

With ACPI patches, CPU frequency scaling, and thermal-activated fan work great. The fan doesnt seem to come on until about 67 degrees, and it shuts off after bringing the system down to about 62.

cat /proc/acpi/thermal_zone/THRM/temperature
Displays system (CPU?) temperature.

cat /proc/acpi/processor/CPU0/performance
Displays CPU frequency states. State names are P0, P1, and so on. To switch the CPU to state Px, you would
echo x > /proc/acpi/processor/CPU0/performance

UPDATE: 2.5 series kernels have much better power-saving features through the /sys file system. The battery life seems to be better, however I couldnt get framebuffer or the touchpad working as of 2.5.75.
UPDATE: I have now switched to a 2.6.0-test2 kernel. It works fine.
UPDATE: Here are some tips to do powersaving with the sysfs in 2.6.0 kernels:
#Scale CPU down as far as it goes:
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
#Scale cpu up as fast as it goes:
echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

ATI Radeon 7500 Mobility (M7) 32M

Video works good with Direct Rendering Interface - DRI.

UPDATE:: I have played Neverwinter Nights in Linux. Works a little slow at times, and environmental shading does not work, but unable to compare with windows due to lack of OpenGL support in MS's included radeon driver. Will look into. I average about 20-25 fps.
UPDATE:: There are some framebuffer issues as the radeonfb has recently begun some changes (i.e. development). I have not gotten it to work, so if you are a framebuffer guru, you may be dissappointed. vesafb works fine though.

30G 4200RPM

Working in udma5 with DMA enabled.

satellite root # hdparm -tT /dev/hda
Timing buffer-cache reads: 1524 MB in 2.00 seconds = 762.00 MB/sec
Timing buffered disk reads: 62 MB in 3.09 seconds = 20.06 MB/sec

UPDATE:: used "-d1 -u1 -W1 -c3 -m32 -S 60" flags with hdparm. If it makes any difference i am not sure.

Intel 82801DB AC'97

Works great with OSS. Have not yet tried Advanced Linux Sound Architecture - ALSA.

UPDATE:: Works great with ALSA as well.

24x10x24x CD-RW + 8X DVD-ROM Combo Drive

Works fine as a dvd and cd reader, but I have not tried to burn any cds. I will update this shortly with some attempts. Also, I will be trying to burn using the ATAPI capabilities of cdrecord, rather than ide-scsi.

UPDATE:: Works with cdrecord 2 in ATAPI mode. I assume that it would work in SCSI-emulation mode as well.

Removable 'Memory Card' Reader


Synaptics Touchpad

Works okay. Unable to get scroll buttons working, but discovered ability to double tap and drag. Double-tap on a scroll-bar, holding your finger on the pad with the second tap, and drag finger to the edge of the touchpad. The cursor will keep scrolling. Great feature.. and if it's a bug, it's still one hell of a feature.

UPDATE:: Unable to get working with 2.5.75
UPDATE:: Got it working through the event interface with 2.6.0-test2. This link(http://forums.gentoo.org/viewtopic.php?t=67852) [forums.gentoo.org] got me started. I ended up having to redefine the edges for my particular touchpad using a utility that came with the synaptics touchpad driver. >Also of note is that if the left edge of your touchpad registers as "1300", specifying a leftedge of "1400" in the x config does not lose any functionality (as your finger is still moving left, for example). It does, however, change the boundry for drag-locking (where it keeps moving once your finger hits this point). Using the event interface on the 2.6 kernel, the scroll buttons also work. This almost makes up for the lack of a third button. Hoorah.

Rather Nice Notebook Keyboard

The keyboard works fine. Status and brightness functions seem to be implemented in the bios, and provide a tiny OSD. Volume keys send unhandled keycodes, and ~/.Xmodmap picks them up fine. The suspend function sends an acpi event acpid can capture. My favorite is the help function button. Holding Fn and F1 causes a special help function, which is, of course, hardwired to represent F1 :)

There are four quick-launch keys. The Mail and Web keys are no problem, and can be grabbed via .Xmodmap. The help key is hardwired to F1, much like the help function key. The 'system' launch key seems to be sending the keycode for the letter 'e'. I cannot explain.

UPDATE:: Enabling apic in 2.6 kernels causes the system to freeze when you change the brightness. Unfortunately, some post-test3 updates to ACPI require apic enabled. I've gone back to the plain release of 2.6.0-test3 for the time being.

Integrated Intel PRO/Wireless 2100

It does not even pretend to even partly want to work. Intel is being a pain and wavering on their Linux support for this device. I am considering shopping around for a CISCO Aironet 35x-based miniPCI card.

NOTE:: I picked up a Linksys PCMCIA-CS card for about $80. It works fine, until Intel finishes their product.

Integrated Intel 82801DB AC'97 Modem

Untested thus far.

2x PCMCIA Type II (CardBus) Slots

Seems to be working, but I have no pcmcia devices.

UPDATE:: Have purchased a wireless card to work around Intel deficiencies. It works.
UPDATE:: For 2.6.0-test2, you must use the in-kernel pcmcia stuff (although the tools from pcmcia-cs are still needed). I enabled pcmcia and yenta as modules, instead of in the kernel as they seemed to interfere with the touchpad when they were compiled in (odd). I autoload yenta_socket on boot, as the cardmgr service skips this and loads ds (which then will not work). Card drivers are therefore modules as well.

2x USB 2.0 Ports

Seems to be working, but my only USB devices are USB 1.1 compliant. Those work, anyway.

1x IEEE 1394 (FireWire)

Seems to be working, but is untested. I don't even know anybody with FireWire devices.

Author: Chris Irwin <chris_at_cidesign.ca>
Date: Fri Aug 22 19:35:09 EDT 2003

Other Resources

TuxMobil: Linux with Laptops, Notebooks, PDAs, Mobile Phones and Portable Computers

        /* Adv.    Xtops.DE - Laptops and PDAs with pre-installed Linux   Adv. */        

http://tuxmobil.org/gateway_450x.html, copyright © Werner Heuser, 1997-2008