Audio Cape rev A

Informations concernant l'utilisation de la carte Audio Cape rev A, avec la carte Beaglebone Black.

Mise à jour de Buildroot [Modifier]

Bibliothèques nécessaire

alsa-lib-1.1.1, alsa-utils-1.1.1, gettext-0.19.7 et libxml2-2.9.4.

dans /sec/buildroot :

  • make packages/enable/alsa-lib
  • make packages/enable/alsa-utils
  • make packages/enable/gettext
  • make packages/enable/libxml2

Configuration de BuildRoot :

dans /sec/buildroot :

  • make menuconfig
  • Target Packages
    • Additional Packages for Projet
      • alsa-lib (tout activer)
      • alsa-utils (activer aplay/arecord et amixer)
      • gettext (activer)
      • libxml2 (activer)

Pour la package gettext, il est aussi nécéssaire d'activer Enable WCHAR Support dans Toolchain.

Ne pas activer alsa-mixer par exemple, car cet outil utilise l'affichage graphique et il manquera des bibliothèques (ncurses) lors de la compilation du noyau Linux.

Configuration du noyau Linux [Modifier]

dans /sec/buildroot :

make linux-menuconfig

  • Device Drivers
  • Sound card support (activer)
  • ALSA (activer)
    • Support Old ALSA Api (activer)
      • Verbose procfs contents (activer)
      • Generic sound devices (Activer)
      • ARM sound devices (Activer)
      • ALSA for SoC audio support (Activer)
        • SoC Audio for TI DAVINCI or AM33XX/AM43XX chips (Activer)
        • SoC Audio for the AM33XX chip based boards (Activer)
        • SoC Audio for the Texas Instruments OPAM chips (Activer)

Modification du device-tree [Modifier]

Le fichier BBB-audio.dtsi, à ajouter dans le fichier device-tree XXX.dts, se trouve dans l'onglet fichiers de ce wiki.

On trouve dans ce fichier les mêmes éléments que dans le fichier BB-BONE-AUDI-01-00A0.dts, disponible à cette adresse : https://github.com/beagleboard/devicetree-source/tree/master/arch/arm/boot/dts.

Il est à noter que l’ensemble des fichiers .dts disponibles dans ce projet Github doivent être utiliser pour faire une modification dynamique du device-tree de la carte, ce que l’on appelle un device-tree overlay : https://beagleboard.org/blog/2022-02-15-using-device-tree-overlays-example-on-beaglebone-cape-add-on-boards. Ils ne peuvent donc pas être utilisés directement dans notre cas.

A la suite de l'ensemble de ces étapes, pensez à compiler votre noyau linux, le device-tree, ainsi que le système de fichier.

Cross-compilation de la bibliothèque ALSA [Modifier]

Faire l'ensemble des étapes suivantes, en mode su.

Cette étape permet d'avoir l'ensemble des fichiers de la bibliothèque sur le pc host et donc de :

  • voir son contenu
  • cross-compiler facilement les programmes

Le noyau linux de la VM utilisée date du 04/08/2015 (commande cat /prox/linux/version). Il ne faut donc pas utilise une version trop récente d’ALSA. Par exemple, on peut utiliser la version 1.0.27.

Pas besoin d’installer alsa-utils (ensemble de fichiers exécutables) qui sera déjà présent dans le système de fichiers Linux (cf. étapes précédentes)

  • Récupération des sources Alsa-lib : https://www.alsa-project.org/files/pub/lib/
  • Etape de configuration :
    • ./configure --help, liste de toutes les options disponibles
    • ./configure --host=arm-linux --prefix=/home/tpuser/REP_DE_VOTRE_CHOIX
Cette commande va faire 2 choses vérifier que toutes les dépendances sont présentes configurer et écrire un fichier Makefile qui contiendra les ordres de compilation. A chaque erreur de dépendance, à vous d'installer ce qu'il manque. En général, il s'agit d'une bibliothèque absente.

Pour que cela fonctionne, pensez bien à ajouter le répertoire de votre chaine de cross-compilation dans le PATH Linux'' : export PATH=$PATH:/sec/buildroot/........

  • étape de compilation make
  • étape de copie des fichiers make install (en mode su) ou make install DESTDIR (DESTDIR=chemin répertoire d’installation).Il peut être utile d'installer la bibliothèque dans un répertoire particulier pour voir l'ensemble des fichiers générés et faciliter ensuite la cross-compilation des exemples. Si Alsa-lib n'est pas présente dans le système de fichiers de la carte, il faudra aussi l'installer à cet endroit.

Cross-compilation des exemples ALSA [Modifier]

Aide et exemples disponibles ici : https://www.linuxjournal.com/article/6735

Il peut être intéressant de tester et compiler les exemples sur la VM (gcc, architecture x86) avant de cross-compiler et tester sur la carte BeagleBone (arm-linux-gcc,ARM).

Ne pas oublier l'option -lasound pour compiler.

Exemples [Modifier]

https://www.linuxjournal.com/article/6735