(( Linux ISDN HOWTO ))
Comment configurer l'accès Numéris à Internet avec GNU/Linux
Documentation obsolète sur la configuration du sous-système (RNIS|ISDN) des noyaux LINUX de la série 2.4.xx
Consultez les documents du site [inetdoc.LINUX] pour obtenir des informations à jour.

précédent suivant

débutsuivant Sources du noyau Linux

Pour faire simple, nous allons nous restreindre aux sources en version tarball. Toutes les distributions fournissent de multiples paquetages pour une même version de noyau et je n'ai jamais pris le temps de m'y intéresser.

Il existe de nombreux sites de téléchargement. En voici 2 exemples :

En prenant l'exemple du noyau stable 2.4.10, recherchez le fichier linux-2.4.10.tar.gz.


débutsuivant Répertoires des sources

Etant connecté root ou su, voici les commandes de création des répertoires sources :

  • Les sources du noyau :
LinuxBox# cd /usr/src
LinuxBox# rm linux
LinuxBox# tar xvzf linux-2.x.x.tar.gz
LinuxBox# mv linux linux-2.x.x
LinuxBox# ln -s linux-2.x.x linux

On dispose ainsi d'une arborescence de travail permettant d'utiliser plusieurs versions de noyaux Linux sur la même machine.


débutsuivant Sources ISDN4Linux

Cette partie est réservée aux initiés qui aiment le danger ;)). Il est cependant parfois nécessaire d'utiliser les sources de développement du groupe ISDN4Linux.

  • Les sources de la partie isdn du noyau (extrait de la FAQ ISDN4Linux) :
LinuxBox$ mkdir ~/cvs; cd ~/cvs
LinuxBox$ cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev login

Le mot de passe lors de la connexion est readonly.

LinuxBox$ cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev checkout isdn

Il faut ensuite recopier cette arborescence dans le répertoire source du noyau.

  • Les sources du noyau de développement :
LinuxBox# cd /usr/src
LinuxBox# rm linux
LinuxBox# tar xvzf linux-2.x.x.tar.gz
LinuxBox# mv linux linux-2.x.x-dev
LinuxBox# ln -s linux-2.x.x-dev linux
LinuxBox# cd linux
LinuxBox# cp -r /home/<user>/cvs/isdn/drivers/isdn/* drivers/isdn
LinuxBox# cp -r /home/<user>/cvs/isdn/Documentation/isdn/* Documentation/isdn/
LinuxBox# cp -r /home/<user>/cvs/isdn/include/linux/* include/linux/

  • Spécifier une version de spécifique de noyau :

Editer la variable EXTRAVERSION =-dev dans le fichier Makefile situé dans le répertoire racine des sources du noyau : /usr/src/linux.

  • Configurer le noyau avec les options de développement :
  Code maturity level options -->
      Prompt for development and/or incomplete code/drivers

A partir de cette étape, vous pouvez suivre le processus normal de compilation du noyau.


débutsuivant Configuration du noyau
  • Pour utiliser le mode graphique X11 (c'est le mode le plus pratique !), taper :
LinuxBox:/home/phil# cd /usr/src/linux
LinuxBox:/home/phil# make xconfig

  • Pour utiliser le mode menu ncurses (il sera nécessaire pour les outils RNIS/ISDN isdn4k-utils) :
LinuxBox:/home/phil# cd /usr/src/linux
LinuxBox:/home/phil# make menuconfig

Voici ce que doit contenir la fenêtre de configuration de la partie ISDN subsystem.

(( ISDN subsystem ))

Les options retenues :

  • ISDN support pour activer le sous-système RNIS/ISDN.
  • Support synchronous PPP pour utiliser la transmission synchrone sur la ligne RNIS.
  • Use VJ-compression with synchronous PPP pour utiliser la compression des en-têtes TCP (algorithme de Van Jacobson).
  • Support generic MP (RFC1717) pour utiliser la connexion à 128Kbps.
  • Support BSD compression (module only) pour utiliser la compression BSD.

(( Support for Gazel cards ))

Les options retenues :

  • HiSax SiemensChipSet driver support pour activer le module HiSax.
  • HiSax Support for EURO/DSS1 pour choisir le protocole communication Européen sur le canal D.
  • Aucune autre option n'est utilisable en France.

(( Support for Gazel cards ))

Les options retenues :

  • Gazel cards pour utiliser les cartes Gazel ISA R647/648, R742/743 et PCI R753.
  • HFC PCI-Bus cards pour utiliser le modèle R841.

Les autres fenêtres de configuration dépendent du matériel de votre machine.


débutsuivant Compilation noyau & modules

Voici maintenant la litanie rituelle du linuxien intoxiqué (vous pouvez aller vous faire un café après avoir tapé la seconde ligne !) :

LinuxBox# cd /usr/src/linux
LinuxBox# make dep clean bzImage modules modules_install
LinuxBox# cp arch/i386/boot/bzImage /boot/vmlinuz-2.x.x
LinuxBox# cp System.map /boot/System.map-2.x.x
LinuxBox# rm /boot/System.map
LinuxBox# ln -s /boot/System.map-2.x.x /boot/System.map

Youpi ! c'est fini ! (enfin ... presque)

LILO mon bon LILO

Après avoir attendu si longtemps pour compiler un noyau, il faudrait peut-être pouvoir l'utiliser. Il vous faut donc configurer le démarrage de votre machine à partir du fichier /etc/lilo.conf :

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-x.x.x
        label=linux
        root=/dev/hdb1
        initrd=/boot/initrd-x.x.x.img
        read-only
image=/boot/vmlinuz-2.x.x
        label=test
        root=/dev/hdb1
        read-only
other=/dev/hda1
        label=dos
        table=/dev/hda

Enfin, la commande finale pour activer l'utilisation de ce superbe nouveau noyau tout neuf que vous avez :

lilo -v

Surtout, n'oubliez pas cette dernière commande. Le noyau compilé plus haut n'est utilisable qu'après avoir exécuté lilo.


débutsuivant Plug'N Play cartes ISA

Hein !?, il existe des fonctions Plug'N Play pour les cartes ISA.

La série 2.4.xx des noyaux Linux intègre une partie des fonctions ISA PnP.

Voici 2 exemples de configuration :

  • une carte R742 avec un noyau 2.4.10
  • et une carte R648 avec un noyau 2.2.xx.
Noyau de la série 2.4.xx

A l'issue du chargement du noyau, on obtient des informations sur la liste des ressources isapnp reconnues à l'aide de la commande suivante :

LinuxBox:/home/phil# cat /proc/isapnp
Card 1 'FHL7421:Carte Gazel-98 ISA' PnP version 1.0 Product version 0.1
  Logical device 0 'FHL7421:Unknown'
    Supported registers 0x2
    Device is active
    Active port 0x100
    Active IRQ 9 [0x2]
    Active DMA ,0
    Resources 0
      Priority preferred
      Port 0x100-0xfff0, align 0x7, size 0x8, 16-bit address decoding
      IRQ 4,5,7,2/9,10,11,12,15 High-Edge

Voici un extrait de fichier /etc/isapnp.conf pour le modèle R742 :


# For details of this file format, see isapnp.conf(5)
#
# For latest information and FAQ on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER -DABORT_ONRESERR
#
# Trying port address 0203
# Board 1 has serial identifier 54 ff ff ff ff 21 74 0c 19

# (DEBUG)
(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

# Card 1: (serial identifier 54 ff ff ff ff 21 74 0c 19)
# Vendor Id FHL7421, No Serial Number (-1), checksum 0x54.
# Version 1.0, Vendor version 0.1
# ANSI string -->Carte Gazel-98 ISA<--
#
# Logical device id FHL7421
#     Device support I/O range check register
#     Device supports vendor reserved register @ 0x3b
#     Device supports vendor reserved register @ 0x3c
#     Device supports vendor reserved register @ 0x3f
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given,
# this may be changed if required.
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE FHL7421/-1 (LD 0
#     IRQ 4, 5, 7, 9, 10, 11, 12 or 15.
#         High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 9 (MODE +E)))
#     Logical device decodes 16 bit IO address lines
#         Minimum IO base address 0x0100
#         Maximum IO base address 0xfff0
#         IO base alignment 8 bytes
#         Number of IO addresses required: 8
(IO 0 (SIZE 8) (BASE 0x0100) (CHECK))
(NAME "FHL7421/-1[0]{Carte Gazel-98 ISA  }")
(ACT Y)
))
# End tag... Checksum 0x00 (OK)

# Returns all cards to the "Wait for Key" state
(WAITFORKEY)


Ce fichier a été créé à l'aide de la commande pnpdump :

LinuxBox# pnpdump> /etc/isapnp.conf

Il a été ensuite édité pour choisir les paramètres d'interruption et d'entrée-sortie.

  • Choix de l'interruption n°9 : (INT 0 (IRQ 9 (MODE +E))).
  • Choix de l'adresse 0x100 : (IO 0 (SIZE 8) (BASE 0x0100) (CHECK)).
  • Activation de la configuration : (ACT Y).
Noyau de la série 2.2.xx

Dans ce cas, il est obligatoire d'utiliser le paquetage isapnptools. Si vous avez un doute sur la version de ce paquetage, faites une recherche avec Freshmeat.

Avec les distributions 6.x de RedHat et surtout Mandrake, le fichier généré par la commande décrite ci-après provoque des erreurs de vérification des ports d'entrées-sorties (;-/ on n'en sort pas). Il faut donc corriger la ligne :

(IO 0 (SIZE 16) (BASE 0x0240) (CHECK))

par

(IO 0 (SIZE 16) (BASE 0x0240))

en supprimant la commande (CHECK)

Voici la commande qui liste les ressources disponibles pour tout vos périphériques ISA :

LinuxBox# pnpdump> /etc/isapnp.conf

Décommentez les lignes correspondant aux ressources de votre carte. Voici mon propre fichier pour un modèle R647/648 :


# Card 1: (serial identifier a7 ff ff ff ff 81 64 0c 19)
# Vendor Id FHL6481, No Serial Number (-1), checksum 0xA7.
# Version 1.0, Vendor version 0.1
# ANSI string -->Djinn Internet 128  
#
# Logical device id FHL6481
#     Device support I/O range check register
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given,
# this may be changed if required
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE FHL6481/-1 (LD 0

# Multiple choice time, choose one only !

#     Start dependent functions: priority preferred
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0240
#             Maximum IO base address 0x02b0
#             IO base alignment 16 bytes
#             Number of IO addresses required: 16
(IO 0 (SIZE 16) (BASE 0x0240))

#       Start dependent functions: priority preferred
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0140
#             Maximum IO base address 0x01b0
#             IO base alignment 16 bytes
#             Number of IO addresses required: 16
# (IO 0 (SIZE 16) (BASE 0x0140))

#       Start dependent functions: priority preferred
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0340
#             Maximum IO base address 0x03a0
#             IO base alignment 16 bytes
#             Number of IO addresses required: 16
# (IO 0 (SIZE 16) (BASE 0x0340))

#       Start dependent functions: priority acceptable
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0100
#             Maximum IO base address 0x0ff0
#             IO base alignment 16 bytes
#             Number of IO addresses required: 16
# (IO 0 (SIZE 16) (BASE 0x0100))
 (NAME "FHL6481/-1[0]{Djinn Internet 128  }")

#     End dependent functions
#     IRQ 3, 4, 5, 7, 9, 10, 11 or 12.
#         High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 9 (MODE +E)))
(ACT Y)
))
# End tag... Checksum 0x00 (OK)

# Returns all cards to the "Wait for Key" state
(WAITFORKEY)


Une fois la ligne (ACT Y) décommentée, votre carte sera activée au prochain redémarrage du service isapnp.

LinuxBox# /etc/init.d/isapnp restart


précédent suivant

$Revision: 721 $ - $Date: 2005-11-10 16:48:33 +0100 (jeu, 10 nov 2005) $

Ces pages sont écrites en DHTML à la main avec WML et sont garanties 100% logiciel libre.
Documentation sous licence OpenContent