2016-03-24 3 views
2

Я пытаюсь построить alsa-util-1.1.0 для платформы arm-linux через пробную версию и ошибку. Мне удалось скомпилировать alsa-lib и alsa-util ok, используя эти команды:alsa-util 1.1.0 arm cross compile issue

ALSA Пб:

CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux -prefix=/home/username/20160311_alsa_work/alsa/install --disable-python

ALSA-Util:

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 cross compile and use

Компиляция выглядит нормально, а make install помещает все в нужные папки. Я затем скопировать все эти библиотеки и бункеров для моих целевых корневой файловой системы и попытаться выполнить 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 и установить ее в корневой каталог цели, но у вас есть все пути относительно корня rootfs, а не префикс, который следует использовать только для построения.

Для информации: Я использую опции --with-udev-rules-dir= и --with-asound-state-dir=, потому что в противном случае установка попытается скопировать файлы в мои каталоги сборки сборки.

ответ

1

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

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

make install DESTDIR=/home/me/whatever 
+1

Спасибо так много - это прекрасно работало. Для справки я закончил использование упрощенной строки configure для alsa-lib и alsa-utils 'CC = arm-linux-gnueabihf-gcc ./configure --host = arm-linux -disable-python CC = linux-gnueabihf-gcc ./configure --target = arm-linux --host = arm-linux --with-alsa-inc-prefix =/home/имя пользователя/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 =/главная/имя пользователя/20160311_alsa_work/ALSA/install' –