基于s3c2440的alsa-lib及alsa-utils成功移植

alsa-lib及alsa-utils成功移植

移植这个有点麻烦,但是为了学习的需要,在麻烦也得执行下去。

准备工作

alsa-lib版本: alsa-lib-1.0.27.2.tar.bz2下载地址:点击这里!

alsa-util版本: alsa-utils-1.0.27.2.tar.bz2下载地址:点击这里!

 ncurses版本: ncurses-5.9.tar.gz下载地址:点击这里!

其他版本的alsa-lib和alsa-util不能保证正常工作


arm板子:s3c2440
板子上linux内核:3.4.2

pc虚拟机:ubuntu-9.10

编译工具链:arm-linux-gcc:4.3.2

编译 alsa-lib  : /* 这里指定prefix的时候,必须和开发板上相对应,比如着了我们选择一个xyz目录,那么开发板上也必须要有xyz目录,这里我们为了

不改变文件系统的框架,我们准备安装在/usr目录,可是虚拟机usr目录下已经有文件了,我们不能去改变它

所以做了如下的工作在安装 */

sudo mv /usr /usr_bak /* 重命名,后面需要还原它 */
echo $PATH /* 查看环境变量,把usr换成usr_bak */
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin

export PATH=/usr_bak/local/sbin:/usr_bak/local/bin:/usr_bak/sbin:/usr_bak/bin:/sbin:/bin:/usr_bak/games:/usr_bak/local/arm/4.3.2/bin
./configure --host=arm-linux
make
sudo mkdir /usr
sudo chown book:book /usr
make install
sudo mv /usr /home/book/workspace/alsa /* 后面路径自己指定 */
sudo mv /usr_bak /usr /* 恢复原状 */
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin
/* 环境变量也需要恢复 */
把头文件和库复制进交叉工具链里
cd /home/book/workspace/alsa/usr/include
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
cd /home/book/workspace/alsa/usr/lib
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
把库复制到根文件系统的lib目录下
cd /home/book/workspace/alsa
sudo -rfd usr /work/nfs_root/ /* 复制到根文件系统的根目录 */

3.2 alsa-util
3.2.1 先编译依赖:ncurses-5.9.tar.gz /* 安装这个,不然安装 alsa-util会出错*/
./configure --host=arm-linux --prefix=$PWD/tmp --with-shared
make && make install

把头文件和库复制进交叉工具链里
cd /home/book/workspace/alsa/ncurses-5.9/tmp/include/ncurses
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
cd /home/book/workspace/alsa/ncurses-5.9/tmp/include/
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

cd /home/book/workspace/alsa/ncurses-5.9/tmp/lib
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
把库复制到根文件系统的lib目录下
cd /home/book/workspace/alsa/ncurses-5.9/tmp/lib
sudo cp *so* -rfd /work/nfs_root/
3.2.2 编译alsa-util:
./configure --host=arm-linux --prefix=$PWD/tmp --with-curses=ncurses --disable-xmlto --disable-nls
make
sudo make install /* 把生成的bin文件复制到文件系统根目录 */

3.2.3 测试 /* 重新链接设备节点 */
mkdir /dev/snd
cd /dev/snd/
ln -s /dev/controlC0 
ln -s /dev/pcmC0D0p 
ln -s /dev/pcmC0D0c
播放:
aplay Windows.wav
调音量:
amixer controls
amixer cget numid=1
amixer cset numid=1 30

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HeroKern

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值