Debian Sid en HP Compaq Business Notebook nc8430

Índice

1. Introducción
2. 2. Configuración de los distintos dispositivos
2.1 Wifi
2.2 Tarjeta gráfica ATI
2.3 Sonido
2.4 Bloqueo del sistema
2.5 Touchpad
2.6 Módem
2.7 Lector de huellas dactilares
2.8 Bluetooth
2.9 Otros dispositivos
3. Versiones de los paquetes utilizados


1. Introducción

He instalado Debian Sid en mi portátil HP Compaq Business Notebook nc8430. Aquí explico las dificultades con las que me he encontrado y cómo las he solventado.

Características del portátil:

  • Procesador Intel Core 2 Duo T5600 1.83 GHz
  • Memoria DDR2 SDRAM 1GB (667 MHz) - Ampliada a 2 GB
  • Tarjeta gráfica ATI Mobility Radeon X1600 de 256 MB
  • Sonido: Intel integrado en la placa
  • Disco duro Fujitsu Serial ATA 5400 rpm de 80 GB
  • Wifi Intel Pro/Wireless 3945ABG
  • Pantalla TFT 15,4'' 1280x800 (WXGA)
  • DVD RW TSSTcorp TS-L632D Doble capa con LightScribe

Esta es la salida del comando "lspci -nn":

$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
00:01.0 PCI bridge [0604]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port [8086:27a1] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 01)                
00:1c.0 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 [8086:27d0] (rev 01)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 01)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 [8086:27d6] (rev 01)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 01)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9] (rev 01)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca] (rev 01)
00:1d.3 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb] (rev 01)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc] (rev 01)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e1)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 01)
00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01)
00:1f.2 SATA controller [0106]: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller [8086:27c5] (rev 01)
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc M56P [Radeon Mobility X1600] [1002:71c5]
02:06.0 CardBus bridge [0607]: Texas Instruments PCIxx12 Cardbus Controller [104c:8039]
02:06.1 FireWire (IEEE 1394) [0c00]: Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller [104c:803a]
02:06.2 Mass storage controller [0180]: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) [104c:803b]
02:06.3 SD Host controller [0805]: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller [104c:803c]
02:06.4 Communication controller [0780]: Texas Instruments PCIxx12 GemCore based SmartCard controller [104c:803d]
08:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5753M Gigabit Ethernet PCI Express [14e4:16fd] (rev 21)
10:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)

Y esta la de "lsusb":

$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 062a:0000 Creative Labs Optical mouse
Bus 003 Device 002: ID 08ff:2580 AuthenTec, Inc. AES2501 Fingerprint Sensor
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 03f0:171d Hewlett-Packard Wireless (Bluetooth + WLAN) Interface [Integrated Module]
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Utilizo este Kernel:

$ uname -r
2.6.30-1-686

Realicé la instalación haciendo uso de netinstall de Debian testing y una conexión a Internet mediante cable.

Una vez instalado el Sistema Base, edité la lista de repositorios para que apuntasen a Sid, actualicé e instalé KDE 4.3.0 y los programas que necesitaba.

Después empezaron a aparecer algunos problemas que iré comentando:

2. Configuración de los distintos dispositivos

2.1 Wifi

Para conectarme a Internet mediante Wifi, instalé Wicd y firmware-iwlwifi desde los repositorios. No tengo ningún problema para conectarme usando una IP local fija.

2.2 Tarjeta gráfica ATI

Como ya sabréis, ATI dejó de dar soporte a muchas tarjetas hace unos meses, entre ellas, la mía. Por tanto, me dispuse a instalar los drivers libres.

En un primer momento, ejecuté este comando:

# aptitude install xserver-xorg-video-ati xserver-xorg-video-radeon libgl1-mesa-dri libgl1-mesa-glx

El archivo /etc/X11/xorg.conf no existía, pero lo dejé así y probé a reiniciar la sesión de KDE.

Primer problema... las letras de KDM se veían enormes. Esto ya me sucedió al instalar otras distribuciones basadas en Debian así es que ya conocía la solución: añadir la opción "DDC" "no" en la sección "Monitor" de /etc/X11/xorg.conf.

Abrí una TTY y creé el archivo /etc/X11/xorg.conf con este contenido:

Section "Device"
        Identifier      "Configured Video Device"
        Driver  "ati"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device  "Configured Video Device"
        Monitor "Configured Monitor"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
        Option "DDC" "no"
EndSection

Section "ServerLayout"
        Identifier      "Layout"
        Screen  "Default Screen"
EndSection

Dejé que la automagia hiciese el resto. Reinicié KDM:

# /etc/init.d/kdm restart

Tras hacer esto, las letras se veían con normalidad pero... el rendimiento de la tarjeta gráfica era realmente pobre. Leí el contenido de /var/log/Xorg.0.log. Ví algunos problemas con las fuentes y poco más. Busqué por Internet el texto de algunos errores pero no encontré nada...

El problema con las fuentes se solucionó fácilmente:

# aptitude install xfonts-75dpi xfonts-100dpi xfonts-cyrillic xfonts-scalable

Pero esto no solucionó el bajo rendimiento de la tarjeta gráfica. Probé cambiando el método de aceleración en la sección "Device" de /etc/X11/xorg.conf (por defecto se usaba XAA):

Section "Device"
        Identifier      "Configured Video Device"
        Driver  "ati"
        Option  "AccelMethod" "EXA"
EndSection

Nada, todo seguía igual. Después de dos días de búsqueda encontré la solución: instalar el paquete firmware-linux

# aptitude install firmware-linux

Ahora sí, problema solucionado...

2.3 Sonido

Después de instalar amarok, algunos codecs de audio y vídeo, el paquete phonon-backend-xine, etc. intenté reproducir un archivo de audio y... Silencio.

Instalé algunos paquetes de alsa:

# aptitude install alsa-base alsa-utils

Pruebé a ejecutar "alsaconf":

# alsaconf
bash: alsaconf: command not found

¿Comando no encontrado? Busqué información, y efectivamente, en esta versión de alsa-utils ya no se encuentra alsaconf. Gran problema, porque yo nunca había tenido que "pelearme" con el sonido en GNU/Linux desde hacía muchos años, y no sabía ni por donde empezar...

Afortunadamente encontré un tutorial de shaola en esdebian:
http://www.esdebian.org/wiki/sin-sonido-tarjetas-hdaintel

Me sirvió como punto de arranque, pero necesitaba un poco más de información.

Este comando me aportó un dato importante:

cat /proc/asound/card0/codec#0 | grep Codec
Codec: Analog Devices AD1981

Encontré esta página que informa sobre los posibles valores del campo "model" teniendo en cuenta el valor de "Codec":
http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt

AD1981
======
  basic 3-jack (default)
  hp HP nx6320
  thinkpad Lenovo Thinkpad T60/X60/Z60
  toshiba Toshiba U205

Abro /etc/modprobe.d/alsa-base.conf y añado esta información:

alias snd-card-0 snd-hda-intel
options snd-hda-intel model=hp enable=1 index=0
options snd-hda-intel enable_msi=1

lsmod me confirmó que tenía cargados los módulos necesarios:

$ lsmod | grep snd
snd_hda_codec_si3054     4024  1
snd_hda_codec_analog    53456  1
snd_hda_intel          22192  2
snd_hda_codec          63580  3 snd_hda_codec_si3054,snd_hda_codec_analog,snd_hda_intel
snd_hwdep               6120  1 snd_hda_codec
snd_pcm_oss            32232  0
snd_mixer_oss          12368  1 snd_pcm_oss
snd_pcm                62420  4 snd_hda_codec_si3054,snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_midi            5688  0
snd_rawmidi            18596  1 snd_seq_midi
snd_seq_midi_event      6212  1 snd_seq_midi
snd_seq                42436  2 snd_seq_midi,snd_seq_midi_event
snd_timer              17436  2 snd_pcm,snd_seq
snd_seq_device          6136  3 snd_seq_midi,snd_rawmidi,snd_seq
snd                    49060  16 snd_hda_codec_si3054,snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore               6184  1 snd
snd_page_alloc          8180  2 snd_hda_intel,snd_pcm

Recargué alsa y pruebé de nuevo:

# alsa force-reload
Terminating processes: 3827 5003.
Unloading ALSA sound driver modules: snd-hda-codec-si3054 snd-hda-codec-analog snd-hda-intel snd-hda-codec snd-hwdep snd-pcm-oss snd-mixer-oss snd-pcm snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq snd-timer snd-seq-device snd-page-alloc (failed: modules still loaded: snd-hda-codec-si3054 snd-hda-codec-analog snd-hda-codec snd-hwdep snd-pcm snd-timer snd-page-alloc).
Loading ALSA sound driver modules: snd-hda-codec-si3054 snd-hda-codec-analog snd-hda-intel snd-hda-codec snd-hwdep snd-pcm-oss snd-mixer-oss snd-pcm snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq snd-timer snd-seq-device snd-page-alloc.

Ya tenía sonido, pero sólo se escuchaba por un altavoz. Nada que no se pudiera solucionar con unos ajustes con alsamixer.

2.4 Bloqueo del sistema

Después de solventar estos pequeños contratiempos me centré en el más importante... Después de unas horas de funcionamiento no demasiado exigente, el sistema se bloqueaba completamente: no respondía el ratón, ni el teclado, ni nada.

En un primer momento pensé que el problema podría ser el driver de la tarjeta gráfica, pero no encontré nada raro en los logs.

Después instalé conky para tener monitorizados algunos parámetros importantes como el uso y temperatura de los núcleos del procesador, los procesos con mayor consumo de recursos, el consumo de RAM, etc.

Un día, el sistema se volvió a congelar. Conky estaba a la vista, pero no mostraba datos importantes. Esperé durante un par de minutos y conky se actualizó (resulta que el sistema no estaba completamente "congelado") y ví que el proceso que consumía casi el 100% de la CPU era hald-addon-storage y que la temperatura del procesador era de 72 ºC. Repasé el archivo /var/log/Xorg.0.log.old en el siguiente arranque y ví que había un mensaje que decía algo así como "acpi throttling" o algo parecido (no tengo apuntado el error exacto).

Efectivamente, la temperatura "normal" de los núcleos era de unos 55-56 ºC pero con una carga de trabajo media subía fácilmente a los 65 ºC e incluso había picos que superaban los 70 ºC. Cuando el procesador alcanzaba los 72 ºC, el sistema se congelaba de nuevo...

Para controlar la temperatura de alguna manera, decidí instalar cpufrequtils y cpufreqd:

# aptitude install cpufrequtils cpufreqd

Este tutorial de Gaucho me resultó muy útil:
http://www.esdebian.org/wiki/cpu-scaling-debian

Lo que hice fue utilizar el "governor" "conservative" en lugar de "ondemand". El driver y los módulos necesarios ya estaban cargados:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
acpi-cpufreq

$ lsmod | grep cpu

acpi_cpufreq            7640  0
cpufreq_userspace       2768  0
cpufreq_powersave       1292  0
cpufreq_stats           3520  0
cpufreq_conservative     6256  2
processor              34504  3 acpi_cpufreq

En el archivo /etc/init.d/cpufrequtils utilicé estos datos:

ENABLE="true"
GOVERNOR="conservative"
MAX_SPEED="1833000"
MIN_SPEED="1000000"

Después de este cambio en el governor, estos son los datos que me devuelve "cpufreq-info":

$ cpufreq-info
cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006                                                                                                  
Report errors and bugs to cpufreq@vger.kernel.org, please.                                                                                                      
analyzing CPU 0:                                                                                                                                                
  driver: acpi-cpufreq                                                                                                                                          
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 1000 MHz - 1.83 GHz
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, conservative, ondemand, performance
  current policy: frequency should be within 1000 MHz and 1.83 GHz.
                  The governor "conservative" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz.
  cpufreq stats: 1.83 GHz:0,82%, 1.33 GHz:3,65%, 1000 MHz:95,52%  (927)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 1000 MHz - 1.83 GHz
  available frequency steps: 1.83 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, conservative, ondemand, performance
  current policy: frequency should be within 1000 MHz and 1.83 GHz.
                  The governor "conservative" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz.
  cpufreq stats: 1.83 GHz:0,41%, 1.33 GHz:1,84%, 1000 MHz:97,75%  (571)

En el archivo /etc/cpufreqd.conf edité las características de los perfiles y cuándo quiero que se use cada uno. Cuando el ordenador está conectado a la corriente eléctrica o cuando está con la batería bastante cargada, uso el perfil "Conservative High":

[Profile]
name=Conservative High
minfreq=33%
maxfreq=100%
policy=conservative
[/Profile]

[Rule]
name=AC Rule
ac=on
profile=Conservative High
[/Rule]

[Rule]
name=AC Off - High Power
ac=off
battery_interval=70-100
profile=Conservative High
[/Rule]

Después de estos cambios, la temperatura del procesador después de algo más de 1 hora de funcionamiento está sobre los 56-58 ºC y aún no he visto que alcance una temperatura superior a 65 ºC. Creo que este problema no está solucionado completamente, pero por lo menos he logrado controlarlo temporalmente.

2.5 Touchpad

Después de instalar el paquete xserver-xorg-input-synaptics< el touchpad funcionaba, pero no tenía scroll vertical ni funcionaba el "tap"; es decir, el doble click dando dos golpecitos sobre el touchpad. Lo solucioné editando de nuevo /etc/X11/xorg.conf:

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option  "VertEdgeScroll" "true"
Option  "TapButton1" "1"
Option  "TapButton2" "2"
Option  "TapButton3" "3"
Option "SHMConfig" "true"
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"
EndSection

2.6 Módem

El módem no lo utilizo nunca, pero como nunca se sabe cuando va a hacer falta, lo he configurado. Simplemente hay que instalar dos paquetes y sus dependencias:

# aptitude install sl-modem-daemon sl-modem-source

Yo he dejado que DKMS construya el módulo necesario.

2.7 Lector de huellas dactilares

El lector de huellas dactilares funciona gracias al trabajo del proyecto fprint.

Aquí hay una lista de los dispositivos soportados:
http://www.reactivated.net/fprint/wiki/Supported_devices

Y aquí está la lista de los NO soportados:
http://www.reactivated.net/fprint/wiki/Unsupported_devices

Los paquetes necesarios para utilizar este lector, están en la rama experimental de debian:
libpam-fprint
fprint-demo
libfprint0

Después, de instalar los paquetes con dpkg ejecuté la interfaz gráfica para comenzar a introducir las huellas dactilares:

# fprint_demo

Para poder autentificarse en el sistema con las huellas, hay que modificar el archivo /etc/pam.d/common-auth:

# kate /etc/pam.d/common-auth

Y sustituir su contenido por:

auth sufficient pam_fprint.so
auth required pam_unix.so nullok_secure

El reconocimiento de huellas no es muy bueno... Tengo que pasar el dedo varias veces hasta que la reconoce. Con estas líneas que se han añadido a /etc/pam.d/common-auth se configura el sistema para que acepte una huella como contraseña, pero no se deshabilita la contraseña escrita habitual. De esta forma, si no reconoce la huella, se puede seguir usando el sistema con la contraseña normal.

Más información aquí:
http://www.kubuntu-es.org/wiki/seguridad/como-usar-lector-huellas-dactilares-entrar-sistema

2.8 Bluetooth

Para hacer uso de este dispositivo instalé kdebluetooth. Funciona perfectamente.

2.9 Otros dispositivos

El resto de dispositivos:

  • Lector de tarjetas
  • Teclas multimedia
  • etc.

funcionan correctamente tras la instalación, sin tener que hacer nada especial para conseguirlo.

3. Versiones de los paquetes utilizados

Para finalizar, dejo la versión de algunos de los paquetes que he utilizado y la fecha de la última edición de este documento:

  • alsa-base 1.0.20+dfsg-1
  • alsa-utils 1.0.20-2
  • cpufreqd 2.3.3-4
  • cpufrequtils 005-1
  • firmware-linux 0.17
  • firmware-iwlwifi 0.17
  • fprint-demo 20080202-3
  • kdebluetooth 1.0~beta8-6+b1
  • libfprint0 20081125git-2
  • libpam-fprint 0.2-3
  • libgl1-mesa-glx 7.5-3
  • libgl1-mesa-dri 7.5-3
  • sl-modem-daemon 2.9.11~20090222-1
  • sl-modem-source 2.9.11~20090222-1
  • xserver-xorg-input-synaptics 1.1.2-1
  • xserver-xorg-video-ati 1:6.12.2-3
  • xserver-xorg-video-radeon 1:6.12.2-3

17 de agosto de 2009