您的位置:首页 > 其它

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

2016-04-05 16:38 405 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: