|
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.
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).
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
|
|
|