HARDWARE Dell Inspiron 600m

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] General

This document will help you setup Gentoo Linux on your Dell 600m Laptop.

[edit] News

This is a work in process I have most features working and I just need to type up how it was done.
Thanks for your patience!

[edit] 600m Hardware Layout

[edit] Specifications

Processor

Intel Pentium M Processor 725 (1.60GHz, 2MB Cache, 400MHz FSB )
Intel Centrino Mobile Technology

Memory

256 MB DDR SDRAM (Upgradable to 2GB) - 2 X PC2100 SODIMM Sockets

Motherboard Chipset

Intel 855PM (Odem) + ICH4-M

Display

14.1" TFT SXGA+ Display (Resolution 1400x1050x16M)

Video Card

ATI Mobile Radeon 9000 (64MB DDR, 4X AGP

Hard Drive

40 GB Toshiba MK4026GZX Ultra ATA

Optical Drives

Philips CD-RW/DVD-ROM (24x/10x/24x CD-RW, 8x DVD)

Sound Cards

Integrated AC'97 Audio Controller (SigmaTel)

Modems

Internal 56k v.92 fax modem

Network Interface

Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (10/100/1000)

Wireless Networking

Intel 2200BG 802.11b/g mini pci wireless card (WEP, WPA, 802.1x)
TrueMobile Bluetooth card

I/O Ports

2x USB 2.0
Serial Port: 9-pin connector
Audio Jacks: line-out(external speakers/headphone) external microphone
Parallel Port: 25-hole connector
Video: 15-pin monitor connector
S-Video: 7-pin mini-DIN connector
Ethernet: RJ-45 connector
Serial Infared Communications port (IrDA-1.1)
Modem: RJ-11 connector

Slots

Connectors: 1x Type I or Type II card (3.3 and 5V card)

Batteries

Primary: 48Whr - 6 cell Lithium Ion Battery
Secondary: available


Code: lspci output
0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 Mobile PCI Bridge (rev 81)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4-M) IDE Controller (rev 01)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [FireGL 9000] (rev 02)
0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
0000:02:01.0 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
0000:02:01.1 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
0000:02:03.0 Network controller: Intel Corp. PRO/Wireless 2200BG (rev 05)

[edit] ACPI Power Management

I followed the official Gentoo Power Management Guide to setup acpi.

[edit] Power (AC/Battery)

  1. emerge acpid
  2. Create a battery run level
  3. add acpid to the default and battery run levels
  4. emerge powermgmt-base
  5. Setup basic ACPI Kernel Configuration
  6. Create run level scripts to handle ac_adapter/battery check.


Linux Kernel Configuration: ACPI
Power management options (ACPI, APM)  --->
 [*] Power Management support
  ACPI (Advanced Configuration and Power Interface) Support  --->
   [*] ACPI Support
   [ ]   Sleep States (EXPERIMENTAL)
   <*>   AC Adapter
   <*>   Battery
   <*>   Button
   <M>   Video
   < >   Generic HotKey
   <*>   fan
   <*>   Processor
   <*>     Thermal Zone
   < >   ASUS/Medion Laptop Extras
   < >   IBM ThinkPad Laptop Extras
   < >   Toshiba Laptop Extras
   (0)   Disable ACPI for systems before Jan 1st this year
   [*]   Power Management Timer Support
   < >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)

[edit] CPU

I was originally using speedfreq but I just learned that it was removed from portage. I switched to cpufreqd but there are other options available.

  • Setup CPU Frequency Scaling in the kernel
  • emerge cpufreqd
  • emerge cpufrequtils
  • get list of frequency steps using cpufreq-info
  • create /etc/cpufreqd.conf
  • rc-update add cpufreqd default battery


Basic Kernel ACPI CPU Setup

Linux Kernel Configuration: ACPI CPU
Power management options (ACPI, APM)  --->
 [*] Power Management support
     CPU Frequency Scaling  --->
      [*] CPU Frequency scaling
      [ ]   Enable CPUfreq debugging
      <*>   CPU frequency translation statistics
      [ ]     CPU frequency translation statistics details
            Default CPUFreq govenor (preformance)  --->  
      ---   'performance' governor
      <*>   'powersave' governor
      <*>   'userspace' governor for userspace frequency scaling
      <*>   'ondemand' cpufreq policy govenor
      <*>   'conservative' cpufreq govenor
      ---   CPUFreq processor drivers
      <*>   ACPI Processor P-States driver
      <*>   Intel Enhanced SpeedStep
      [*]     Use ACPI tables to decode valid frequency/voltage pairs
      <*>   Intel Pentium 4 clock modulation


# cpufreq-info

Code: cpufreq-info
cpufrequtils 0.3: cpufreq-info (C) Dominik Brodowski 2004
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: centrino
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 600 MHz - 1.60 GHz
  available frequency steps: 1.60 GHz, 1.60 GHz, 1.60 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 600 MHz and 1.60 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz.


File: /etc/cpufreqd.conf
[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
pm_type=acpi
verbosity=5

[Profile]
name=ondemand
minfreq=600000
maxfreq=1600000
policy=ondemand

[Profile]
name=powersave
minfreq=600000
maxfreq=800000
policy=powersave

[Profile]
name=performance
minfreq=600000
maxfreq=1600000
policy=performance

[Rule]
name=battery
ac=off
profile=ondemand

[Rule]
name=battery_low
ac=off
battery_interval=0-10
profile=powersave

[Rule]
name=ac
ac=on
profile=performance

A better version can be found on the cpufreqd website. cpufreqd.conf

[edit] Hard Drive

  • emerge laptop-mode-tools
  • emerge hdparm
  • create /etc/init.d/pm.hda (this is for controling /dev/hda)
  • rc-update add pm.hda battery
  • edit /etc/laptop-mode/laptop-mode.conf
Change the line HD="/dev/[hs]d[abcdefg]" to HD="/dev/[hs]d[a]" or you will get errors in syslog.
  • rc-update add laptop_mode battery


File: /etc/init.d/pm.hda
#!/sbin/runscript

depend() {
  after hdparm
}

start()
{
    ebegin "Activating Power Management for Hard Drives"
    hdparm -q -S24 /dev/hda
    eend $?
}

stop()
{
    ebegin "Deactivating Power Management for Hard Drives"
    hdparm -q -S253 /dev/hda
    eend $?
}

[edit] Temperature

You can read the temperature from proc using ACPI / thermal zone.

cat /proc/acpi/thermal_zone/THM/temperature
Linux Kernel Configuration: Dell Laptop Support
Processor type and features  --->
  <*> Dell laptop support

[edit] Buttons (LID and Power)

I setup the laptop to shutoff the lcd when the lid is closed and to shutdown the laptop when the power button is pressed.

  1. emerge radeontool
  2. create /etc/acpi/events/button and /etc/acpi/actions/buttons.sh


File: /etc/acpi/events/button
event=button.*
action=/etc/acpi/actions/buttons.sh %e


File: /etc/acpi/actions/buttons.sh
 action=${1/*\//}

 case "$action" in
   lid)
     lidstate="$(awk '{print $2}' /proc/acpi/button/lid/LID/state)"
     logger "Display is $lidstate"
     
     case "$lidstate" in
       open)
         /usr/sbin/radeontool light on
       ;;
       closed)
         /usr/sbin/radeontool light off
       ;;
     esac
   ;;
   power)
     logger "Power Off"
     /sbin/init 0
   ;;
   *)
     logger "ACPI Button action $action is not defined"
   ;;
 esac

[edit] Video

[edit] ATI Radeon (Driver)

  • Setup kernel driver


Linux Kernel Configuration: Video Driver
Device Drivers  --->
  Character devices  --->
  <*> /dev/agpart (AGP Support)
  <M>    Intel 440LX/BX/GX, I8xx and E7x05 chipset support

Note: If you don't compile this as a module, you'll have to set "UseInternalAGPGART" to "no" in your X Config file) (Help: Please post the actual file name and sample for this, Nouse4anick)

  • add radeon to your VIDEO_CARDS section in you make.conf (recompile xorg-server)
  • run xorgconfig, to set up your xorg.conf, check that the driver section says radeon

See also Hal quirks

[edit] Network

[edit] Ethernet Card (Driver)

I setup eth0 using hotplug and netplugd. Netplugd starts or stops the interface depending on whether there is an active network link.

  • Enable the tg3 device driver in the kernel.
  • Create a link net.eth0 -> net.lo in /etc/init.d/
  • rc-update add net.eth0 boot
  • setup eth0 in /etc/conf.d/net
  • emerge netplug


Linux Kernel Configuration: TG3 Driver
Device Drivers  --->
  Network device support  --->
  [*] Network device support
    Ethernet (1000 Mbit)  --->
    <M> Broadcom Tigon3 support


This will setup you eth0 device to try dhcp and fall back to a static network. For me this works well because at work they use DHCP and at home I have a static setup.

File: /etc/conf.d/net
# ETH0
hotplug_eth0="yes"
configure_eth0=( "dhcp ")
fallback_eth0=( "XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX broadcast XXX.XXX.XXX.XXX" )
fallback_route_eth0=( "default via XXX.XXX.XXX.XXX" )

[edit] Wireless

[edit] Intel 2200BG (Driver)

There is alot of good information on the Gentoo Forums and on the IPW2200 driver web site and forum. WPA is available using net-wireless/wpa_supplicant.

Note: as of Linux 2.6.17, the ipw2200 and ipw2100 drivers are provided in the kernel. The net-wireless/ipw2200 and net-wireless/ieee80211 packages are not required. The net-wireless/ipw2200-firmware package, however, is still required.

Linux Kernel Configuration: IPW2200 Setup
Networking   --->
  <M> Generic IEEE 802.11 Networking Stack
  [ ] Enable full debugging output
  <M> IEEE 802.11 WEP encryption (802.1x)
  <M> IEEE 802.11i CCMP support
  <M> IEEE 802.11i TKIP encryption
Device Drivers  --->
  Network device support   --->
    [*] Network device support
    Wireless LAN (non-hamradio)   --->
      [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
      <M> Intel PRO/Wireless 2100 Network Connection
      <M> 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

All of the above selected crypto algorithms may not be necessary for WPA - feel free to remove any that aren't. NOTE: Don't compile th ipw2200 driver into the kernel, as it wont' be able to load the firmware (the driver will get initialized, before root is mounted)

[edit] Headline text

Link title<math>Insert formula here</math>=== Bluetooth ===

[edit] Audio

[edit] AC'97 (Driver)

  • Add AC97 drivers to the kernel
  • emerge alsa-headers, alsa-lib and alsa-utils
  • run alsaconf to setup modules.d
  • rc-update add alsasound boot


Linux Kernel Configuration: AC97 Setup
Device Drivers  --->
  Sound  --->
  <*> Sound Card Support
      Advanced Linux Sound Architecture  --->
      <M> Advanced Linux Sound Architecture
      <M>   Sequencer Support
      < >     Sequencer dummy client
      <M>   OSS Mixer API
      <M>   OSS PCM (digital audio) API
      [*]   OSS Sequencer API
      < >   RTC Timer support
      [ ]   Verbose printk
      [ ]   Debug
            Generic devices  --->
            ISA devices  --->
            PCI devices  --->
              <M> ALi M5451 PCI Audio Controller
              <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
            USB devices  --->
            PCMCIA devices  --->

[edit] Interface

[edit] Touch Pad

The touchpad is an Alps GlidePoint, you may follow the instructions from HARDWARE_Synaptics_Touchpad

An alternative is to setup the touch pad as an InputDevice in xorg.conf:

File: /etc/X11/xorg.conf
Section "InputDevice"
 Identifier "Touchpad"
 Driver "mouse"
 Option "Protocol"   "PS/2"
 Option "Device"     "/dev/input/mice"
 Option "Emulate3Buttons"
EndSection


[edit] Special Keys

I have only setup these keys but you should have no problem with the rest:

Volume Up
Volume Down
Mute
Eject
Wireless (Works automatically)

To get the buttons to work follow the wiki article: Howto Use Multimedia Keys

Personal tools