10.2 Configuración del hardware.

Imagen de ElSanto

Como paso previo a cualquiera de los dos modos de funcionamiento, es requisito indispensable que el núcleo reconozca nuestra tarjeta RDSI y nos deje usarla. De esto se encargan varios componentes del núcleo que será necesario compilar. Para ello, recomiendo usar un núcleo de linux igual o posterior al 2.0.36. De esta forma el driver de HiSax más reciente ya viene incorporado en el núcleo y no hay que conseguirlo aparte y parchear el mismo.

Pasos a seguir para la compilación del soporte de la tarjeta en el núcleo

Una vez que dispongamos de las fuentes del núcleo tenemos que realizar las siguiente operaciones:


  • Compilar el núcleo de Linux que hemos obtenido en el punto anterior (puede ver las intrucciones necesarias para compilarlo en /usr/src/linux/README una vez que lo haya descomprimido en /usr/src).

    Nota:En el núcleo, para referirse a RDSI se utilizan las siglas ISDN (Integrated Services Digital Network).


  • A la hora de especificar las características que queremos incluir en
    el núcleo, debemos seleccionar por lo menos las siguientes (los nombres que aparecen en la lista corresponden a las etiquetas mostradas al ejecutar
    make config con un núcleo de la serie 2.0.x, los comentarios del autor aparecen entre paréntesis).
       CONFIG_EXPERIMENTAL=y 
       (Necesario para que nos pregunte todas las opciones) 
    
       CONFIG_MODULES=y 
       (El driver HiSax es obligatorio usarlo como módulo, así que...) 
    
       CONFIG_NET=y 
       (Para que podamos usar servicios de red) 
    
       CONFIG_SYSVIPC=y 
       (Necesario para usar kerneld) 
    
       CONFIG_KERNELD=y 
       (Kerneld se encarga de cargar los módulos automáticamente...) 
    
       CONFIG_INET=y 
       (Soporte para TCP/IP)
     
       CONFIG_NETDEVICES=y 
       (Dipositivos de red) 
    
       CONFIG_PPP=m 
       (Soporte para PPP, yo prefiero cargarlo como módulo, pero puede 
       ser compilado en estático respondiento "Y" en vez de "M"). 
    
       CONFIG_ISDN=m 
       (Soporte para RDSI en módulo) 
    
       CONFIG_ISDN_PPP=y 
       (OPCIONAL: compilar si vamos a usar PPP sincrono, 
       p.ej. con Infovia+) 
    
       CONFIG_ISDN_DRV_HISAX=m 
       (Soporte para el driver HiSax) 
       
       CONFIG_HISAX_EURO=y 
       (Importante, usamos protocolo Euro-DSS1 o Euro-ISDN) 
    
       CONFIG_HISAX_ELSA=y 
       (Soporte para la Elsa QuickStep 1000)
     
       CONFIG_PROC_FS=y 
       (Para diagnósticos e informacion del sistema en general) 
    


  • Una vez se han indicado las opciones imprescindibles (más el resto de ellas necesarias para el sistema de cada uno), compilamos el núcleo y hacemos los pasos necesarios para poder arrancar con el núcleo recién compilado.

  • Ahora podemos arrancar con el nuevo núcleo. Hay que reinicializar
    la máquina para que los cambios surjan efecto. Todo debería ir como antes (si hemos compilado todo lo que teníamos antes más el soporte para PPP y RDSI).

  • Podemos usar el comando dmesg para ver los mensajes de arranque
    del núcleo. No debería haber nada raro (ya que el soporte para RDSI se carga como módulo cuando es necesario y todavía no hemos intentado usarlo).


Pasos necesarios para la configuración de la tarjeta


  • Si la tarjeta no es Plug& Play, sera necesario editar el fichero
    /etc/lilo.conf (si usted usa lilo) para indicarle al núcleo los valores de irq, e/s y otros detalles. Vea los ficheros de /usr/src/linux/Documentation/isdn/ para los detalles concretos
    de cada tarjeta.

  • Si la tarjeta RDSI es Plug& Play (caso de la Elsa QuickStep1000) es necesario configurar el hardware antes de poder usarla. Para ello necesitamos la ayuda de dos herramientas: pnpdump e isapnp.
    Los pasos a seguir son:

    Ejecutar: pnpdump> /tmp/isapnp.conf

    Esto creará un fichero con un contenido similar al siguiente
    (suponiendo que ésta sea la única tarjeta Plug& Play del sistema; si hubiera otras el fichero contendría más líneas). Hay que editar el fichero obtenido eliminando los comentarios de las líneas con la configuración deseada, para obtener algo similar a lo que aparece aquí. Para más detalles, consulte la documentación de isapnp y pnpdump.

       # Trying port address 0203
       # Board 1 has serial identifier 2a 00 00 00 00 33 01 93 15
       #(DEBUG)
       (READPORT 0x0203)
       (ISOLATE)
       (IDENTIFY *)
    
       # Card 1: (serial identifier 2a 00 00 00 00 33 01 93 15)
       # ELS0133 Serial No 0 [checksum 2a]
       # Version 1.0, Vendor version 0.0
       # ANSI string -->ELSA QuickStep 1000<--
       #
       (CONFIGURE ELS0133/0 (LD 0
       (IO 0 (BASE 0x0160))     <--- Indicar aquí la dirección de E/S.
       (INT 0 (IRQ 15 (MODE +E))) <--- Indicar aquí la IRQ a usar
       (ACT Y)
       ))
       # End tag... Checksum 0x00 (OK)
    

    Ejecutar: isapnp /tmp/isapnp.conf

    Esto configurará la tarjeta Plug and Play.



  • Si no ha habido ningún error, ahora puede copiar el fichero
    /tmp/isapnp.conf a /etc/isapnp.conf. Si ha instalado correctamente las pnptools las próximas veces que arranque el sistema, la configuración de la(s) tarjeta(s) PNP será automática.

  • A la hora de elegir las direcciones de E/S e IRQ a usar, puede ver cuales están ya ocupadas haciendo:
       cat /proc/ioports
       cat /proc/interrupts 
    


  • Ya tenemos la mitad del camino hecho. Tenemos la tarjeta lista
    para ser usada y tenemos compilado el soporte para RDSI en el núcleo.
    Ahora sólo falta unir las dos cosas. Para ello vamos a indicar al núcleo que queremos usar el driver HiSax. Si al cargar el módulo éste detecta la tarjeta ya tenemos la batalla casi ganada. Sino, habrá que repasar los puntos anteriores para ver si hemos compilado el soporte adecuado o si las direcciones de E/S, IRQ u otras están siendo ya usadas por otros dispositivos.

  • Para cargar el módulo de la tarjeta RDSI en el núcleo hacemos:
       modprobe hisax type=7 io=0x160 irq=15 protocol=2 id=qs1000
    

    Para ver cuáles son los números mágicos a usar en el comando anterior tiene que leer el fichero /usr/src/linux/Documentation/isdn/README.HiSax.
    En concreto, en la línea anterior le indicamos que queremos usar una tarjeta Elsa QuickStep 1000 (type=7), cuya dirección de E/S es la 0x160 (la misma que en el fichero /etc/isapnp.conf), que la interrupción a usar es la 15 (como se indica en /etc/isapnp.conf) y que el tipo de protocolo a usar es EURO-DSS1, que es el usado en España. El último valor es sólo un identificativo asignado a esta tarjeta (ya que existe la posibilidad de usar varias simultáneamente).


  • Si nos dice que el driver ha sido cargado y la tarjeta detectada, ¡ya está casi todo listo! (si no apareciera nada en pantalla, puede usar el comando dmesg para ver los mensajes del núcleo)

  • Si le parece demasiado pesado tener que teclear todo esto cada vez que
    quiera usar la tarjeta RDSI, tiene razón. Lo que puede hacer es añadir las siguientes líneas al fichero /etc/conf.modules:
       # 01.02.1999 Ignacio Arenaza. Añada las siguientes líneas para que 
       # el módulo de la tarjeta RDSI se cargue automáticamente bajo demanda.
       alias char-major-43 hisax
       alias char-major-45 isdn
       options hisax type=7 io=0x160 irq=15 protocol=2 id=qs1000
    

    Por supuesto debe cambiar los parámetros type, io, irq, protocol e id
    para que se ajusten a su configuración.

    Además, si quiere que el módulo se cargue en el núcleo de forma automática, deberá compilar el soporte de kerneld en el núcleo y editar el fichero /etc/modules
    e incluir la palabra auto justo despues de las líneas de comentarios
    (en caso de que esté usando Debian GNU/Linux).