Ressources pour les projets informatiques
Vous trouverez dans ce wiki différentes ressources concernant les projets informatiques.
Audio Cape rev A
Table des matières
1. Mise à jour de Buildroot [Modifier]
2. Configuration du noyau Linux [Modifier]
3. Modification du device-tree [Modifier]
4. Cross-compilation de la bibliothèque ALSA [Modifier]
- 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)
- Additional Packages for Projet
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)
- Support Old ALSA Api (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
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.