English Flag Polish Flag WYBIERZ JĘZYK/CHOOSE YOUR LANGUAGE -->

Linux na Dell Latitude D800

Instalacja Linuks'a na notebooku nie jest już dziś takim problemem jak kilka lat temu. Ale nie po to oglądasz tą stronę, przejdźmy więc do konkretów. Konfiguracja sprzętowa i programowa(na której nam zależy, uzyskana z lspci) przedstawia się następująco:

ProcesorIntel Pentium M 1,4GHz
Karta grafikinVidia Corporation NV28 [GeForce4 Ti 4200 Go AGP 8x]
Rozdzielczość1650x1080 (aspekt: 16:10)
Dysk twardyHTS548060M9AT00
Przewodowa karta sieciowaBroadcom Corporation NetXtreme BCM5705M Gigabit Ethernet
Bezprzewodowa karta sieciowaBroadcom Corporation BCM4309 802.11a/b/g (Dell TrueMobile 1450)
Karta dźwiękowaIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
USB 1.1Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller
USB 2.0Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller

Procesor - Intel Pentium M 1,4GHz

cat /proc/cpuinfo mówi:


processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Pentium(R) M processor 1400MHz
stepping        : 5
cpu MHz         : 1398.958
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2
bogomips        : 1396.73



Możemy więc skonfigurować opcję zmiany częstotliwości pracy procesora w locie, poprzez odpowiednie skonfigurowanie jądra:


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


Oraz:


Power management options (ACPI, APM)  --->
 ACPI (Advanced Configuration and Power Interface) Support  --->
  [*] ACPI Support
  [*]   Sleep States
  [*]     /proc/acpi/sleep (deprecated)
  <*>   AC Adapter
  <*>   Battery
  <*>   Button
  <*>   Video
  < >   Generic Hotkey (EXPERIMENTAL)
  <*>   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
  [ ]   Debug Statements
  [*]   Power Management Timer Support 
  <M>   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)
CPU Frequency scaling  --->
 [*] CPU Frequency scaling
  Enable CPUfreq debugging
  <*>   CPU frequency translation statistics
  [ ]     CPU frequency translation statistics details
  Default CPUFreq governor (performance)  --->
  ---   'performance' governor
  <*>   'powersave' governor
  <*>   'userspace' governor for userspace frequency scaling
  <*>   'ondemand' cpufreq policy governor
  <*>   'conservative' cpufreq governor
  ---   CPUFreq processor drivers
  <*>   ACPI Processor P-States driver
  < >   AMD Mobile K6-2/K6-3 PowerNow!
  < >   AMD Mobile Athlon/Duron PowerNow!
  < >   AMD Opteron/Athlon64 PowerNow!
  < >   Cyrix MediaGX/NatSemi Geode Suspend Modulation
  <*>   Intel Enhanced SpeedStep
  [*]     Use ACPI tables to decode valid frequency/voltage pairs
  [*]     Built-in tables for Banias CPUs
  <*>   Intel Speedstep on ICH-M chipsets (ioport interface)
  < >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
  < >   Intel Pentium 4 clock modulation
  < >   nVidia nForce2 FSB changing
  < >   Transmeta LongRun
  < >   VIA Cyrix III Longhaul
  ---   shared options
  [*]   /proc/acpi/processor/../performance interface (deprecated)
  [*]   Relaxed speedstep capability checks


Po zainstalowaniu nowego jądra możemy sprawdzić czy ACPI zostało poprawnie zainstalowane:
rock ~ # dmesg | grep ACPI
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11
ACPI: PCI Interrupt 0000:00:1d.7[D] -> Link [LNKH] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.1[B] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.2[C] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
ACPI wakeup devices:
ACPI: (supports S0 S1 S3 S4 S5)
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:1f.5[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:1f.6[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:02:01.1[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

Pozostaje zainstalowanie demona odpowiedzialnego za obsługę ACPI.
*  sys-power/acpid
      Latest version available: 1.0.4-r3
      Latest version installed: 1.0.4-r3
      Size of files: 22 kB
      Homepage:      http://acpid.sourceforge.net
      Description:   Daemon for Advanced Configuration and Power Interface
      License:       GPL-2
...oraz jego uruchomienie przy starcie.
Katalog /etc/acpi zawiera skrypty które są wykonywane podczas naciśnięcia guzika power, zamknięcia pokrywy etc. Można je edytować samodzielnie lub uzyć skryptów z pakietu:
*  app-laptop/laptop-mode-tools
      Latest version available: 1.27
      Latest version installed: 1.27
      Size of files: 64 kB
      Homepage:      http://www.xs4all.nl/~bsamwel/laptop_mode/tools/
      Description:   Linux kernel laptop_mode user-space utilities
      License:       GPL-2

Dodatkową funkcją jaką otrzymujemy jest grupowanie żądań zapisu na dysk twardy a co za tym idzie możliwość wyłączenia silnika i zaoszczędzenia mocy.
Na koniec, jeśli używamy GNOME, możemy skorzystać z apletu, który albo ustawi częstotliwość procesora:

Gnome Applet - CPU Frequency

albo ustawi tryb zarządzania mocą:

Gnome Applet - CPU Management

Osobiście korzystam na codzień z trybu ondemand, ponieważ rzadziej włącza się stosunkowo głośnie chłodzenie procesora.

Karta grafiki - nVidia Corporation NV28 [GeForce4 Ti 4200 Go AGP 8x]

Obsługa nVidii 4200 Go to:
- włączenie obsługi AGP w jądrze
- moduł jądra nvidia ładowany podczas stratu. W Gentoo należy go umieścić w
/etc/modules.autoload.d/kernel-2.6
- moduł oraz driver dla XFree86 lub Xorg Wystarczy zainstalować dwa pakiety oraz program do ustawień (np: cień kursora myszki):
*  media-video/nvidia-glx
      Latest version available: 1.0.8178
      Latest version installed: 1.0.8178
      Size of files: 21,059 kB
      Homepage:      http://www.nvidia.com/
      Description:   NVIDIA X11 driver and GLX libraries
      License:       NVIDIA

*  media-video/nvidia-kernel
      Latest version available: 1.0.8178-r3
      Latest version installed: 1.0.8178-r3
      Size of files: 21,059 kB
      Homepage:      http://www.nvidia.com/
      Description:   Linux kernel module for the NVIDIA X11 driver
      License:       NVIDIA

*  media-video/nvidia-settings
      Latest version available: 1.0.20051122-r3
      Latest version installed: 1.0.20051122-r3
      Size of files: 1,065 kB
      Homepage:      http://www.nvidia.com/
      Description:   NVIDIA Linux X11 Settings Utility
      License:       GPL-2

Następnie należy odpowiednio skonfigurować XFree86 lub Xorg (tak aby używany był moduł i driver nvidia):
Section "Module"
        Load  "extmod"
        Load  "ddc"
        Load  "dbe"
        Load  "record"
        Load  "xtrap"
        Load  "glx"
        Load  "freetype"
        Load  "type1"
EndSection
Section "Screen"
        Identifier "Screen0"
        Monitor    "Monitor0"
        Device     "GeForce 4200 Go"
        DefaultDepth     16
        SubSection "Display"
                Depth     16
                Modes    "1680x1050" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection
Section "Device"
     Identifier      "GeForce 4200 Go"
        Driver          "nvidia"
        Option          "NoLogo"                "true"
        Option          "RenderAccel"           "true"
        Option          "AllowGLXWithComposite" "true"
        Option          "NvAgp"                 "3"
        Option          "CursorShadow"          "true"
        Option          "backingstore"          "true"
EndSection

Można się jeszcze pokusić o dodanie najnowszych rozszerzeń:
Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
EndSection


1650x1080 (aspekt: 16:10)

Aby obsłużyć taką rozdzielczość w naszym systemie, musimy dodać następujące linie do konfiguracji X:
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        Option       "DPMS"
        HorizSync    31.5 - 100.0
        VertRefresh  30.0 - 90.0
        ModeLine     "1280x800"         83.9 1280 1312 1624 1656 800 816 824 841
        Modeline     "1680x1050"        147.14 1680 1784 1968 2256 1050 1051 1054 1087
        DisplaySize  332 219
EndSection
Niestety nie udało mi się jej osiągnąć na konsoli w VESA mode, w jądrze 2.6.14 nie znalazłem pasującego wzorca, tak więc standardowo używam 1280x800.
Pozostaje jeszcze zmienić konfigurację Mplayera, aby rozpoznawał nasz ekran. Plik:
/etc/mplayer.conf
powinien zawierać:
# Dell D800 LCD
monitoraspect=16:10


Dysk twardy - HTS548060M9AT00

Od dysku chcemy maksymalnej wydajności, a więc odnajdujemy wpisy w dmesg:
ICH4: chipset revision 1
ICH4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xbfa0-0xbfa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xbfa8-0xbfaf, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: HTS548060M9AT00, ATA DISK drive
Zobaczmy co możemy z naszym dyskiem zrobić:
lukasz@gentoo ~ $ sudo hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media
        Model Number:       HTS548060M9AT00
        Serial Number:      MRLB**********
        Firmware Revision:  MGBOA53A
Standards:
        Used: ATA/ATAPI-6 T13 1410D revision 3a
        Supported: 6 5 4 3
Configuration:
        Logical         max     current
        cylinders       16383   65535
        heads           16      1
        sectors/track   63      63
        --
        CHS current addressable sectors:    4128705
        LBA    user addressable sectors:  117210240
        LBA48  user addressable sectors:  117210240
        device size with M = 1024*1024:       57231 MBytes
        device size with M = 1000*1000:       60011 MBytes (60 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        bytes avail on r/w long: 4      Queue depth: 1
        Standby timer values: spec'd by Vendor, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 1
        Advanced power management level: 128 (0x80)
        Recommended acoustic management value: 128, current value: 254
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=240ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    NOP cmd
           *    READ BUFFER cmd
           *    WRITE BUFFER cmd
           *    Host Protected Area feature set
           *    Look-ahead
           *    Write cache
           *    Power Management feature set
                Security Mode feature set
           *    SMART feature set
           *    FLUSH CACHE EXT command
           *    Mandatory FLUSH CACHE command
           *    Device Configuration Overlay feature set
           *    48-bit Address feature set
                Automatic Acoustic Management feature set
                SET MAX security extension
                Address Offset Reserved Area Boot
           *    SET FEATURES subcommand required to spinup after power up
                Power-Up In Standby feature set
           *    Advanced Power Management feature set
           *    General Purpose Logging feature set
           *    SMART self-test
           *    SMART error logging
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
        not     supported: enhanced erase
        44min for SECURITY ERASE UNIT.
HW reset results:
        CBLID- above Vih
        Device num = 0 determined by the jumper
Checksum: correct

Co oznacza, że możemy dodać do /etc/conf.d/hdparm:
hda_args="-d1 -m1 -c1 -X69 -u1"
Oczywiście hdparm musi być zainstalowany i uruchamiany przy starcie. Sprawdzamy zmiany poprzez:
lukasz@gentoo ~ $ sudo hdparm -I /dev/hda

/dev/hda:
 multcount    =  1 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 16383/255/63, sectors = 117210240, start = 0

Przewodowa karta sieciowa - Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet



Przewodowa karta sieciowa zgłasza się w dmesg jako:
eth0: Tigon3 [partno(BCM95705A50) rev 3001 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000BaseT Ethernet 00:0f:1f:xx:xx:xx
eth0: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1] TSOcap[1]
eth0: dma_rwctrl[763f0000] dma_mask[64-bit]

Musimy więc włączyć w konfiguracji jądra:

Device Drivers  --->
 Network device support  --->
  Ethernet (1000 Mbit)  --->
   <*> Broadcom Tigon3 support

Po uruchomieniu możemy sprawdzić łączność:

rock ~ # mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok

Bezprzewodowa karta sieciowa - Broadcom Corporation BCM4309 802.11a/b/g (Dell TrueMobile 1450)


Wraz z jądrem 2.6.17 otrzymaliśmy sterownik dla karty bezprzewodowej: bcm43xx. W konfiguracji jądra należy zaznaczyć:

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
     [M]     Software MAC add-on to the IEEE 802.11 networking stack
     [ ]       Enable full debugging output
Device Drivers --> Network device support --> Wireless LAN drivers (non-hamradio) & Wireless Extensions
     [M]   Broadcom BCM43xx wireless support
     [ ]     Broadcom BCM43xx debugging (RECOMMENDED) 

Z ostatniej opcji - debugging - korzystamy tylko w początkowej fazie testów, loguje zbyt dużo na codzienną pracę. Projekt obsługi powstał dzięki reverse-engineering'owi sterowników dla MS Windows. Z powższą kartą współpracuje bezproblemowo. Po zainstalowaniu jądra czas na:

#Instalacja programu do wyciągnięcia firmware z oryginalnego sterowanika.
rock ~ # emerge bcm43xx-fwcutter
#Jako paramert podajemy plik z firmware z oryginalnych sterowników dostarczonych z kartą.
#W razie problemu pobieramy gotowy plik z łącz podanych w /usr/share/doc/bcm43xx-fwcutter/README.gz
rock ~ # bcm43xx-fwcutter -w /lib/firmware PLIK_Z_FIRMWARE
#Instalujemy moduł:
rock ~ # modprobe bcm43xx
#Sprawdzamy działanie:
rock ~ # dmesg | grep bcm43xx
bcm43xx driver
bcm43xx: Chip ID 0x4306, rev 0x3
bcm43xx: Number of cores: 5
bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled
bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled
bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2
bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
bcm43xx: Radio turned off
bcm43xx: Radio turned off
bcm43xx: PHY connected
bcm43xx: Error: InitVals "bcm43xx_initval06.fw" not available or load failed.
bcm43xx: PHY connected
bcm43xx: Error: InitVals "bcm43xx_initval05.fw" not available or load failed.
bcm43xx: PHY connected
bcm43xx: Radio turned on
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
bcm43xx: Radio turned off
bcm43xx: DMA 0x0200 (RX) max used slots: 1/64
bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
bcm43xx: DMA 0x0220 (TX) max used slots: 0/512
bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
bcm43xx: PHY connected
bcm43xx: Radio turned on
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
rock ~ # iwconfig eth2
eth2      IEEE 802.11b/g  ESSID:off/any  Nickname:"Broadcom 4306"
          Mode:Managed  Frequency=2.447 GHz  Access Point: Invalid
          Bit Rate=11 Mb/s   Tx-Power=15 dBm
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


Teraz możemy już przystąpić do opcjonalnego skonfigurowania WPA supplicanta (działa na domyślnych ustawieniach), oraz cieszyć się siecią bezprzewodową.




Linux on Dell Latitude D800

Nowadays, installing Linux on notebook is not that hard as few years ago. But that's now why you're reading this page, let's see the details. Hardware and software (which we care about, aquired from lspci command):

ProcessorIntel Pentium M 1,4GHz
Video cardnVidia Corporation NV28 [GeForce4 Ti 4200 Go AGP 8x]
Resolution1650x1080 (aspect ratio: 16:10)
Hard DriveHTS548060M9AT00
Wired network cardBroadcom Corporation NetXtreme BCM5705M Gigabit Ethernet
Wireless network cardBroadcom Corporation BCM4309 802.11a/b/g (Dell TrueMobile 1450)
Sound CardIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
USB 1.1Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller
USB 2.0Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller

Procesor - Intel Pentium M 1,4GHz

cat /proc/cpuinfo says:


processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Pentium(R) M processor 1400MHz
stepping        : 5
cpu MHz         : 1398.958
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2
bogomips        : 1396.73



So, on this CPU we can configure the kernel to change frequency on-the-fly:

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

And:

Power management options (ACPI, APM)  --->
 ACPI (Advanced Configuration and Power Interface) Support  --->
  [*] ACPI Support
  [*]   Sleep States
  [*]     /proc/acpi/sleep (deprecated)
  <*>   AC Adapter
  <*>   Battery
  <*>   Button
  <*>   Video
  < >   Generic Hotkey (EXPERIMENTAL)
  <*>   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
  [ ]   Debug Statements
  [*]   Power Management Timer Support 
  <M>   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)
CPU Frequency scaling  --->
 [*] CPU Frequency scaling
  Enable CPUfreq debugging
  <*>   CPU frequency translation statistics
  [ ]     CPU frequency translation statistics details
  Default CPUFreq governor (performance)  --->
  ---   'performance' governor
  <*>   'powersave' governor
  <*>   'userspace' governor for userspace frequency scaling
  <*>   'ondemand' cpufreq policy governor
  <*>   'conservative' cpufreq governor
  ---   CPUFreq processor drivers
  <*>   ACPI Processor P-States driver
  < >   AMD Mobile K6-2/K6-3 PowerNow!
  < >   AMD Mobile Athlon/Duron PowerNow!
  < >   AMD Opteron/Athlon64 PowerNow!
  < >   Cyrix MediaGX/NatSemi Geode Suspend Modulation
  <*>   Intel Enhanced SpeedStep
  [*]     Use ACPI tables to decode valid frequency/voltage pairs
  [*]     Built-in tables for Banias CPUs
  <*>   Intel Speedstep on ICH-M chipsets (ioport interface)
  < >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
  < >   Intel Pentium 4 clock modulation
  < >   nVidia nForce2 FSB changing
  < >   Transmeta LongRun
  < >   VIA Cyrix III Longhaul
  ---   shared options
  [*]   /proc/acpi/processor/../performance interface (deprecated)
  [*]   Relaxed speedstep capability checks


After new kernel is in place, we can check if the ACPI was properly initialized:
rock ~ # dmesg | grep ACPI
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11
ACPI: PCI Interrupt 0000:00:1d.7[D] -> Link [LNKH] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.1[B] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:00:1d.2[C] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
ACPI wakeup devices:
ACPI: (supports S0 S1 S3 S4 S5)
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:1f.5[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:1f.6[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt 0000:02:01.1[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

What's left is ACPI deamon:
*  sys-power/acpid
      Latest version available: 1.0.4-r3
      Latest version installed: 1.0.4-r3
      Size of files: 22 kB
      Homepage:      http://acpid.sourceforge.net
      Description:   Daemon for Advanced Configuration and Power Interface
      License:       GPL-2
...don't forget to add it to startup scripts.
The /etc/acpi folder has some interesting scripts to be executed on events like pressing power button, or closing the lid. You can edit them manually or use ready ones from:
*  app-laptop/laptop-mode-tools
      Latest version available: 1.27
      Latest version installed: 1.27
      Size of files: 64 kB
      Homepage:      http://www.xs4all.nl/~bsamwel/laptop_mode/tools/
      Description:   Linux kernel laptop_mode user-space utilities
      License:       GPL-2

Additionaly you'll get a special kernel module responsible for grouping write to hdd requests, thus saving even more power.
Last but no least is a GNOME applet (if you're GNOME user) which can set the desired CPU frequency:

Gnome Applet - CPU Frequency

or set CPU frequency management mode:

Gnome Applet - CPU Management

I'm using ondemand daily, mainly because the noisy cooler is not kicking in so often.

Graphics - nVidia Corporation NV28 [GeForce4 Ti 4200 Go AGP 8x]

To enable support of nVidii 4200 Go you'll need to:
- turn on AGP support in kernel
- compile nvidia kernel module and enable it during bootup. In Gentoo the place is
/etc/modules.autoload.d/kernel-2.6
- module and driver for XFree86 or Xorg This means installing following packages (also for controlling nVidia settings like mouse cursor):
*  media-video/nvidia-glx
      Latest version available: 1.0.8178
      Latest version installed: 1.0.8178
      Size of files: 21,059 kB
      Homepage:      http://www.nvidia.com/
      Description:   NVIDIA X11 driver and GLX libraries
      License:       NVIDIA

*  media-video/nvidia-kernel
      Latest version available: 1.0.8178-r3
      Latest version installed: 1.0.8178-r3
      Size of files: 21,059 kB
      Homepage:      http://www.nvidia.com/
      Description:   Linux kernel module for the NVIDIA X11 driver
      License:       NVIDIA

*  media-video/nvidia-settings
      Latest version available: 1.0.20051122-r3
      Latest version installed: 1.0.20051122-r3
      Size of files: 1,065 kB
      Homepage:      http://www.nvidia.com/
      Description:   NVIDIA Linux X11 Settings Utility
      License:       GPL-2

Now you need to configure XFree86 or Xorg:
Section "Module"
        Load  "extmod"
        Load  "ddc"
        Load  "dbe"
        Load  "record"
        Load  "xtrap"
        Load  "glx"
        Load  "freetype"
        Load  "type1"
EndSection
Section "Screen"
        Identifier "Screen0"
        Monitor    "Monitor0"
        Device     "GeForce 4200 Go"
        DefaultDepth     16
        SubSection "Display"
                Depth     16
                Modes    "1680x1050" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection
Section "Device"
     Identifier      "GeForce 4200 Go"
        Driver          "nvidia"
        Option          "NoLogo"                "true"
        Option          "RenderAccel"           "true"
        Option          "AllowGLXWithComposite" "true"
        Option          "NvAgp"                 "3"
        Option          "CursorShadow"          "true"
        Option          "backingstore"          "true"
EndSection

You can also enable latest extensions:
Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
EndSection


1650x1080 (aspect ratio: 16:10)

Such resolution requires additional lines in X confoguration:
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        Option       "DPMS"
        HorizSync    31.5 - 100.0
        VertRefresh  30.0 - 90.0
        ModeLine     "1280x800"         83.9 1280 1312 1624 1656 800 816 824 841
        Modeline     "1680x1050"        147.14 1680 1784 1968 2256 1050 1051 1054 1087
        DisplaySize  332 219
EndSection
Sadly I was unable to reach same resolution on console (2.6.14 had no modeline for it), thus I'm using 1280x800.
What's left is the Mplayer configuration. File:
/etc/mplayer.conf
should include:
# Dell D800 LCD
monitoraspect=16:10


Hard drive - HTS548060M9AT00

One thing we need here is performance. Lets check dmesg output:
ICH4: chipset revision 1
ICH4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xbfa0-0xbfa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xbfa8-0xbfaf, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: HTS548060M9AT00, ATA DISK drive
Let's find out what we can do here:
lukasz@gentoo ~ $ sudo hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media
        Model Number:       HTS548060M9AT00
        Serial Number:      MRLB**********
        Firmware Revision:  MGBOA53A
Standards:
        Used: ATA/ATAPI-6 T13 1410D revision 3a
        Supported: 6 5 4 3
Configuration:
        Logical         max     current
        cylinders       16383   65535
        heads           16      1
        sectors/track   63      63
        --
        CHS current addressable sectors:    4128705
        LBA    user addressable sectors:  117210240
        LBA48  user addressable sectors:  117210240
        device size with M = 1024*1024:       57231 MBytes
        device size with M = 1000*1000:       60011 MBytes (60 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        bytes avail on r/w long: 4      Queue depth: 1
        Standby timer values: spec'd by Vendor, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 1
        Advanced power management level: 128 (0x80)
        Recommended acoustic management value: 128, current value: 254
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=240ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    NOP cmd
           *    READ BUFFER cmd
           *    WRITE BUFFER cmd
           *    Host Protected Area feature set
           *    Look-ahead
           *    Write cache
           *    Power Management feature set
                Security Mode feature set
           *    SMART feature set
           *    FLUSH CACHE EXT command
           *    Mandatory FLUSH CACHE command
           *    Device Configuration Overlay feature set
           *    48-bit Address feature set
                Automatic Acoustic Management feature set
                SET MAX security extension
                Address Offset Reserved Area Boot
           *    SET FEATURES subcommand required to spinup after power up
                Power-Up In Standby feature set
           *    Advanced Power Management feature set
           *    General Purpose Logging feature set
           *    SMART self-test
           *    SMART error logging
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
        not     supported: enhanced erase
        44min for SECURITY ERASE UNIT.
HW reset results:
        CBLID- above Vih
        Device num = 0 determined by the jumper
Checksum: correct

This means that we can add to /etc/conf.d/hdparm:
hda_args="-d1 -m1 -c1 -X69 -u1"
Of course hdparm has to be installed and executed during startup. Let's check if our settings are enabled:
lukasz@gentoo ~ $ sudo hdparm -I /dev/hda

/dev/hda:
 multcount    =  1 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 16383/255/63, sectors = 117210240, start = 0

Fixed wired network card - Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet



Wired NIC will be visible in dmesg as:

eth0: Tigon3 [partno(BCM95705A50) rev 3001 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000BaseT Ethernet 00:0f:1f:xx:xx:xx
eth0: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1] TSOcap[1]
eth0: dma_rwctrl[763f0000] dma_mask[64-bit]

We need to find and enable it in kernel configuration:

Device Drivers  --->
 Network device support  --->
  Ethernet (1000 Mbit)  --->
   <*> Broadcom Tigon3 support

Enabled, we can check the status with:

rock ~ # mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok

Wireless network card - Broadcom Corporation BCM4309 802.11a/b/g (Dell TrueMobile 1450)


Kernel 2.6.17 introduced new driver: bcm43xx. Let's configure the kernel anew:

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
     [M]     Software MAC add-on to the IEEE 802.11 networking stack
     [ ]       Enable full debugging output

Device Drivers --> Network device support --> Wireless LAN drivers (non-hamradio) & Wireless Extensions
     [M]   Broadcom BCM43xx wireless support
     [ ]     Broadcom BCM43xx debugging (RECOMMENDED) 

The last option - debugging - should be used only during initial testing it's too much verbose for normal operation. The project based on reverse-engineering of original drivers for MS Windows. With this current card drivers works perfectly. After booting new kernel you need to:

#Install program to extract firmware from driver
rock ~ # emerge bcm43xx-fwcutter
#The parameter should be the filename from MS Windows drivers.
#If you need help with that particular file, consult /usr/share/doc/bcm43xx-fwcutter/README.gz
rock ~ # bcm43xx-fwcutter -w /lib/firmware FIRMWARE_FILE
#Install the module:
rock ~ # modprobe bcm43xx
#Check the output from dmesg:
rock ~ # dmesg | grep bcm43xx
bcm43xx driver
bcm43xx: Chip ID 0x4306, rev 0x3
bcm43xx: Number of cores: 5
bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled
bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled
bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2
bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
bcm43xx: Radio turned off
bcm43xx: Radio turned off
bcm43xx: PHY connected
bcm43xx: Error: InitVals "bcm43xx_initval06.fw" not available or load failed.
bcm43xx: PHY connected
bcm43xx: Error: InitVals "bcm43xx_initval05.fw" not available or load failed.
bcm43xx: PHY connected
bcm43xx: Radio turned on
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
bcm43xx: Radio turned off
bcm43xx: DMA 0x0200 (RX) max used slots: 1/64
bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
bcm43xx: DMA 0x0220 (TX) max used slots: 0/512
bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
bcm43xx: PHY connected
bcm43xx: Radio turned on
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
bcm43xx: set security called
bcm43xx:    .level = 0
bcm43xx:    .enabled = 0
bcm43xx:    .encrypt = 0
rock ~ # iwconfig eth2
eth2      IEEE 802.11b/g  ESSID:off/any  Nickname:"Broadcom 4306"
          Mode:Managed  Frequency=2.447 GHz  Access Point: Invalid
          Bit Rate=11 Mb/s   Tx-Power=15 dBm
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


Now, you can optionally instal WPA supplicant (works with default values), sit back and enjoy the new wireless network.