Проблема перекрестной компиляции alsa-util 1.1.0

Я пытаюсь собрать 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=, потому что в противном случае установка попытается скопировать файлы в каталоги моих сборочных машин.


person dev-rowbot    schedule 24.03.2016    source источник


Ответы (1)


--prefix должен быть путем, видимым на целевом устройстве.

Чтобы установить файлы по другому пути на хост, используйте DESTDIR:

make install DESTDIR=/home/me/whatever
person CL.    schedule 24.03.2016
comment
Большое спасибо - это сработало отлично. Для справки, я использовал упрощенную строку конфигурации для alsa-lib и alsa-utils CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux --disable-python CC=arm-linux-gnueabihf-gcc ./configure --target=arm-linux --host=arm-linux --with-alsa-inc-prefix=/home/username/20160311_alsa_work/alsa/install/usr/include --with-alsa-prefix=/home/username/20160311_alsa_work/alsa/install/usr/lib --disable-alsamixer --disable-xmlto --disable-nls --disable-bat Для обоих я использовал `make install DESTDIR=/home/username/20160311_alsa_work/alsa/install` - person dev-rowbot; 31.03.2016