Page suivante - Page précédente - Table des matières

3. Comment installer le support des SB AWE

3.1 Les choses dont vous aurez besoin

Ce qui suit est requis pour le support SB AWE sous Linux:

  • un système Linux fontionnel (par ex. la distribution Debian GNU/Linux),
  • une carte SB AWE 32 ou compatible (càd SB32, SB32 PnP, SB AWE64, ...),
  • les sources du noyau Linux, incluant le pilote sonore OSS/Free (normalemnt inclus, vérifiez dans /usr/src/Linux/drivers/sound/Readme),
  • Les extensions du pilote AWE 32.

Si vous avez une carte PnP, vous aurez également besoin de:

  • le paquetage logiciel des isapnptools.

Regardez dans la section Sources pour les informations concernant l'obtention de ces programmes.

Si vous avez un système Debian GNU/Linux, vous aurez besoin des paquetages kernel-source-<version>, awe-drv et peut-être le paquetage isapnptools. Vous désirez peut-être quelques-uns des autre paquetages awe-*, mais cependant ils ne sont pas essentiels. Je recommande fortement le kernel-package pour compiler et installer facilement le noyau.

3.2 Avant de commencer

Assurez vous que vous avez proprement installé votre carde dans un emplacement sur votre carte mère et peut-être l'avoir déjà testée dans un environnement DOS ou Windows.

La prochaine étape est d'initialiser la carte au lancement si et seulement si c'est une carte PnP. Suivez la documentation dans les sources pour compiler et installer isapnptools (ou utilisez simplement le paquetage binaire Debian), et lancez

# pnpdump> /etc/isapnp.conf

en tant que super-utilisateur. Celà générera un fichier de configuration propre à votre carte PnP, mais avec tous les périphériques commentés. Editez attentivement ce fichier, et comparez les values des canaux DMA, des bases IO et des interruptions avec la configuration des cartes sous les environnements DOS ou Windows si possible (Avec Win95, regardez les ressources utilisées par la carte sous resources dans le device manager). Si vous avez des problèmes, lisez attentivement la documentation fournie avec les isapnptools.

AVERTISSEMENT: les isapnptools échouent souvent dans la détection des trois ports I/O du périphérique SB AWE Wave Table. Veuillez vérifier attentivement l'entrée Wave Table de votre isapnp.conf avec l'exemple à la fin de ce HOWTO. Ajustez les adresses I/O de bases si nécessaire.

AVERTISSEMENT: D'après l' isapnp-faq, quelques fois les isapnp échouent à programmer le nombre de périphériques logiques. Si vous rencontrez un message d'erreur comme celui-ci:

Error occurred executing request 'LD 2' on or around line...

essayez alors d'ajouter (VERIFYLD N) au début de isapnp.conf. Vous devez utiliser au minimum la version 1.10 pour que ceci fonctionne. Si vous ne pouvez utiliser la version 1.10 ou ultérieure, vous pouvez également POKE directement les nombres des périphériques logiques. Veuillez vous référer à l'isapnp-faq pour plus d'informations sur cette approche. Si ça ne marche pas pour vous, contactez moi (et les personnes d'isapnp seront intéressées également, je pense).

AVERTISSEMENT: Vérifiez que la dernière ligne est (WAITFORKEY), celà sera parfois omis par les anciennes versions de pnpdump.

Un isapnp.conf d'exemple pour seulement une seule carte PnP (la carte son) peut-être trouvée à la fin de ce document (voir la section Exemple d'<tt>isapnp.conf</tt>).

Si vous avez un système Debian, aucun ajustement supplémentaire n'est nécessaire. isapnp sera lancé au lancement dans /etc/init.d/boot avec ce petit bout de script, que vous devrez peut-être inclure dans vos scripts d'initialisation:


# Configure les cartes isa plug and play avant de charger
# les modules. Nécessite de faire ceci avant le chargement
# des modules pour avoir une chance de configurer et de
# lancer les cartes PnP avant que les pilotes ne viennent
# foutre le bordel.
#
if [ -x /etc/init.d/isapnp ]
then
 /etc/init.d/isapnp start
fi

/etc/init.d/isapnp est
#! /bin/sh
# /etc/init.d/isapnp: configure les cartes Plug and Play
test -x /sbin/isapnp || exit 0
/sbin/isapnp /etc/isapnp.conf
exit 0

Si vous avez une autre distribution Linux, vous êtes chez vous. Je ne sais pas ce qu'il faut faire (personne ne peut envoyer des informations plus spécifiques ?). Soyez certains qu'isapnp sera lancé avant que les modules ne soient chargés (voir plus haut).

3.3 Compiler le noyau

Avant de recompiler le noyau, vous devez ajouter les extensions AWE au pilote sonore. Même si vos sources du noyau ont déjà les extensions awedrv (voyez /drivers/sound/lowlevel/ pour ça), vous pouvez avoir à mettre le logiciel à jour. Suivez les instructions des sources de awedrv pour l'installation. En bref, vous devez lancer un script d'installation qui applique les corrections à vos sources du noyau.

Faites attention si vous avez mis à jour vos sources du noyau en lançant le script. En effet le script vérifie simplement qu'un certain fichier existe - s'il existe, il n'applique pas les corrections nécessaires. Vous seriez avisé de retirer le fichier drivers/sound/lowlevel/awe_wav.c avant de lancer le script après avoir mis à jour les sources du noyau.

Ensuite vous avez à configurer le noyau pour le support du son. J'espère que vous connaissez quelque chose sur la compilation du noyau; voyez le Sound HOWTO et le Kernel HOWTO pour les détails. Allez dans le répertoire où se trouvent vos sources du noyau (/usr/src/linux par exemple), et lancez:

# make config

ou make menuconfig ou make xconfig. Ensuite vous devez configurer votre noyau normalement. Utilisez cette opportunité pour créer un noyau petit et puissant, spécialement constitué pour votre système. Répondez bien Y à la question Enable loadable module support, si vous désirez installer le pilote sonore en tant que module chargeable. (vous devez le faire si vous avez une carte PnP), mais je ne suis pas certain que vous désiriez le faire, cependant.

A un moment, on vous demandera si vous désirez le support des cartes son. Vous êtes libres de répondre avec Y ou avec M si vous n'avez pas de carte PnP. Vous devez répondre avec M, pour module, si vous avez une carte PnP. Vous avez à compiler le support carte son en module si vous avez une carte PnP car les cartes PnP doivent être initialisées avant que les modules ne soient chargés.

Vous devez répondre Y aux questions suivantes, toutes les autres avec N:


Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?]
Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?]
/dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?]
MIDI interface support (CONFIG_MIDI) [Y/n/?]
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?]
lowlevel sound driver support [Y/n/?]
AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]

En fait, seul le dernier est pour le synthétiseur Wave Table. Les autres sont les options SB 16 du pilote OSS/Free.

De plus, vous devrez configurer le port I/O de la carte son. Voyez le fichier isapnp.conf pour de l'aide, si vous en avez un. Pour moi, les valeurs par défaut sont suffisantes. Notez que les valeurs par défaut des scripts de configuration du kernel peuvent être fausses (principalement les valeurs SBC_IRQ et SB_MPU_BASE qui semblent incorrectes pour la plus grande partie des cartes).


I/O base for SB Check from manual of the card (SBC_BASE) [220]
Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5]
Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1]
Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7
(use 1 for 8 bit cards) (SB_DMA2) [5]
MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card
(SB_MPU_BASE) [330]
SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ)
[-1]

Maintenant recompilez le noyau. Les utilisateurs Debian doivent utiliser le kernel-package. Ce paquetage rend les compilations de noyau aussi facile que l'installation d'un paquetage debian. Voyez la documentation dans /usr/doc/kernel-package/. Par exemple:

# make-kpkg clean
# make-kpkg -revision custom.1.0 kernel_image

puis dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb.

Si vous avez une autre distribution Linux, suivez le moyen normal de compilation d'un nouveau noyau. N'oubliez pas make modules et make modules_install. Voyez le Sound HOWTO et peut-être le Kernel HOWTO pour plus d'informations.

3.4 Redémarrage

Après l'installation d'un nouveau noyau, vous devez relancer votre machine (vérifiez que vous avez une disquette de lancement sous la main). Croisez les doigts.

Si vous avez une carte PnP, vérifiez que vous lancez isapnp soit dans un script de lancement (comme décrit plus haut) ou manuellement:

# /sbin/isapnp /etc/isapnp.conf
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e:  CTL0048 Serial No 58128
[checksum 74]

Maintenant vous pouvez installer le pilote sonore, après l'avoir compilé en tant que module:

# modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)

Si vous pensez que la détection de la mémoire n'était pas correcte (j'ai eu des échos de quelqu'un qui a une AWE64 avec 4096k, et `detected'' a été de 28672k), vous pouvez soit essayer de mettre à jour le logiciel awedrv ou spécifier la taille de la mémoire ddans le fichier /usr/src/linux/drivers/sound/lowlevel/awe_config.h, par exemple:

#define AWE_DEFAULT_MEM_SIZE  4096   /* kbytes */

Désolé, vous devez alors recompiler le noyau (compiler les modules pourrait suffire, mais je n'en suis pas sûr).

Si ça marche, vous pouvez désirer que le module sonore se charge automatiquement. Vous pouvez utiliser kerneld (pourquoi c'est une mauvaise idée est expliqué dans la section 1.4) ou ajouter une simple ligne contenant sound à votre /etc/modules/ (pour Debian) ou ajouter /sbin/modprobe -a sound à votre script de lancement.


Page suivante - Page précédente - Table des matières