Я пытаюсь собрать alsa-util-1.1.0 для платформы arm-linux, методом проб и ошибок мне удалось скомпилировать alsa-lib и alsa-util, используя следующие команды:
альса-либ:
CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux -prefix=/home/username/20160311_alsa_work/alsa/install --disable-python
альса-утилита:
CC=arm-linux-gnueabihf-gcc ./configure --prefix=/home/username/20160311_alsa_work/alsa/install --host=arm-linux --with-alsa-inc-prefix=/home/username/20160311_alsa_work/alsa/install/include --with-alsa-prefix=/home/username/20160311_alsa_work/alsa/install/lib --disable-alsamixer --disable-xmlto --disable-nls --disable-bat --with-udev-rules-dir=/home/username/20160311_alsa_work/alsa/install/lib/udev --with-asound-state-dir=/home/username/20160311_alsa_work/alsa/install/var/lib/alsa --disable-alsaconf
Это очень похоже на это руководство: кросс-компиляция и использование Alsa audio
Компиляция выглядит нормально, и make install
помещает все в нужные папки. Затем я копирую все библиотеки и корзины в мои цели rootfs и пытаюсь выполнить arecord -l
Вывод arecord:
**** List of CAPTURE Hardware Devices ****
ALSA lib conf.c:3750:(snd_config_update_r) Cannot access file /home/username/20160311_alsa_work/alsa/install/share/alsa/alsa.conf
ALSA lib control.c:954:(snd_ctl_open_noupdate) Invalid CTL hw:0
arecord: device_list:277: control open (0): No such file or directory
Очевидно, что-то не так с моими параметрами конфигурации, но я не вижу другого способа их изменить... есть идеи???
Мне нужно выполнить кросс-компиляцию для моей цели arm-linux и установить в корневую файловую систему цели, но иметь все пути относительно корня корневой файловой системы, а не префикс, который следует использовать только для сборки.
Для информации: я использую параметры --with-udev-rules-dir=
и --with-asound-state-dir=
, потому что в противном случае установка попытается скопировать файлы в каталоги моих сборочных машин.