Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 17 utilisateurs en ligne, consultez le détail
Auteur Message
TrustRobot
#0 Message posté le : 17-09-2006 à 00:00:00


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-07-2003
Nombre de messages : 173


De manière générale, les BIOS Plug and Play sont bogués et ne savent pas configurer des périphériques ISA PNP. C'est pourquoi sous Linux il existe 2 manières distinctes de configurer vos cartes ISA.

La première consiste, à laisser l'allocation des ressources et la gestion des conflits au noyau, bien que plus simple, c'est celle avec laquelle on a, le moins de résultat et c'est en général pas celle qu'utilisent les distributions.

La seconde consiste à gérer, finement soit même l'allocation des ressources grâce à des programmes livrés avec isapnptools. C'est la solution que j'envisage ici, elle est plus technique mais les distributions actuelles sont prévues pour. De plus c'est avec elle qu'on obtient les meilleurs résultats.

Je vais ici configurer une carte son ISA (PNP) de chipset : yamaha OPL3-SAx.

1. Détection des plages d'Entrées/sorties, DMA et IRQ :



Votre distribution est nécessairement livrée avec le paquet isapnptools. Si vous ne l'avez pas ou si vous en avez une version trop ancienne, vous pourrez télécharger la version 1.26 ICI

et l'installerez (après avoir désinstallé l'ancienne version si nécessaire) par :
tar -xzvf isapnptools-1.26.tgz
cd isapnptools-1.26/
./configure --prefix=/usr
make LDFLAGS+="-static"
make install


A ce stade, vous disposez des bons logiciels, il vous faut maintenant connaître les bons paramètres. Si votre PC fonctionne exclusivement sous Linux, c'est vous qui imposerez vos paramètres, s'il fonctionnait déjà avec un autre OS, par exemple Windows ® vous devrez récupérer, les paramètres de celui-ci.

Concrètement pour Windows ® vous devrez aller dans le gestionnaire de périphérique et récupérer, les plages d'E/S , les IRQ et les DMA. Voilà ce que j'obtiens :
E/S:

0220-22f
0530-0537
0388-038b
0330-0331
0370-0371

IRQ:

05

DMA:

00
01


maintenant tapez la commande suivante :
pnpdump > /root/isapnp.conf


Cela devrait vous créer un fichier /root/isapnp.conf qui ressemble à >CECI.

2. Le fichier isapnp.conf



Le fichier/root/isapnp.conf est évidemment inutilisable en l'état. Il contient néanmoins des plages E/S, IRQ et DMA compatibles avec votre carte son, il vous suffit de décommenter (enlever le # devant la ligne commençant par une "(" qui vous intéressent) les bons paramètres.

N'oubliez pas de décommenter également le (ACT Y) qui correspond à la configuration choisie. Après traitement mon fichier ressemble à ceci :
# $Id: pnpdump_main.c,v 1.27 2001/04/30 21:54:53 fox Exp $

# Release isapnptools-1.26

#

# This is free software, see the sources for details.

# This software has NO WARRANTY, use at your OWN RISK

#

# For details of the output 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 -DHAVE_PROC -DENABLE_PCI -DHAVE_SCHED_SETSCHEDULER \

# -DHAVE_NANOSLEEP -DWANT_TO_VALIDATE

#

# Trying port address 0273

# Board 1 has serial identifier 81 ff ff ff ff 20 00 a8 65



# (DEBUG)

(READPORT 0x0273)

(ISOLATE PRESERVE)

(IDENTIFY *)

(VERBOSITY 2)

(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING



#Début de la configuration de la carte son :



(CONFIGURE YMH0020/-1 (LD 0

(IO 0 (SIZE 16) (BASE 0x0220))

(IO 1 (SIZE 8) (BASE 0x0530))

(IO 2 (SIZE 4) (BASE 0x0388))

(IO 3 (SIZE 2) (BASE 0x0330))

(IO 4 (SIZE 2) (BASE 0x0370))

(INT 0 (IRQ 5 (MODE +E)))

(DMA 0 (CHANNEL 0))

(DMA 1 (CHANNEL 1))

(NAME "YMH0020/-1[0]{OPL3-SAX Sound Board}" )

(ACT Y)

))

(CONFIGURE YMH0020/-1 (LD 1

(NAME "YMH0020/-1[1]{OPL3-SAX Sound Board}" )

))



#Fin de la configuration de la carte son :



(WAITFORKEY) 

Une façon efficace d'enlever toutes les lignes commençant par # dans /root/isapnp.conf après traitement est
de taper :
cd /root/
mv isapnp.conf isapnp.conf.old
awk '! (/^ *#/ || /^$/) { print $0 }' isapnp.conf.old > isapnp.conf


Notez que j'ai décommenté la configuration qui correspondait le mieux à la configuration windows ® (E/S : 0220-22f, 0530-0537, 0388-038b, 0330-0331, 0370-0371 ...). Il ne vous reste plus qu'à modifier votre /etc/isapnp.conf. S'il existe déjà et semble configuré, rajoutez simplement la configuration de votre carte son avant le (WAITFORKEY).

Si vous n'avez pas de /etc/isapnp.conf, vous pouvez en créer un par :
cp /root/isapnp.conf /etc/isapnp.conf

3. Chargement des modules :



Avant de charger les modules vous devez taper la ligne suivante :
/sbin/isapnp /etc/isapnp.conf ou /usr/sbin/isapnp /etc/isapnp.conf


Puis charger manuellement les modules nécessaires au fonctionnement de votre carte son, pour moi cela se
résume à :
modprobe mpu401
modprobe ad1848
modprobe opl3sa2
modprobe opl3


Il arrive que /sbin/isapnp (ou /usr/sbin/isapnp) ne veuille pas lire votre fichier, c'est signe qu'il n'est pas bon, mais vous pouvez, vous-même passer les bons paramètres aux modules par :
modprobe mpu401
modprobe ad1848
modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma1=1
modprobe opl3 io=0x388


Après avoir réglé le son, depuis kmix ou le mixeur de votre distribution, vous pouvez tester vos réglages en jouant un .mp3 avec par exemple xmms.

A ce stade, je suppose que tout c'est bien déroulé, en principe sur la plus part des distributions, un script lance la commande : /sbin/isapnp /etc/isapnp.conf à chaque démarrage, il est donc inutile de le faire à chaque fois. Rajoutez, simplement les lignes de chargement de module qui vont conviennent dans /etc/rc.d/rc.local et redémarrez.

Au redémarrage testez, le son si vous n'en avez pas, c'est qu'il faudra rajouter la ligne :
/sbin/isapnp /etc/isapnp.conf ou /usr/sbin/isapnp /etc/isapnp.conf


Dans /etc/rc.d/rc.local, avant le chargement des modules.

Cette méthode prend pour exemple, une carte son mais fonctionne de manière analogue avec n'importe quel périphérique ISA (PNP).




--Message édité par TrustRobot le 17-09-2006 à 00:00:00--