Contents

Specs

First, a quick rundown of my custom hardware:

Device Company Model Important #s
Processor Intel Pentium M 740 (1.73 GHz)
Video Card Nvidia GeForce Go 6600 128 MB
Screen Mystery WXGA LCD 1680x1050-24@61
Optical Drive Mystery DVD+-RW 8x SATA
Hard Disk Hitachi? whatever 80GB SATA
Ethernet Marvell Yukon 100 Mbit
PCCARD Texas Instruments Mystery
Wireless Intel PRO/Wireless 2200BG
Firewire Texas Instruments mystery
SATA Intel mystery
Audio Intel AC '97 snd-intel8x0
more mystery components to come

Kernel Configuration

The key to success with any laptop is having a suitable kernel. The Toshiba M40 will throw you for a loop more than once. I chose a 2.6 kernel. Because they're awesome.

You'll need loadable module support for at least the nVidia driver later:

   Loadable module support ---> [*] Enable loadable module support

Be sure to set your processor family

   Processor type and features ---> Processor family (Pentium M) --->

Go ahead and enable Toshiba laptop support. It won't work on your machine, because it isn't supported yet, despite the fact that it does indeed have a "Toshiba BIOS" and not a "Phoenix BIOS" like the internet suggests the problem is. Hopefully the problem will be addressed someday. Obviously, it's up to you if you want to leave it out to save space.

   Processor type and features ---> [*] Toshiba laptop support

Enable Power Management support via ACPI, as well as CPU frequency scaling. I chose to use Software Suspend version 1 because it was easier and I didn't really need the features provided by swsusp2. I'll do that some other day.

   Power management options (ACPI,APM) --->
         [*] Power Management support
         [*] Software Suspend
         ACPI Support --->
                  [*] ACPI Support                                                      
                  [*]   Sleep States (EXPERIMENTAL)
                  <*>   AC Adapter
                  <*>   Battery
                  <*>   Button
                  <M>   Video
                  <*>   Fan
                  <*>   Processor                                      
                  <*>     Thermal Zone
                  <M>   Toshiba Laptop Extras
        CPU Frequency Scaling -->
                  [*] CPU Frequency scaling
                  <*>   CPU frequency translation statistics
                  [*]     CPU frequency translation statistics details
                          Default CPUFreq governor (userspace)  --->                    
                  <*>   'performance' governor
                  <*>   'powersave' governor
                  ---   'userspace' governor for userspace frequency scaling
                  <*>   'ondemand' cpufreq policy governor
                  <*>   'conservative' cpufreq governor
                  ---   CPUFreq processor drivers
                  <M>   ACPI Processor P-States driver
                  <M>   Intel Enhanced SpeedStep

Again, this Toshiba Laptop Extras thing doesn't actually work, but at least this time you have the option to compile it as a module! The same goes for SpeedStep... Even though it says Centrino on the box, the linux module doesn't recognize it as such. Fortunately the P-States driver works.

PCCards

Enable PCI Express and PCCard Support. Your hardware is CardBus yenta-compatable:

   Bus Options --->
         [*] PCI support
         [*]   PCI Express support
             PCCARD (PCMCIA/CardBus) support  --->
                    <M> PCCard (PCMCIA/CardBus) support
                    <M>   CardBus yenta-compatible bridge support

As far as I can tell, your bluetooth device is not supported, so I won't go into it.

Disks

Moving on to the other device drivers: Enable SCSI and SATA support. Your Controller is of the Intel ICH variety. Build it in so as to not have to worry about initrds

   Device Drivers --->
           SCSI device support --->
                    <*> SCSI device support
                    <*>   SCSI disk support
                    <*>   SCSI generic support
                          SCSI low-level drivers  --->
                                 <*> Serial ATA (SATA) support
                                 <*>   Intel PIIX/ICH SATA support


Network

The Ethernet controller is a funny thing. Some people tell you to use skge, some people tell you to use sk98lin. Well, they're all wrong. Enable sk98lin (despite the fact that it is a gigabit ethernet driver and we know the card only runs at 100mbps) and patch it with the latest update from SysKonnect. I have a mirror of the a version of the tarball at http://omega.cs.iit.edu/~sheridan/sk98lin.tar.bz2 for now.

   Device Drivers --->
        Network device support --->
             [*] Network device support
                   Ethernet (1000 Mbit)  --->
                         <M> Marvell Yukon Chipset / SysKonnect SK-98xx Support

Don't enable Any Wireless LAN stuff, you emerge your drivers later.

Misc

Your touchpad emulates a PS/2 mouse if you don't use the synaptics drivers (which is not difficult but hey...) so be sure to turn that on:

   Device drivers --->
      Input device support --->
             [*]   Mouse  --->
                     <*>   PS/2 mouse

The Synaptics touchpad needs the evdev kernel module to have /dev/input/eventX working correctly.

   -> Device Drivers
     -> Input device support
       -> <*> Event interface

Enable AGP support, if you like to see things

   Device Drivers --->
       Character devices --->
            <*> /dev/agpgart (AGP Support)
            <*>   Intel 440LX/BX/GX, I8xx and E7x05 chipset support

Sound

Sound is good. You have an AC97 card of sorts. Make this:

   -> Device Drivers
     -> Sound
       -> Advanced Linux Sound Architecture
         -> Advanced Linux Sound Architecture (SND [=m])
           -> PCI devices
             -> <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller

I find it's always good to compile sound drivers as modules, in case an application eats your hardware alsa device and you can't find it. [edit] More?

I think that covers the machine specific kernel configuration. Make it!

   root@localhost linux # make && make modules_install && make install

Packages

You'll want the following packages. For now it's up to you to RTFM for each of them:

  • ipw2200 (Wi-Fi)
    • recent kernels have ipw2200 drivers already, but as with alsa, the package has more recent versions
  • synaptics (touchpad)
  • gnome-bluetooth (or kde/whatever equivalent)
    • bluez-kernel (for some reason gnome-bluetooth doesn't pull this)
  • cpufreqd
  • Nvidia junk
    • nvidia-settings
    • nvidia-kernel
    • nvidia-glx
  • toshiba-utils is deceptively useless. It relies on the kernel module that doesn't work...
  • fnfx seems to be another option, but I had no success with it

Did I miss anything?

Links

Powered by MediaWiki