交叉编译 ncurses, alsa-lib, 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 转送门

移植alsa-utils 转送门

开始移植

tips:以下提到的< xxx-dir > 请自行按实际安装的目录添加,且路径都是绝对路径

ncurses 库

配置

### cross-compile to ncursesw (libncursesw.so.6.0) 
./configure --host=arm-linux-gnueabihf \
--prefix=<install-dir>/arm_ncurses_w \
--target=arm-linux-gnueabihf \
--with-shared \
--without-profile \
--disable-stripping \
--without-progs \
--with-manpages \
--without-tests \
--enable-widec

安装

make
make install

alsa-lib 库

配置

./configure \
--host=arm-linux-gnueabihf \
--prefix=<install-dir>/arm_alsalib \
--with-configdir=<install-dir>/arm_alsalib_config

安装

make
make install

alsa-utils 库

配置

./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`"

安装

make
make install

开发板环境配置

# file path: /etc/profile
#! /bin/sh
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

export TERM=vt100
export TERMINFO=/usr/share/terminfo
export ALSA_CONFIG_DIR=/usr/share/arm-alsa/
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

重启开发板,Enjoy It


常见问题

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 即可解决

Error opening terminal vt100

没有在 etc/profile 指定TERM的环境变量,在该文件下追加以下语句

export TERM=vt100
export TERMINFO=/usr/share/terminfo
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值