This HowTo drew from several other HowTos:
HARDWARE Dell Latitude D610
HARDWARE Dell Latitude D810
HARDWARE ipw2200
HARDWARE Dell Inspiron 600m
The X Server Configuration HOWTO
For more laptop guides check out Linux-On-Laptops !
The d510 is probably closest to the d610. There may be slight variations in hardware on individual machines even for this model. There are things I haven’t tried to get working yet ’cause I haven’t needed them… (and I’m lazy)
make.conf
Intel Pentium-M processor at 1.73 GHz
Intel 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC’97 Audio Controller
Intel Mobile 915GM/GMS/910GML Express Graphics Controller
so /etc/make.conf includes:
... CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" ACCEPT_KEYWORDS="~x86" VIDEO_CARDS="i810 i915" ALSA_CARDS="intel8x0" ...
Graphics
Xorg 7.0
emerge -av xorg-x11
and a few other core drivers (keyboard,mouse,etc) nothing special.
Intel i915GM driver
emerge -av xf86-video-i810
My Kernel Config has i810 and i915 as modules, not compiled into the kernel:
CONFIG_DRM_I810=m CONFIG_DRM_I915=m
lsmod shows i915 is loaded and used, although it is not in “/etc/modules.autoload.d/kernel-2.6”.
xorgcfg as root does a pretty good job setting up an xorg.conf, with a couple of adjustments. mouse is at “/dev/input/mice” and I added the Synaptics Touchpad section. Touchpad driver:
emerge x11-drivers/synaptics
a couple more edits get HW acceleration going. glxgears is reporting ~722 FPS.
I added a virtual line to the modes section because although the higher resolutions (1280 x 1024) display on the LCD, everything is too small.. Not sure if this is the best approach but it works for me:
SubSection "Display" Viewport 0 0 Depth 15 Virtual 1024 768 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 Virtual 1024 768 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 Virtual 1024 768 EndSubSection
there are other ebuilds – i810switch, 855resolution, and 915resolution that I haven’t tried. So far switching back & forth between LCD and VGA output works fine with the CRT/LCD button on the keyboard. Getting the 1440x(?) resolution would be cool though.
Disks
Hard Drive is SATA. (shows up as /dev/sda — so watch out when working with external drives which probably show up as /dev/sdb, /dev/sdc, etc..)
Device Drivers ---> SCSI device support ---> SCSI disk support SCSI low-level drivers ---> Serial ATA (SATA) support Intel PIIX/ICH SATA support
The CD-RW/DVD-ROM on my d510 is IDE (/dev/hdc).
LAN
This works out of the box with kernel config
Ethernet (1000 Mbit) ---> Broadcom Tigon3 support
Wifi
My machine uses “Intel PRO/Wireless 2200BG (rev 05)”.
Since newer versions of the driver are working well, I decided to get the latest kernel source (on gentoo) and use kernel modules. (2.6.20 as of 3/3/07)
emerge --sync emerge gentoo-sources cd /usr/src/ rm -i linux ln -s linux-2.6.20-gentoo linux cp 2.6.19-r2-gentoo/.config linux/ make oldconfig make menuconfig
Selected Kernel Configs:
Networking ---> Generic IEEE 802.11 Networking Stack [ ] Enable full debugging output IEEE 802.11 WEP encryption (802.1x) IEEE 802.11i CCMP support IEEE 802.11i TKIP encryption Device Drivers ---> Network device support ---> [*] Network device support Wireless LAN (non-hamradio) ---> [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions Intel PRO/Wireless 2100 Network Connection Intel PRO/Wireless 2200BG and 2915ABG Network Connection Cryptographic options ---> MD5 digest algorithm AES cipher algorighms (i586) ARC4 cipher algorithm Michael MIC keyed digest algorithm
Watched a couple of commercials on t.v.
make && make modules_install && make install rm -Rf 2.6.19-r2-gentoo
Even with the kernel modules, you still need the firmware:
emerge -av net-wireless/ipw2100-firmware echo "ipw2200" >> /etc/modules.autoload.d/kernel-2.6 reboot
On reboot found eth1, configurable by iwconfig or whatever.
dmesg | grep ipw ... ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0kdq ipw2200: Copyright(c) 2003-2006 Intel Corporation ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection ... modprobe ieee80211_crypt_wep
Connected to my insecure WEP network. Some gotchas: Make sure BIOS settings leave wireless on, they are o.k. by default. If it’s on the “bluetooth” light will be lit… A kernel upgrade usually also means rebuilding other modules such as for alsa.
Noise
There used to be a high-pitched noise, apparently generated by the processor entering energy-saving idle states. My kernel config has the acpi module “processor” compiled into the kernel so the noise went away after adding “processor.max_cstate=2” to the kernel options (in grub.conf):
... kernel /vmlinuz root=/dev/sda7 processor.max_cstate=2 ...
CPU Frequency Scaling
Kernel Configs:
CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_GOV_ CONSERVATIVE is not set
To auto-regulate CPU frequency according to system load:
emerge sys-power/cpudyn sys-power/cpufrequtils rc-update add cpudyn default rc-update add cpufrequtils default
In /etc/conf.d/cpufrequtils I have
GOVERNOR="ondemand"
The GNOME CPU Frequency Monitor widget shows the processor idling at 800MHz but scaling up to 1.07, 1.33, or 1.73MHz according to system load.