Instalar Debian SARGE en un portátil

Esta receta trata de como empezar desde cero en la instalación de una debian SARGE y de como configurar correctamente el hardware de nuestro equipo.

1. Instalar Debian SARGE vía DVD

Lo primero es conseguir los dos dvd's. Yo los compré de una revista (no voy a hacer propaganda poruqe no me pagan), pero se pueden conseguir en debian.

Se arranca el pc con el dvd y nos saldrá un pantallazo que pone "Press F1 for help or ENTER to boot: ", pulsamos enter y seguimos las instrucciones. Para instalar un kernel 2.6 donde dice "Press F2 through F10 for details, or ENTER to boot: " ponemos linux26.

En el paso de las particiones es donde hay que tener mas cuidado. Una vez instalado el sistema base, el equipo se reinicia, y nos da la posibilidad de instalar las aplicaciones via dvd, http, ftp o disco local. Elegimos la que mejor se adapte a nuestras necesidades. Después de esto, nos saldrá un pantallazo que nos da la posibilidad de seleccionar los programas que se pueden instalar. Luego se configura el grub y marchando ... ;-)

2. Configurando el hardware

Mi portátil dispone del siguiente hardware:

  • Intel(R) Pentium(R) M processor 1400MHz
  • VGA compatible controller: Intel Corp. 82852/855GM Integrated Graphics Device
  • hda: FUJITSU MHS2040AT D, ATA DISK drive
  • Gestión de energía: APM, ACPI, APIC
  • Batería
  • Puertos USB
  • PCMCIA
  • Tarjeta Ethernet: VIA Technologies, Inc. VT6105 [Rhine-III]
  • Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter
  • Modem: Smart Link 56K AC'97
  • Tarjeta de sonido: Intel 810 + Realtek AC'97 Audio
  • FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394
  • Infrarrojos: Puerto infrarrojos SMC IrCC - Fast Infrared
  • FLASH memory: ENE Technology Inc CB710 Memory Card Reader

Vamos paso a paso configurando cada uno de los componentes.

Controlar la velocidad de la CPU automáticamente

APM está muerto. El futuro es ACPI, y una de las aplicaciones prácticas de ACPI es "Speedstep" (pero solo en los centrino).

Para ello necesitamos un kernel 2.6.X para poder aprovechar los estados "throttling". Se pueden utilizar los demonios powernow o cpudyn. Personalmente he probado los dos y me quedo con el primero.

¿ Que necesitamos ? Lo primero será instalar el demonio encargado de controlar la velocidad del centrino, este es powernowd. Para controlar si realmente funciona el invento, instalamos el applet CPU Frequency Scaling Monitor.

Una vez instalado esto, debemos comprobar si se han cargado los siguientes módulos:

$ lsmod | grep speedstep
  speedstep_centrino      7956  0
  freq_table              4484  1 speedstep_centrino
  processor              22644  2 thermal,speedstep_centrino
  cpufreq_userspace       4700  1

Si es así, debemos fijarnos en el applet y ver si pasamos de 600 MHz (Userspace) a 1400 Mhz (Performance) cuando le damos un poco de caña al procesador.

Configurar la tarjeta gráfica

En mi caso dispongo de una tarjeta integrada Intel Corp. 82852/855GM. A partir del kernel 2.6.10 está disponible el driver "i810" y "drm". Lo único que hay que hacer es cargarlo con la orden modprobe i810. Este driver funciona bajo xfree-86. Si se quiere utilizar Xorg en vez de xfree, lo único que hay que hacer es desinstalar xfree e instalar Xorg. Al hacer esto se cargará el modulo "i915" en vez del "i810", con una mejora bastante sustancial.

Gestión de energía: APM, ACPI, APIC

Como se comentaba anteriormente APM está muerto. ACPI es el futuro. Para tener soporte con ACPI hay que instalar "acpi" y "acpid". Luego, para comprobar que funciona podemos comprobar que esté corriendo el demonio "acpid" o instalar un monitor de carga de bateria.

Otra cosa a tener en cuenta es la de hacer "hibernar" al pc. Esto se consigue compilando el kernel con esta opción y teniendo una swap más del doble que nuestra RAM. Una vez hecho esto se hace:

$ echo 3 > /proc/acpi/sleep

Y el pc hibernará guardando el estado actual. Lo de la swap es importante.

Puertos USB

La instalación por defecto instala "hotplug" y "udev". Si no se han instalado, pues ya sabes "apt-get install ....".

Aqui voy a explicar como configurar un lápiz usb. Editamos el fichero /etc/fstab y añadimos la siguiente línea:

/dev/sda        /mnt/sda        vfat    user,noauto     0       0

Ahora necesitamos crear el direcorio /mnt/sda con los permisos necesarios. Comprobamos que esté el módulo "usb-storage" cargado y nada, se pincha el lápiz y se monta.

Tarjetas PCMCIA

Lo mejor es comprar tarjetas que soporten el driver "orinoco". Sino probar cargando el modulo "yenta-socket".

Tarjeta Ethernet

EL modulo que soporta mi tarjeta es "via_rhine". Aunque con "8139too" y "8139cp" funciona también.

Esta interfaz es la que se suele utilizar cuando se transporta el pc de un sitio a otro, y a lo largo del camino tendremos distintas configuraciones en distintos lugares. En unos tendremos DHCP, mientras en otros habrá una IP fija. Para facilitar el trabajo de cambio de IP's existe "laptop-net".

Con esto podemos crearnos distintos "esquemas" y allí donde se vaya cargar uno u otro dependiendo de las configuraciones. Una vez instalado, se edita el fichero /etc/laptop-net/scheme y se añaden los esquemas. Un ejemplo es:

case "${SCHEME}" in
offline)
    # Setting nothing means to leave the network interface disabled.
    ;;
down)
    # El link esta abajo
    ;;
casa)
    DHCP="no"
    ADDRESS="1.2.3.4"
    NETMASK="255.255.255.0"
    BROADCAST="1.2.0.255"
    NETWORK="1.2.0.0"
    GATEWAY="1.2.3.1"
    NAMESERVERS="62.42.230.24 62.42.63.52"
    ;;
*)
    # Set to "yes" to use DHCP
    DHCP="yes"
    ;;
esac

Yo tengo un esquema para DHCP (por defecto) y otro para mi casa. Para cambiar de esquema se hace:

$ /etc/init.d/laptop-net scheme casa
Changing scheme from down to casa

PRO/Wireless LAN 2100

Para configurarlo utilizo el driver ipw2100. Si tienes instalado "module-assistant" te lo bajas, lo compilas y lo instalas. Una vez echo esto te bajas el firmware de "Sourceforge" firmware y lo descomprimes en /usr/lib/hotplug/firmware/. Cargas el módulo ipw2100 y compruebas con "dmesg" que todo se ha configurado correctamente.

Sino te queda claro mira este documento centrino.

Modem: Smart Link 56K AC'97

Con "module-assistant" te bajas slmodem-source, lo compilas y lo instalas y cargas el modulo "slamr". Una vez echo esto comprueba que este corriendo el demonio en /etc/init.d/sl-modem-daemon.

Tarjeta de sonido: Intel 810 + Realtek AC'97 Audio

Comprueba que esten cargados los módulos:

snd_intel8x0m          19524  2
snd_intel8x0           33664  0
snd_ac97_codec         84856  2 snd_intel8x0m,snd_intel8x0
snd_pcm               101832  5 snd_intel8x0m,snd_intel8x0,snd_ac97_codec
snd_timer              26052  1 snd_pcm
snd                    65156  7 snd_intel8x0m, snd_intel8x0, snd_ac97_codec, snd_pcm, snd_timer
snd_page_alloc         10756  3 snd_intel8x0m,snd_intel8x0,snd_pcm

Sino es así, siempre puedes utilizar ALSA.

FireWire (IEEE 1394)

Comprueba que el kernel lo reconoce:

$ dmesg | grep 1394
ieee1394: Initialized config rom entry `ip1394'
ohci1394: $Rev: 1250 $ Ben Collins
ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[11] MMIO=[fedff800-fedfffff] Max Packet=[2048]
ieee1394: Host added: ID:BUS[0-00:1023] GUID[0040d0010013f9e6]
eth1394: $Rev: 1247 $ Ben Collins
eth1394: eth1: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)

En mi caso lo tengo configurado en la interfaz de red eth1:

eth1      Link encap:UNSPEC  HWaddr 44-44-44-44-44-44-44-44
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Infrarrojos

Lo suyo es instalar "irda-utils" y "ircp" junto con "ircp-tray". Para lo único que utilizo el infrarrojo es para pasar ficheros al móvil, aunque se puede utilizar para controlar los mandos a distancia y demás historias.

Comprueba esto:

irda0     Link encap:IrLAP  HWaddr 00:00:00:00
          UP RUNNING NOARP  MTU:2048  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:8
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

FLASH Memory

He visto en el kernel 2.6.12 que ya hay soporte para tarjetas de memoria SD y MMC. Pero todavía no lo he probado. Espero contar algo más en sucesivas actualizaciones.