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?


