Instalación de Debian Woody en una Compaq Presario 701LA

Esta es una barata opción de Compaq en el mundo de las laptops. Sus principales inconvenientes son la falta de puerto serial y de infrarrojo. Existen algunas páginas sobre la instalación, pero no son específicas de Debian ni están en español. Muchos archivos incluidos en este sitio tienen la extensión txt por requisitos del servidor donde están alojados. Puede perfectamente ser retirada. Como referencia:

 Linux on the Presario 711
 Linux on the Compaq Presario 700 EA
 

Características de la Presario 701LA

Según los mensajes de inicio del kernel:

BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009e800 (usable)
 BIOS-e820: 000000000009e800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000c0000 - 00000000000cc000 (reserved)
 BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000000eef0000 (usable)
 BIOS-e820: 000000000eef0000 - 000000000eeff000 (ACPI data)
 BIOS-e820: 000000000eeff000 - 000000000ef00000 (ACPI NVS)
 BIOS-e820: 000000000ef00000 - 000000000f000000 (usable)
 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
ACPI: have wakeup address 0xc0001000
On node 0 totalpages: 61440
zone(0): 4096 pages.
zone(1): 57344 pages.
zone(2): 0 pages.
ACPI: RSDP (v000 PTLTD                      ) @ 0x000f6dc0
ACPI: RSDT (v001 PTLTD    RSDT   01540.00000) @ 0x0eefb63b
ACPI: FADT (v001 COMPAQ  EAGLES  01540.00000) @ 0x0eefeeb6
ACPI: SSDT (v001 PTLTD  POWERNOW 01540.00000) @ 0x0eefef2a
Detected 946.743 MHz processor.
Calibrating delay loop... 1887.43 BogoMIPS
Memory: 239056k/245760k available (1516k kernel code, 6248k reserved, 427k data, 200k init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: Before vendor init, caps: 0383f9ff c1c7f9ff 00000000, vendor = 2
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 64K (64 bytes/line)
CPU: After vendor init, caps: 0383f9ff c1c7f9ff 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU:     After generic, caps: 0383f9ff c1c7f9ff 00000000 00000000
CPU:             Common caps: 0383f9ff c1c7f9ff 00000000 00000000
CPU: AMD Mobile AMD Duron(tm) Processor stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xfd7ae, last bus=1
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c686b (rev 42) IDE UDMA100 controller on pci00:07.1
    ide0: BM-DMA at 0x1840-0x1847, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x1848-0x184f, BIOS settings: hdc:DMA, hdd:pio
hda: FUJITSU MHN2200AT, ATA DISK drive
hdc: TOSHIBA DVD-ROM SD-C2502, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 39070080 sectors (20004 MB) w/2048KiB Cache, CHS=2432/255/63, UDMA(100)
hdc: ATAPI 24X DVD-ROM drive, 128kB Cache, UDMA(33)
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
8139too Fast Ethernet driver 0.9.24
eth0: RealTek RTL8139 Fast Ethernet at 0xcf80b000, 00:02:a5:a1:8d:23, IRQ 11
eth0:  Identified 8139 chip type 'RTL-8139C'
agpgart: Maximum main memory to use for agp memory: 190M
agpgart: Detected Via Apollo Pro KT133 chipset
agpgart: AGP aperture is 64M @ 0xec000000
Via 686a audio driver 1.9.1
ac97_codec: AC97 Audio codec, id: 0x4144:0x5361 (Analog Devices AD1886)
via82cxxx: board #1 at 0x1000, IRQ 5
es1371: version v0.30 time 13:09:49 Jun 21 2002
mice: PS/2 mouse device common for all mice
Yenta IRQ list 0008, PCI irq11
Socket status: 30000006

Primeros pasos

Lo primero fue realizar una instalación básica de Potato. Si es la primera vez que instala Debian sería muy recomendable que diera un vistazo a la  Guía de instalación de Debian .Ya que la Presario 701 viene preinstalada con Windows XP, debe reparticionarse el disco duro antes que todo. Yo lo hice con  Partition Magic , pero supongo que muchos preferirán eliminar la partición completamente. Lo que hice fue reducir el tamaño de la partición a 7 Gb y dejar el resto libre. Para evitar problemas cree una partición temporal al final del disco con una carpeta \Debian en ella.

Descargo desde Windows los archivos drivers.tgz y base2_2.tgz, colocándolos en la carpeta \Debian, y los archivos rescue.bin y root.bin, que grabo con rawrite a los respectivos floppies en modo MSDOS desde otra máquina (como es sabido Windows XP es incapaz de acceder al modo real). Coloco en \Debian\images-1.44\ una copia de rescue.bin.

Por lo general la Presario 701 viene preconfigurada para iniciar primero desde el floppy, si no puede modificarse en el BIOS (que desafortunadamente es el casi inconfigurable Phoenix). Inserto el floppy rescue y aparece la pantalla de inicio de instalación Debian. Todos los demás pasos son los habituales de cualquier instalación, escogiendo la opción harddrive para buscar drivers y sistema base. Al momento de reiniciar la máquina y ejecutarse tasksel nos pide que tipo de tareas queremos instalar. En este momento recomiendo no instalar ninguna, pues de cualquier manera deberán volverse a descargar al actualizar a Woody.

Una vez terminada la instalación de Potato, y tener finalmente nuestro login, entramos como root y cambiamos el /etc/apt/source.list para apuntar a nuestro servidor con Woody más cercano. A continuación un apt-get dist-upgrade, cruzamos los dedos, y si todo sale bien tenemos un Woody básico instalado.

A continuación instalamos nuestros paquetes favoritos smile y nos preparamos para hacer funcionar nuestro hardware.
 

Kernel

Inicialmente instale el kernel 2.2.19 que funcionó sin mayores problemas. Como referencia incluyo mi archivo  config al que solo debe removerse el .txt final. Posteriormente actualicé a la versión 2.4.18 que me permitió utilizar ACPI y Software Suspend. Mi archivo config para 2.4.18 está aquí también con .txt sobrante. Entre los puntos clave está que por problemas en la implementación PCI la Compaq se traba al arranque si está activada la opción del APIC local. Reportan que también se traba cuando se utiliza optimización para Athlon/Duron, excepto en el kernel 2.4.18 y probablemente posteriores, y que si uno vé la línea

Disabling VIA memory write queue: [55] 3c->1c

quiere decir que se activó el workaround. Como en cualquier caso usé el kernel 2.4.18 no me preocupé por esto, pero aquello del APIC local fue un verdadero dolor de cabeza triste.
 

Notas sobre el Hardware

PCMCIA

Funcionan bien las tarjetas de 16bits. Deben activarse las opciones "Support for hot-pluggable devices", "PCMCIA/CardBus support" y "CardBus support". En el config suministrado existe soporte para un puerto serial y una tarjeta 3com a través de PCMCIA ya que poseo una tarjetita que provee ambos (3com EtherLink III, que por cierto funciona perfecto smile). No tuve que hacer ningún cambio especial para /etc/pcmcia, salvo configurar network.opts (con datos específicos de mi red), y agregarle un IF_PORT="10baseT". El modem funcionó a la primera.
 

ACPI

Mi pobre Compaq no soporta APM triste, así que al utilizar el kernel 2.2.19 notaba que el ventilador permanecía encendido y se calentaba excesivamente la computadora, casi al grado de quemar al contacto de las salidas de aire. Fue la principal razón de cambiar al kernel 2.4.18.

Utilizando la versión 20020517 de ACPI (descargable en el sitio principal  http://sourceforge.net/projects/acpi , o desde mi copia local  acá , pude aplicar el parche para el Software Suspend, pequeña maravilla que imita la suspensión que la computadora debiera hacer por sí sola. Éste parche no lo encontré en la página oficial , sino en éste otro  sitio . He aquí mi copia  local , así como el  parche  para que el AGP no se meta en problemas al suspenderse, la actualización de  kacpid  respectiva (que permite al kernel corregir la pérdida de interrupciones ACPI que de otra forma sucede) y  un útil  script  encontrada en el mismo lugar que prepara el reloj, pasa a terminal, y desactiva el write cache del disco para evitarp problemas en la suspensión. Sólo lo modifiqué un poco para que reactivara el USB al volver de la suspensión, pues note que si no lo hacía mi ratón USB ya no funcionaba. Una vez hecho esto se seleccionan todas las opciones ACPI para el kernel.

Para el que le interese, copio y traduzco de uno de los sitios listados al principio:

"Los estados de suspensión S3 y S4 ocasionan un cuelgue al despertar; de acuerdo a Pavel Machek, se entiendo ya el problema y se está trabajando en ello.  El BIOS de la Presario no anuncia soporte para S1. La Presario realiza el manejo de performancia usando la interface PowerStep de AMD en lugar de la definida por ACPI; más exactamente, las tablas ACPI declaran que el manejo de poder será en el espacio dependiente del sistema (7F)."
 

Disco duro

El disco duro funciona bien. Para tener mejor performancia, escoja las opciones Use PCI DMA by default when available y VIACXXX
chipset support. Yo además utilizo hdparm, ejecutado desde un script en /etc//rc.boot con los parámetros hdparm -c1d1m16 /dev/hda. Esto hace una buena diferencia en la velocidad:
 
 
Sin cambios Cambios con hdparm
 Timing buffer-cache reads 128 MB in  1.28 seconds =100.00 MB/sec 128 MB in  1.30 seconds = 98.46 MB/sec
 Timing buffered disk reads 64 MB in 41.89 seconds =  1.53 MB/sec 64 MB in  4.41 seconds = 14.51 MB/sec

No hice las mediciones en las condiciones "de libro", pero aun así puede verse que la diferencia obtenida es impresionante.
 

USB

Los puertos USB funcionan adecuadamente. Debe escogerse la opción "UHCI support" y las demás que se consideren necesarias. Con mi máquina funcionan adecuadamente mi ratón óptico Microsoft y mis impresoras HP640c y PSC750xi.
 

Tarjeta de red

La tarjeta es una Realtek RTL-8139. Debe escogerse en el kernel la opción "RealTek RTL-8139 PCI Fast Ethernet Adapter support". Funciona bien.
 

Touchpad

Funciona bien como un ratón PS/2. Utilizando XFree 4.x pueden usarse al mismo tiempo un ratón USB y el touchpad. Lo que no funciona es el botón extra de 4 direcciones, pero de todos modos ni lo uso sonrisa.
 

Modem

El modem es un simple winmodem Conexant HSF 56k HSFi. Funciona bajo Debian utilizando los controladores de  Marc Boucher , o directamente con éste paquete  deb  convertido con alien. El único problema que le encuentro es que en ocasiones no se desactivan los módulos adecuadamente al desconectarse, lo que puede llevar a que no pueda uno reconectarse sin reiniciar triste. Si alguien conoce la solución, por favor escríbame.
 

Audio

El audio es en su mayoría soportado por el kernel compilado con los controladores ac97_codec y via82cxxx_audio. Sin embargo, debido a un "bug" en el firmware se necesita un parche para remediar esto. En una de las referencias mencionan que "De acuerdo a  Alberto Ornaghi, la versión 0.9.0rc1 de los controladores ALSA soporta esta máquina sin cambios, por lo que no se necesita un parche". Después de aplicarse el parche debe escogerse la opción  "VIA 82C686 Audio Codec'' para compilar el kernel.

Video

El controlador de video S3 Savage K funciona bien con XFree 4.x. P. Puedo decir que funciona simplemente bien, pues aunque utiliza aceleración y en la gran mayoría de las veces no tiene problemas, algunas se veces traba la máquina, de tal forma que ni siquiera alt-sysreq-X puede rescatarla, cuando se utilizan algunas aplicaciones. Este problema es debido a una implementación completa, y ocasionado por ciertas acciones de 2D. El ejemplo clásico es la demo de Xscreensaver "blaster". Según alguna referencia, se conoce el problema y será corregido en una versión futura de Xfree86 triste. Al menos en 4.1.0-16 se sigue trabando. Otra aplicación que me traba es Xine. Pero las referencias indican que es ocasionado por el uso de la extensión Xvideo. El utilizar la opción -V Xshm debe resolverlo.

Las opciones escogidas al configurar xserver-xfree86 fueron:
 
 
Xserver driver savage
Memory en blanco
Teclado pc105 diseño mx opción +alt(rightaltismeta)
Mouse port /dev/psaux
Mouse PS/2
Emulate 3 buttons Yes
Monitor LCD device Yes
Resolution selection mode Medium
Best video mode 1024x768 @ 60
Video modes 1024x768 800x600 640x480
Default color depth 24

Si esto no es suficiente o hay problemas, puede descargar el archivo XF86Config-4  que utilizo. Debe removerse nuevamente el .txt del final que he tenido que agregar por requerimiento del servidor donde se hospeda. Si alguien encuentra la solución a los "cuelgues", por favor, por favor, escríbame.

Se reporta que los video overlays de los Savage no son particularmente eficientes, y que sólo implementan escala al vecino-más-cercano (lo que ocasiona apariencia en bloques en el video a pantalla completa). Se obtendrían mejores resultados con salida comparable utilizando escalado bilinear por softwarre optimizado (como se implementa en todos los videoplayers actuales) y ya sea Xshm o DGA. No hay soporte para aceleración 3D usando DRI triste.

Esta es traducción literal de la página de Juliusz Chroboczek sobre el uso de controladores alternativos a XFree86 (los parches se encuentran en su página):

"El servidor no acelerado KDrive Xvesa trabaja casi sin problemas en esta máquina; el único problema es el touchpad, que reacciona mal a ser tomado por un Intellimouse.  Si quiere correr KDrive en la presario, deberá aplicar un parche para deshabilitar el soporte Intellimouse en KDrive.  (Note que este es un atajo, no una solución; una solución deberá aparecer en una versión posterior de KDrive.)

Para mi gran sorpresa, el servidor acelerado Xsavage funciona bien (siempre que no trate de usar overlays -- especifique sólo una profundidad en la especificación de pantalla).  Sólo necesita decirle el PCI ID del chip Twister, lo que puede hacer con este parche."

Teclado

El modo consola requiere de un cambio en la configuración, pues Linux no reconoce las teclas del teclado especial de la Presario. Para corregir esto, configuré console-data con qwerty, Latin American. En X fue un poco más difícil, y tuve que crear un miniarchivo xinitrc en mi disco de usuario, con las líneas:

#!/bin/sh
xmodmap - < /home/aumedina/compaq.txt

Y luego un archivo compaq que contiene la definición de cada una de las teclas. A algunas les puse definiciones a mi gusto, así que siéntase libre de cambiarlas a sus propias preferencias. La localización del comando xmodmap también es cuestión de preferencias. Acepto sugerencias sonrisa.

Las teclas especiales de Compaq no funcionan (¿aun?).

Notas finales

Creo que eso es todo. Aunque desafortunadamente esa laptop ya no tiene Linux más sad, aun guardo varias partes de mi sistema en archivos tgz, que tal vez pudieran ayudar si olvidé mencionar algo. Si existe alguna duda, algo que olvide tratar o creen que puedo aclarar mejor algo (o hay algo que podría haber hecho mejor), puede escribirme a  aldomedina@hotpop.com . Por favor mencione "Presario" en el título.

Esta información es provista de buena fé, pero obviamente no asumo ninguna responsabilidad por la veracidad de la misma. Cualquier acción que tome basada en ella será bajo su propio riesgo smile.

1