Old:Debian on a HP Compaq NX6110

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


HP Compaq nx6110

Introduzione

Il portatile HP Compaq NX 6110 viene certificato da HP come compatibile al 100% con GNU/Linux. HP distribuisce opzionalmente (almeno ufficialmente, io non ne ho trovati disponibili) questi portatili senza alcun sistema operativo ed ha lavorato con Ubuntu per utilizzare hardware pienamente funzionante anche con GNU/Linux.

Guida segnalata su TuxMobil e Linux On Laptops

Manualistica

HP mette a disposizione per la consultazione il manuale di manutenzione per l' HP Compaq nx6110. Il manuale, di 237 pagine, è molto utile nel caso in cui si voglia conoscere nel minimo dettaglio l' hardware che equipaggia il laptop o si desideri provvedere in proprio ad effettuare riparazioni/aggiornamenti/manutenzione (montaggio/smontaggio) del computer.

Guide specifiche

In questa guida sull'installazione di Debian sul portatile HP Compaq nx 6110 vengono menzionate guide relative a configurazioni particolari (le trovate linkate man mano). Ecco un breve indice:

  1. Cpufreqd: Un demone per il CPU frequency scaling
  2. Old:Debian: software suspend e ibernazione per laptops by keltik
  3. Synaptics touchpad by MaXeR
  4. Intel PRO/Wireless 2200BG by keltik

Hardware

  • Processore: Intel(R) Pentium(R) M processor 1.50GHz
  • Memoria RAM: 512Mb
  • Scheda Video: Intel 915GM
  • Scheda Audio: Intel AC'97 (modem)
  • Scheda Ethernet: Broadcom BCM 4401 100 Base TX
  • Scheda Wireless: Intel PRO/Wireless LAN 2200 BG mini PCI

Output di lspci

Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor 
to DRAM Controller (rev 03)

VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express 
Graphics Controller (rev 03)

Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics 
Controller (rev 03)

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI 
#1 (rev 03)

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI 
#2 (rev 03)

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI 
#3 (rev 03)

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI 
#4 (rev 03)

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI
Controller (rev 03)

PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)

Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) 
AC'97 Audio Controller (rev 03)

Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem 
Controller (rev 03)

ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)

IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE 
Controller (rev 03)

Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)

CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller

FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller

Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)

Configurazione

Il Kernel

Kernel 2.6.21 (aggiornamento)

Ho realizzato un pacchetto Debian del kernel versione 2.6.21 ed uno contenente i relativi headers. Non ho inserito patch o configurazioni particolari: sono abilitati tutti i moduli presenti nel kernel di pari versione preparato da Debian. L'unica differenza sta in un miglior supporto ACPI (abilitati come moduli tutti i governor) e nella configurazione orientata a un computer Desktop (kernel preemption, I/O scheduler, ecc.). I pacchetti possono essere scaricati da questa pagina web e installati tramite dpkg.

Kernel 2.6.16 (aggiornamento)

È disponibile il file di configurazione per kernel della serie 2.6.16 testato con successo sia con sorgenti del ramo ufficiale vanilla che Debian. A differenza del file di configurazione precedente, i moduli per il supporto ACPI a batteria, ventole di raffreddamento, ecc. sono compilati come modulo, ma dovrebbero essere caricati automaticamente durante l'avvio del sistema. In questo file di configurazione ho compilato staticamente il supporto grafico VESA, in questo modo è possibile abilitare risoluzioni superiori a quella standard già durante l'avvio del kernel. Per fare questo è sufficiente aggiungere il parametro vga=771 (o altro) a quelli di avvio del nostro kernel.

Kernel 2.6.12 e 2.6.13

Metto a disposizione degli interessati il file di configurazione per i kernel 2.6.12 e 2.6.13 (dovrebbe funzionare anche con altre versioni comunque). Andate al link, copiate il testo e incollatelo in un file sul vostro PC e quindi spostatelo nella directory dove risiedono i sorgenti del kernel che volete compilare (normalmente /usr/src/linux/) rinominandolo in .config.

  ATTENZIONE
Il kernel è configurato per fornire supporto ai filesystem ext2 e reiserFS (oltre a VFAT, NTFSrw e NCPFS). Se la vostra installazione prevede l'uso di altri filesystem, è necessario abilitarli prima di ricompilare il kernel. Altra peculiarità da notare è la mancanza dei moduli per il PPP anche questi da abilitare se necessari.


Processore, frequency scaling e ACPI

Frequency Scaling

Il kernel così configurato supporta le tecnologie di scaling per la frequenza della CPU. Dato che il supporto è compilato come modulo, è necessario che esso venga caricato prima di poter essere disponibile (modulo speedstep-centrino). Offre inoltre il supporto per il demone cpufreqd. Per installare questo demone è sufficiente:

# apt-get install cpufreqd

Maggiori informazioni possono essere reperite nella mia guida: Cpufreqd: Un demone per il CPU frequency scaling.

Supporto ACPI

È abilitato anche il supporto (modulare) per l'ACPI (battery, button, fan, thermal zone).

Software Suspend

È possibile abilitare la sospensione del sistema tramite Software Suspend, e cioè salvando lo stato del sistema nella partizione di swap oppure in un file. A questo riguardo ho scritto una guida dedicata, dal titolo Old:Debian: software suspend e ibernazione per laptops.

La sospensione del sistema mentre è attiva una sessione del server X causa il blocco del display: al ritorno dalla sospensione lo schermo apparirà nero e dovremo necessariamente riavviare.

Per ovviare a questo problema dobbiamo scaricare il programma vbetool con il comando:

# apt-get install vbetool

e mettere mano alla nostra configurazione di Xorg e aggiungere alcune direttive:

  • All'interno della sezione "Device", che riguarda la scheda grafica aggiungiamo
            Option          "VBERestore"            "1"
    in modo che la sezione sia qualcosa di simile a:
    Section "Device"
       Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
       Driver          "i810"
       BusID           "PCI:0:2:0"
       Option          "VBERestore"            "1"

EndSection

  • Alla fine del file xorg.conf creiamo questa nuova sezione:
    Section "ServerFlags"
       Option          "BlankTime"     "0"

EndSection

Riavviamo la sessione grafica e tutto funzionerà a dovere.

Server grafico (Xfree86 e Xorg) e accelerazione 3D

Il supporto alla scheda grafica ed all'accelerazione 3D sono compilati nel kernel di cui sopra. Il file xorg.conf che trovate qui sotto rappresenta la configurazione per Xorg e prevede l'abilitazione per il DRI (accelerazione 3D) e l'uso simultaneo del touchpad e del mouse. Il file di configurazione è perfettamente funzionante anche per Xfree86 (è sufficiente rinominarlo).

Qualora non funzioni tutto a dovere seguite i due link sottostanti:

In particolare il secondo link spiega come utilizzare pacchetti experimental che dovrebbero presto comparire nella versione unstable: quindi con il passare del tempo tenderà a divenire superfluo.

Per la configurazione avanzata del touchpad vi rimando all'ottima guida Synaptics touchpad scritta da MaXeR.

# xorg.conf.dpkg-new (Xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf.dpkg-new manual page.
# (Type "man xorg.conf.dpkg-new" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands as root:
#
# cp /etc/X11/xorg.conf.dpkg-new /etc/X11/xorg.conf.dpkg-new.custom
# md5sum /etc/X11/xorg.conf.dpkg-new >/var/lib/xfree86/xorg.conf.dpkg-new.md5sum
# dpkg-reconfigure xserver-xorg

Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "type1"
Load "v4l"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "it"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection

Section "Device"
Identifier "Scheda video generica"
Driver "i810"
BusID "PCI:0:2:0"
EndSection

Section "Monitor"
Identifier "Monitor Generico"
Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Scheda video generica"
Monitor "Monitor Generico"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

Section "DRI"
Mode 0666
EndSection

Scheda Audio e ALSA

La scheda audio funziona perfettamente con ALSA. Tutto quello che dobbiamo fare consiste in:

# apt-get install alsa-base alsa-utils
# alsaconf

Scegliamo la nostra scheda da quelle disponibili ed il gioco è fatto.

Modem

Il modem è uno SmartLink, supportato da GNU/Linux senza eccessivi patemi. Assicuriamoci che il modulo snd_intel8x0m venga caricato dal kernel e procediamo a scaricare il software necessario.

Debian mette a disposizione il pacchetto slmodem, che fornisce le utility e il demone necessari al controllo del modem. Installiamolo con il comando:

# apt-get install sl-modem-daemon

Scheda Ethernet Broadcom BCM 4401

Il supporto alla scheda ethernet è fornito nel kernel. Funziona anche con le immagini del kernel 2.6.8 installate da Debian per default.

Scheda wireless Intel PRO/Wireless LAN 2200 BG mini PCI

Per la configurazione di questa scheda, vi rimando alla guida Intel PRO Wireless 2200BG.

Per abilitare la bella luce blu che segnala il link wireless dobbiamo impostare il parametro "led" per il modulo ipw2200.

Operiamo come segue:

# touch /etc/modprobe.d/ipw2200
# echo "options ipw2200 led=1" > /etc/modprobe.d/ipw2200

Abilitare il reboot

La configurazione standard di Grub, non permette al sistema di riavviarsi. È quindi necessario aggiungere il parametro reboot=b alla direttiva kernel nel nostro file menu.lst.