Installing Gentoo Linux
on a Gateway MX8711
Steven T. Wallace
August 7th, 2007
(Last updated August 28th, 2008)
1 Introduction: lspci
2 Intel Core Processor
3 Display Controller
4 Audio Device
5 SATA Controller
6 Ethernet Controller
7 Wireless Adapter
8 Media Card Reader
9 Power Management
10 Synaptics Touchpad
11 Untested Hardware: Cardbus Controller, FireWire, Modem
12 Additional Resources
September 26, 2007: Updated touchpad section for accuracy, added note about recompiling ndiswrapper with each kernel upgrade.
August 28, 2008: Updated the Wireless Adapter section. I can no longer get wpa_supplicant to work, so I have removed that information. Also, some changes to what happens with ndiswrapper.
This document will walk you through the tougher steps of configuring Gentoo Linux on a Gateway MX8711 laptop computer. It is assumed that since you are installing Gentoo, you already have a reasonable familiarity with Linux. The guide is divided into sections each for a different piece of hardware. If relevant, each will tell you how to configure things in your kernel. I started with the kernel configuration settings on the Gentoo 2007.1 disc, and removed things from there. Again, since I assume that you are familiar already with this sort of thing, I will not tell you which modules to remove from the kernel, but only which ones to keep. It is not a complete kernel configuration guide, but rather a starting point.
It is very possible that this document has errors in it. If you find any, please let me know about them. My email address is steven.t.wallace at gmail.com.
Before we get started, this is the output of lspci on this computer:
# lspci 00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03) 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) 00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 03:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01) 04:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02) 04:09.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller 04:09.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller 04:09.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
If you do not own an MX8711, but have similar hardware, this guide may still be applicable to you.
These computers come with two Pentium-M processors, so be sure your kernel knows that:
Processor type and features [*] Symmetric multi-processing support Subarchitecture Type (PC-compatible) Processor family (Pentium M) [ ] Generic x86 support (2) Maximum number of CPUs (2-255) [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support Preemption Model (Voluntary Kernel Preemption (Desktop)) [*] Preempt The Big Kernel Lock
Note that I have taken the liberty of assuming that your computer is not running as a server. Change this if appropriate.
This was probably the trickiest part I had with installing Gentoo. The laptop screen has a resolution of 1440 x 900 pixels -- certainly not a standard resolution. While I have not attempted to properly set the resolution for the console, to use such a resolution in X we must use the 915resolution hack:
# emerge 915resolution
Now we must configure this to work properly. The following commands should do the trick:
# echo "replace=\"'4d 1440 900 24'\"" > /etc/conf.d/915resolution # echo "log=\"/var/log/915resolution\" >> /etc/conf.d/915resolution
If you have a different model notebook with a different resolution, change the line above to appropriately set your resolution. The first parameter is the video mode identifier, which you should leave alone, the second is the width of the screen, then height, and finally depth (bits per pixel). You probably should also leave the depth as it is.
But that's not all! We also want to use the proper video driver in X. You must set your VIDEO_CARDS flag in make.conf to reflect this. The ``i810'' is the generic driver to use with this chipset:
# echo "VIDEO_CARDS=\"i810\"" >> /etc/make.conf
Now when you emerge X it will also install that video driver. You also must enable the following in your kernel to properly use X:
Processor type and features [*] Enable VM86 support
Still more work to be done. If we want to use acceleration (DRI, GLX) in X, we must enable some items in the kernel:
Device Drivers Character devices ---> <*> /dev/agpgart (AGP Support) <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) <*> Intel 830M, 845G, 852GM, 855GM, 865G <*> i915 driver
Finally, there is a kernel framebuffer driver for this chipset. I have not tested it, as I have always had the most success with the VESA driver in the past, but if you want to enable it, select the following in the kernel's menuconfig:
Device Drivers Graphics support <*> Support for frame buffer devices [*] Enable firmware EDID <*> Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL) [*] DDC/I2C for Intel framebuffer support
I have always built the ALSA driver into the kernel. If you do things differently, you can still use this as a guide. I think that the kernel configuration sums up all that must be done:
Device Drivers Sound <*> Sound card support Advanced Linux Sound Architecture PCI Devices <*> Intel HD Audio
Don't forget to
# emerge alsa-utils
This was the most confusing part. I used Genkernel for a few days while trying to figure out the proper kernel configuration for this. Despite what you may be tempted to think, you do NOT want the ``Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support'' driver. Instead, you want the following:
Device Drivers <*> Serial ATA (prod) and Parallel ATA (experimental) drivers <*> AHCI SATA support
That's it! Now your hard disk should work properly. Disable all the other modules in here, as they will not be necessary.
This section is simple. You want to use the following kernel driver:
Device Drivers Network device support [*] Network device support Ethernet (10 or 100Mbit) [*] Ethernet (10 or 100Mbit) [*] EISA, VLB, PCI and on board controllers <*> Intel(R) PRO/100+ support
There are two ways you can configure your wireless card in Linux: one is to use wpa_supplicant and the native kernel driver, the other is to use ndiswrapper and the Windows driver. Since I have recently reinstalled Gentoo, my experience is that wpa_supplicant is no longer a viable option, and I will only explain how to use ndiswrapper.
First, we must obtain the ndiswrapper package, and any dependencies:
# emerge ndiswrapper
Now you probably already have drivers for Windows Vista. Good. Too bad you can't use those. Finding a valid Windows XP driver for this particular chipset is a nightmare. At the time of the writing of this (August, 2008), you can obtain drivers at ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe. To simplify things, you can execute the following at a shell:
# emerge cabextract # mkdir wifi_temp # cd wifi_temp # wget ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe # cabextract sp33008.exe # ndiswrapper -i bcmwl5.inf # ndiswrapper -l
The last command should tell you that the driver is installed and that ``device (14E4:4311) present.'' If this is not the case, then something has gone wrong. Assuming everything is okay, we can now delete that stuff we just downloaded:
# cd.. # rm -r ./wifi_temp
Almost there. Now we need to let Gentoo know about the card. This is accomplished by making a new symlink, but first we need to figure out what Linux wants to call it. Use the iwconfig program (it should have been installed at the same time you installed ndiswrapper) to see what your wireless card is called:
# modprobe ndiswrapper # iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 IEEE 802.11g ESSID:off/any Mode:Managed Frequency:2.437 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:0 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:46/100 Signal level:-66 dBm Noise level:-96 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
In this case, it is wlan0. The first time I installed Gentoo, it was eth1. I do not understand why this is, but am glad to have an adapter. If nothing is shown here other than devices with "no wireless extensions," try turning the adapter off and then back on (press Fn+F2, the WiFi LED will toggle on and off). I have never had to do this in the past, but it appears necessary now. Again, I have no idea why. After this, let's get ready to activate it. In the following lines, replace "wlan0" with the adapter name you have:
# ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0 # /etc/init.d/net.wlan0 start
Everything should have gone smoothly if you are connecting to an open AP. If not, you will need to modify /etc/conf.d/net a little bit. Here is the general idea of what my file looks like:
# Make sure that we don't try to use wpa_supplicant modules=( "!wpa_supplicant" ) # Not for wireless: times out the wired ethernet's DHCP request after 5 seconds dhcpcd_eth0="-t 5" # AP keys for various places I go. The first two are WEP, the last is WPA encryption. key_roscoe="1234567890" key_shelby="0987654321" key_paws="s:textpasswordhere"
Now try to connect again:
# /etc/init.d/net.wlan0 start
Hopefully things worked out. Optionally, if you want this to start each time you boot,
# ndiswrapper -m # rc-update add net.wlan0 default
Note: you will need to remerge this program each time you upgrade your kernel!
The other two guides I read for installing Linux on an MX8711 both said they could not get the media card slot to work. After enabling the following kernel drivers, mine worked like a charm:
Device Drivers Misc Devices <*> TI Flash Media PCI74xx/PCI76xx host adapter support (EXPERIMENTAL) <*> MMC/SD card support <*> MMC block device driver <*> TI Flash Media MMC/SD Interface support (EXPERIMENTAL)
When I pop in an SD card from my digital camera I see activity in my system log and I get an sd device node created for me.
Knowing the status of your battery is important. Before I had installed these components into the kernel, I ran out of power twice while using the machine, because I had no idea that the battery was low.
Power management options (ACPI, APM) ACPI (Advanced Configuration and Power Interface) Support [*] ACPI Support <*> AC Adapter <*> Battery <*> Button < > Fan < > Dock <M> Processor <M> Thermal Zone
Note how I have disabled the ``fan'' and ``dock'' components, as these do nothing for this laptop. If you have a docking station, your results may vary. Also, I have compiled in the processor monitoring as a module. For some yet unresolved reason, X does not work for me with this module loaded into memory. You can try it for yourself and see if you get the same problems. I got a kick at checking out /proc/acpi after loading these into my kernel.
This section only refers to using X. I do not use a mouse at the terminal. By default, only tapping the pad to click will work in X. Using the synaptics driver, you can also scroll with the side of the pad. First, we must install the driver:
INPUT_DEVICES="synaptics" emerge -an synaptics xorg-x11
After you've configured X as described in the documentation, add this into your /etc/X11/xorg.conf file:
Section "Module" Load "synaptics" EndSection Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Protocol" "auto-dev" Option "SendCoreEvents" Option "SHMConfig" "on" EndSection
And then set this to be your ``CorePointer''. In the ServerLayout section, change the Mouse1 entry (or whatever your input device is set to by default) so that it will "SendCoreEvents" and add in the line making Touchpad your core pointer:
InputDevice "Mouse1" "SendCoreEvents" InputDevice "Touchpad" "CorePointer"
Restart X and it should all work.
My apologies to anyone who uses these. As this machine has most all the hardware I would need, I did not have to worry about PCMCIA cards. Further, I do not have any FireWire devices, so I can not test my configuration for that. Finally, I have not used a phone line modem since the year 2000, and thus did not bother with the modem drivers.
If you need any additional help, I found the following resources to be helpful to my installation of Linux.
 Gentoo Foundation. The Gentoo Handbook. http://www.gentoo.org/doc/en/handbook/index.xml  Vernon R. Martin. Linux on a Gateway MX8711. http://www.vernmartin.com/vmc_site/MX8711_Install_notes.htm  Daniel P. Stasinski. Fedora 7 Linux on Gateway MX8711. http://www.saidsimple.com/content/Gateway-MX8711  Jamie Jackson. bcm43xx / Feisty No-Fluff. https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Feisty_No-Fluff
This document may be freely distributed. If you would like to make modifications, I would prefer if you sent them to me so I could update my copy. My email address is steven.t.wallace at gmail.com.