移植alsa-utils 带 alsamixer

准备工作

ncurses-6.0.tar.gz
alsa-lib-1.2.2.tar.bz2
alsa-utils-1.2.2.tar.bz2

相关依赖移植参考

移植ncurses参考
移植alsa-lib参考

配置&编译&安装

1. 解压

tar jxvf alsa-utils-1.2.2.tar.bz2

2. 配置

注意

  1. < install-dir > 按实际填写绝对路径
  2. < arm-alsalib-dir > 按实际填写绝对路径
  3. < arm-ncursesw-dir > 按实际填写绝对路径
  4. –with-systemdsystemunitdir 和 --with-udev-rules-dir 是用于有systemd和udev机制的系统中,若不需要加入到systemd和udev,那就不需要理会,这里填写只是为了后面 make install 的时候不用加 sudo来执行
./configure \
--host=arm-linux-gnueabihf \
--prefix=<install-dir>/arm_alsautils \
--with-systemdsystemunitdir=<install-dir>/arm_alsautils/systemd  \
--with-udev-rules-dir=<install-dir>/arm_alsautils/udev-rules \
--with-alsa-inc-prefix=<arm-alsalib-dir>/include/ \
--with-alsa-prefix=<arm-alsalib-dir>/lib/ \
--disable-xmlto \
NCURSESW_CFLAGS="`<arm-ncursesw-dir>/bin/ncursesw6-config --cflags`" \
NCURSESW_LIBS="`<arm-ncursesw-dir>/bin/ncursesw6-config --libs`"

3. 编译&安装

make
make install

4. 目标环境配置

在移植alsa-lib时,当configure里面的–with-configdir 指定路径和实际运行环境路径不同那就要指定以下两个环境变量,在/etc/profile里追加

#file path: /etc/profile
export ALSA_CONFIG_DIR=/usr/share/arm-alsa/
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

5. 拷贝文件至开发板

//cd arm_alsautils
mkdir -p ~/nfs/rootfs/usr/share
cp -arf bin/*          ~/nfs/rootfs/usr/bin
cp -arf sbin/*         ~/nfs/rootfs/usr/sbin
cp -arf share/*        ~/nfs/rootfs/usr/share

X. 常见错误

configure: error: required curses helper header not found

没找到ncursesw库,最有可能的原因就是移植ncurses库的时候,
configure没有添加--enable-widec 选项,导致编译出来的库只有 libncurses.so
没有 libncursesw.so,这时候只能重新回去编译ncurses源码了

ALSA lib conf.c:4081:(snd_config_update_r) Cannot access file

没有找到配置文件的路径,在 /etc/profile 追加
export ALSA_CONFIG_DIR=/usr/share/arm-alsa/
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

(snd_config_hook_load) cannot stat file/directory

没有找到配置文件的路径,在 /etc/profile 追加
export ALSA_CONFIG_DIR=/usr/share/arm-alsa/
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

alsactl: state_lock:125: file /var/lib/alsa/asound.state lock error: No such file or directory

是因为路径 /var/lock 不存在,导致无法创建锁。
mkdir -p /var/lock 即可解决

configure 一些说明

--host= #交叉编译工具链前缀
--prefix= #安装路径
--with-systemdsystemunitdir= #systemd 配置文件安装路径 
--with-udev-rules-dir= #udev 配置文件安装路径 
--with-alsa-inc-prefix= #arm-alsalib 头文件路径
--with-alsa-prefix= #arm-alsalib 库文件路径
--disable-xmlto 
NCURSESW_CFLAGS= #ncursesw 头文件路径
NCURSESW_LIBS= #ncursesw 库文件路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值