Bricolages divers autour de l’interface RRF Spotnik V4.1 (et V3.1.1)
Ludo | 16 novembre 2021
Suite des aventures autour de la carte Orange Pi PC et Spotnik V4.1. Dans ce billet, je vais ajouter au fur et à mesure mes notes, remarques et suggestions de modifications ou d’amélioration logicielles et matérielles. Il est possible que la mise en forme soit un peu brouillon dans un premier temps, mais le plus important est de partager mon expérience. Je mettrai tout ça au propre par la suite. 23/11/2021: Nouvelle apparition du bug de détection de la carte son. J’ai mis à jour la description du problème (bien plus détaillée) ainsi que la solution proposée. |
Logiciel
Système
Repartitionnement de la carte SD
Le fichier image téléchargé ne contient que les données utiles, et sa taille est inférieure à celle de la carte SD. Ainsi, après avoir copié le contenu de cette image sur la carte, on constate au premier démarrage que le système ne voit pas la totalité de l’espace mémoire disponible. Il faut donc procéder en premier lieu à un repartitionnement de cette carte mémoire, à l’aide de la commande suivante dont le fonctionnement a été validé avec l’image V4.1 et V3.1.1 de Spotnik pour les cartes Orange Pi:
sudo systemctl start armbian-resize-filesystem
Détection de la carte son sur Spotnik V4.1
Premier cas de perte de son sur le relais, après une mise sous tension du système, sans pouvoir analyser quoi que ce soit: pas de PC sous la main et je dois partir travailler. Je redémarre le relais à distance et j’attends la prochaine occurrence du problème.
La solution proposée initialement est donc supprimée pour être reprise un peu plus bas, après une analyse plus poussée…
23/11/2021: Rien ne va plus, nouveau problème d’accès à la carte son après un redémarrage ce jour, mais cette fois-ci j’avais le temps et les moyens de regarder ça de près!
Tout d’abord, voici ce que dit le dmesg:
[ 3.631160] usb 7-1: new full-speed USB device number 2 using ohci-platform
[ 4.027225] usb 7-1: New USB device found, idVendor=1b3f, idProduct=2008, bcdDevice= 1.00
[ 4.027247] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4.027258] usb 7-1: Product: USB Audio Device
[ 4.027270] usb 7-1: Manufacturer: GeneralPlus
[ 4.036338] input: GeneralPlus USB Audio Device as /devices/platform/soc/1c1c400.usb/usb7/7-1/7-1:1.3/0003:1B3F:2008.0001/input/input0
[ 4.095614] hid-generic 0003:1B3F:2008.0001: input,hidraw0: USB HID v2.01 Device [GeneralPlus USB Audio Device] on usb-1c1c400.usb-1/input3
Puis ceci un peu plus loin:
[ 10.088585] snd-usb-audio 7-1:1.0: cannot find the slot for index 1 (range 0-1), error: -16
[ 10.088602] usb 7-1: cannot create card instance 0
[ 10.088627] snd-usb-audio: probe of 7-1:1.0 failed with error -16
[ 10.088753] usbcore: registered new interface driver snd-usb-audio
La vérification des modules qui ont été chargés, en rapport avec les périphériques audio, donne un résultat cohérent avec ce que rapporte le dmesg:
root@spotnikv41:~# cat /proc/asound/modules
0 snd_aloop
1 (null)
La supposition de mauvais index attribué lors de la détection au démarrage, émise dans un premier temps, s’avère être fausse! Si j’exécute alsamixer, je ne vois que ces cartes son:
Comme c’est un module, et non un driver qui est chargé, je peux au moins essayer de le supprimer et de l’insérer:
root@spotnikv41:~# modprobe -r snd-usb-audio
Le dmesg indique alors ceci:
[ 1358.480968] usbcore: deregistering interface driver snd-usb-audio
Maintenant j’insère ce même module:
root@spotnikv41:~# modprobe snd-usb-audio
Et le dmesg indique ceci:
[ 1417.531514] snd-usb-audio 7-1:1.0: cannot find the slot for index 1 (range 0-1), error: -16
[ 1417.531538] usb 7-1: cannot create card instance 0
[ 1417.531582] snd-usb-audio: probe of 7-1:1.0 failed with error -16
[ 1417.531783] usbcore: registered new interface driver snd-usb-audio
J’en déduis qu’il va falloir faire plus que ça pour rétablir le fonctionnement.
Je teste la coupure temporaire d’alimentation de la carte son USB, en la déconnectant puis en la reconnectant, sans redémarrer la carte Orange Pi bien entendu, ce qui ne corrige pas non plus le problème!
Je ne suis absolument pas expert Linux, mais à la lecture du dmesg je conclus qu’un périphérique utilise déjà l’index 1, même si la liste des modules indique (null). Je force alors l’index 2 pour la carte son USB:
nano /etc/modprobe.d/alsa.conf
# copy to /etc/modprobe.d/
#
# It is force set the number 0 for index alsa loop
options snd-aloop index=0
options snd-usb-audio index=2
Je quitte l’édition avec le raccourci Ctrl+X et je confirme l’écriture dans le fichier en appuyant sur la touche y.
Même modification du côté de svxlink.cfg, pour être en accord avec le nouvel index:
nano /etc/spotnik/svxlink.cfg
Il faut chercher le texte AUDIO_DEV avec le raccourci Ctrl+W, qui demande alors le texte à chercher dans la barre grise en bas de l’écran:
Search:
On tape le terme recherché et on valide avec la touche Entrée:
Search:AUDIO_DEV
La ligne contenant le terme recherché est alors trouvée instantanément. on remplace le 1 à la fin de celle-ci par 2:
Avant:
AUDIO_DEV=alsa:plughw:1
Après:
AUDIO_DEV=alsa:plughw:2
On lance une seconde recherche toujours avec Ctrl+W mais immédiatement suivi d’un appui sur la touche Entrée, et on remplace aussi le 1 par 2.
Une fois que c’est fait, on sort avec le raccourci Ctrl+X, suivi d’un appui sur la touche Y pour sauvegarder, ou N pour quitter sans sauver (si vous avez fait une fausse manip pendant l’édition du fichier, c’est plus prudent. Recommencez depuis le début de cette étape pour tenter de modifier à nouveau, sans erreur 😉 )
Je retente un suppression suivie d’une insertion du module snd-usb-audio, qui devrait affecter le nouvel index à cette carte son:
root@spotnikv41:~# modprobe -r snd-usb-audio
root@spotnikv41:~# modprobe snd-usb-audio
Et cette fois, le dmesg semble un peu plus d’accord avec la manip:
[ 1622.200211] usbcore: deregistering interface driver snd-usb-audio
[ 1625.031607] usbcore: registered new interface driver snd-usb-audio
Dernière vérification des modules:
root@spotnikv41:~# cat /proc/asound/modules
0 snd_aloop
1 (null)
2 snd_usb_audio
alsamixer confirme, tout le monde est bien présent maintenant:
Après un redémarrage logiciel, via la commande reboot, tout fonctionne à nouveau. À confirmer dans le temps…
Détection de la carte son sur Spotnik V3.1.1
Ça se passe à peu près comme pour la V4.1, mais en plus long:
On liste les cartes son disponibles avec la commande suivante:
cat /proc/asound/modules
Le résultat observé est le suivant:
root@spotnikv31:~# cat /proc/asound/modules
0 (null)
2 snd_usb_audio
On voit que la carte son qui nous intéresse, celle sur le port USB, s’est vue affecter l’index 2 (ligne 6 ci-dessous). C’est en effet forcé grâce au fichier aliases.conf:
root@spotnikv31:/# cat /lib/modprobe.d/aliases.conf
# These are the standard aliases and dependencies.
# This file does not need to be modified.
# prevent unusual drivers from appearing as the first sound device ###########
options snd-pcsp index=-2
options snd-usb-audio index=2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
# work around other kernel issues ############################################
# The EHCI driver should be loaded before the ones for low speed controllers
# or some devices may be confused when they are disconnected and reconnected.
softdep uhci-hcd pre: ehci-hcd
softdep ohci-hcd pre: ehci-hcd
On va alors éditer le fichier alsa.conf pour lui indiquer d’utiliser cette carte son par défaut, avec la commande suivante:
nano /usr/share/alsa/alsa.conf
Là, il y a nettement plus de choses dans ce fichier! On ajoute à la fin de celui-ci les lignes suivantes qui n’existent pas encore:
pcm.!default {
type hw card 2
}
ctl.!default {
type hw card 2
}
Enfin, on indique dans le fichier de configuration svxlink.conf l’index de la carte son USB, ici le 2, avec la commande suivante:
nano /etc/spotnik/svxlink.cfg
Il faut chercher le texte AUDIO_DEV avec le raccourci Ctrl+W, qui demande alors le texte à chercher dans la barre grise en bas de l’écran:
Search:
On tape le terme recherché et on valide avec la touche Entrée:
Search:AUDIO_DEV
La ligne contenant le terme recherché est alors trouvée instantanément. on remplace le 0 à la fin de celle-ci par 2:
Avant:
AUDIO_DEV=alsa:plughw:0
Après:
AUDIO_DEV=alsa:plughw:2
On lance une seconde recherche toujours avec Ctrl+W mais immédiatement suivi d’un appui sur la touche Entrée, et on remplace aussi le 0 par 2.
Une fois que c’est fait, on sort avec le raccourci Ctrl+X, suivi d’un appui sur la touche Y pour sauvegarder, ou N pour quitter sans sauver (si vous avez fait une fausse manip pendant l’édition du fichier, c’est plus prudent. Recommencez depuis le début de cette étape pour tenter de modifier à nouveau, sans erreur 😉 )
Une fois que les modifications sont faites, on peut redémarrer la carte en tapant reboot.
Je vous laisse confirmer, ou pas, que les étapes décrites ci-dessus corrigent bien le problème de carte son baladeuse sur Spotnik V3.1.1. J’ai validé le bon fonctionnement après un seul redémarrage, car en réalité, ma carte Orange Pi PC utilise Spotnik V4.1.