Voilà : FFADO et jack sont installés, on aura pris soin au passage de configurer l'accès temps réel pour les applications, il va maintenant falloir tester sa carte son firewire, et vérifier par la même occasion que le reste du système est configuré correctement pour son utilisation.
Table des matières
Une fois FFADO installé, il est possible que vous rencontriez quelques problèmes pour mettre la carte en route. Ceci dépend en grande partie de la distribution linux que vous utilisez, certaines étant connues pour être plus "prêtes à l'emploi" que d'autres (voir le portail du débutant).
La méthode conseillée est donc de vérifier avec les outils de diagnostiques fournis par FFADO que celui-ci est fonctionnel et reconnait votre carte. Une fois d'éventuels problèmes réglés du coté firewire, vous pourrez songer à lancer jack.
Les outils de diagnostique
ffado diagnotic utility
ffado-diag
Ce petit programme très pratique (de Pieter Palmers) analyse le bon fonctionnement des modules du noyau, ce qu'il faut chercher dans son blabla :
old 1394 stack active..... True %%% ''...ou au choix...'' %%%new 1394 stack active..... True
[PASS] Kernel modules present and correctly loaded.
les versions de FFADO égales ou supérieur à 2.0.1 seulement sont capables d'utiliser le nouveau kernel stack
si aucun des deux stack n'est activé (ou si au contraire les deux le sont) ce n'est pas bon signe !/dev/raw1394 node present. True %%%/dev/raw1394 permissions.. True
[PASS] /dev/raw1394 node present and accessible.
avec "l'ancien stack" l'accès en lecture/écriture au fichier /dev/raw1394 doit être possible par l'utilisateur normal (non-root)
si ca n'est pas le cas, voir plus bas !
ffado test utility
Cet utilitaire (de Daniel Wagner et Pieter Palmers) à plusieurs options, voici l'une d'entre elles :ffado-test ListDevicescette commande liste les cartes son détectées par FFADO, exemple de retour pour ma carte son :
=== 1394 PORT 0 === Node id GUID VendorId ModelId Vendor - Model 0 0x000a9200c7021222 0x00000A92 0x00010066 Presonus - PreSonus FIREPOD 1 0x0008000800080182 0x00000800 0x00000000 Linux - ohci1394 - no message buffer overruns
gscanbus
Cet utilitaire peut servir au déboggage d'une carte son firewire, mais il est un peu ancien et a été remplacé par "ffado test utility" (commande :ffado-test ListDevices
).Site officiel : https://github.com/BackupTheBerlios/gscanbus/ .
le mixer ffado
Si votre carte est entièrement supportée par FFADO (full-support), vous devriez aussi pouvoir vous servir du mixer FFADO pour en vérifier le bon fonctionnement. Si votre carte est (reported to work) on peut essayer de lancer dans un terminal la commande:ffado-dbus-server
Cette commande permettrait également de faire marcher plusieurs cartes affichées comme non supportées. Puis relancer dans le terminal ou graphiquement:
ffado-mixer
Si l'on obtient toujours un message d'erreur du type "ERROR : could not communicate with DBus" ou autre on peut se reporter à: J'ai toujours un message d'erreur
Configurer le système
- Quel stack sur mon systeme ? ancien ou nouveau ?
Avec l'introduction du nouveau stack firewire, les noms des modules ont changé :- ancien stack firewire : ieee1394 (module de base), ohci1394 (pilote), raw1394 (module d'accès)
- nouveau stack firewire : firewire-core (module de base), firewire-ohci (pilote) (raw1394 est remplacé par firewire-core)
Pour savoir quels modules firewire sont chargé sur votre système, utilisez les commandes suivantes :- ancien stack firewire :
lsmod | grep 1394 %%%raw1394 45184 16 %%%ohci1394 50868 9 dv1394 %%%ieee1394 122216 3 raw1394,dv1394,ohci1394
- nouveau stack firewire :
lsmod | grep firewire %%%firewire-core ... %%%firewire-ohci ...
configuration :
l'ancien stack firewire
le module raw1394
si le module raw n'est pas activé par defaut, essayez le le lancer à la main, en super utilisateur :modprobe raw1394
- si cela fonctionne, il vous faudra ensuite chercher dans la documentation de votre distribution pour ajouter son chargement automatiquement au démarrage du système
- par exemple pour ubuntu :
echo raw1394 | sudo tee -a /etc/modules
- et pour Debian :
voir le wiki de debian (lien en anglais)
- par exemple pour ubuntu :
- si vous obtenez "Module raw1394 not found.", il vous faudra installer un noyau compatible (option raw, ref manquante) et vérifier que le paquet libraw est installé.
vérifiez les droits du fichier /dev/raw1394, celui-ci doit être accessible en lecture et écriture par votre utilisateur, par exemple chez moi raw1394 fait partie du groupe audio, ainsi que mon utilisateur :
ls -al /dev/raw1394
exemple de retour :
crw-rw---- 1 root audio 171, 0 2008-10-21 00:50 /dev/raw1394
- pour ajouter votre utilisateur au groupe audio (en super utilisateur):
gpasswd -a votre_user audio
- pour modifier les droits du fichier lui-même, vérifiez la-aussi avec la documentation de votre distribution, car les changements apportés à la main ne seront pas forcément pris en compte au prochain re-démarrage. La solution la plus simple est de modifier/d'ajouter une "règle udev?" pour la création du fichier /dev/raw1394. Exemple sous gentoo (en super utilisateur) :
echo 'KERNEL=="raw1394*",GROUP="audio",MODE="0660"' > /etc/udev/rules.d/40-firewire.rule
; sous d'autres distributions regarder la doc sur la création de règles udev et vérifiez qu'il n'en existe déjà pas une grace à la commande :grep -r raw1394 /etc/udev/rules.d
le module ieee1394
le module ieee1394 (module de base) est normalement chargé automatiquement aux cotés du module-pilote firewire utilisé. Ce dernier est en général ohci1394, bien qu'il me semble que ca ne soit pas le seul, en particulier un certain yenta... (à completer par vos expériences). Bref prennons ohci1394 pour l'exemple, c'est lui qui se greffe sur, et occupe l'IRQ de votre carte son.Si ce dernier n'est pas chargé automatiquement par le système, il peut s'agir de différents problèmes :
module non présent dans le noyau :
Certaines distributions ne proposent pas le module firewire demandé (ohci1394, yenta ou autre ieee1394), pour vérifier le mieux est encore de chercher/poser la question sur le forum sur le matériel et les pilotes.
Vous trouverez aussi des distributions prêt à l'emploi pour la MAO et le firewire dans le coin du débutant
Et si vous compilez votre noyau vous-même, rendez-vous sur la page Tuto Compiler un noyau Temps-Réel qui aborde cette partie de la configuration.
module présent mais non chargé :
pour vérifier cela, la commande suivante nous donne un indice :
cat /proc/interrupts
exemple de retour :
... 0: 130 0 IO-APIC-edge timer 1: 2 0 IO-APIC-edge i8042 8: 0 0 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 12: 3 0 IO-APIC-edge i8042 16: 153812695 0 IO-APIC-fasteoi i915, uhci_hcd:usb3, __ohci1394__ 17: 48180 0 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb5 18: 0 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb7 19: 0 0 IO-APIC-fasteoi uhci_hcd:usb6 20: 23606 0 IO-APIC-fasteoi eth0 21: 25830 0 IO-APIC-fasteoi sata_sil, uhci_hcd:usb4 ...
Dans cet exemple, le module ohci1394 partage l'IRQ 16 avec quelques autre modules, il est donc bien chargé, pas de problème ici ;-)
pour vérifier d'une autre manière (en super utilisateur :
lspci -v
exemple de retour :
... 07:04.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev 46) (prog-if 10 [[OHCI]) Subsystem: VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller Flags: bus master, stepping, medium devsel, latency 32, IRQ 16 Memory at f0300000 (32-bit, non-prefetchable) [[size=2K] I/O ports at 3000 [[size=128] Capabilities: [[50] Power Management version 2 __Kernel driver in use: ohci1394__ __Kernel modules: ohci1394__ ...
Dans cet exemple encore, pas de problème à vue de nez
le nouveau stack firewire
Les commandes du paragraphe précédent s'appliquent aussi à la configuration du nouveau stack firewire, aux quelques différences près ci-dessous ::
- Pour utiliser le nouveau module firewire du noyau (dénommé Juju), il vous faudra vérifier que vous utilisez libraw1394 >= 2.0.5 et un kernel >= 2.6.32, ainsi qu'une version de FFADO compatible (>= 2.0.1 compilée avec support Juju)
- c'est le fichier /dev/fw1 (et fw2 si vous avez une deuxième carte-son) qui doit être accessible en lecture par votre utilisateur. Pour cela il suffit d'ajouter votre utilisateur au groupe "video". (note pianolivier : je n'ai pas encore réussi à créer une règle udev pour donner les droits de lecture au groupe "audio", comme pour /dev/raw1394 plus haut)
Pour ajouter votre utilisateur au groupe "video" (en super utilisateur) :gpasswd -a votre_user video
Pour verifier que votre utilisateur fait bien parti du groupe video :$ groups jeanmichmuch adm dialout cdrom audio video plugdev lpadmin admin sambashare
J'ai toujours un message d'erreur !
à partir de là, si ffado-diag ou l'une des manipulations précédentes vous donne toujours un message d'erreur, les étapes à suivre sont :- recherche sur FFADO > foire aux questions
- recherche/demande d'infos sur le forum matériel et pilotes
Je n'ai pas de message d'erreur, aller plus loin
Si tout c'est bien passé, il ne vous reste plus qu'à lancer jack par la manière de votre choix : QJackCtl, ladish etc.Si vous ne les connaissez pas encore, vous pourrez vous familiariser avec les options de jack sur la page jack > QJackCtl > configuration.
Si vous avez déjà lancé jack avec succès sur une autre carte son, alors les seuls modifications qu'il vous faudra peut-être apporter sont le "pilote > firewire" et le taux d'échantillonnage, voici un exemple de configuration à adapter :
jackd -P70 -dfirewire -r96000 -p256 -n3
en ce qui concerne les recherches de basse latence, il est déconseillé de réduire le nombre d'échantillons à moins de 3 x 64 (voir ce sujet du forum
Nous rappelons que les manipulations habituelles pour donner aux applications un accès temps réel restent de circonstances avec FFADO :
- pour tous > applications temps-réel pour tous
- pour les utilisateurs du noyau temps-réel > applications temps-réel pour le noyau rt
sources :
[+]