交叉编译alsa-lib库,amixer和aplay工具
2011-08-24 16:02
976 查看
1. 导出alsa安装目录
export gliethttp_alsa_lib=/usr/local/alsa
mkdir $gliethttp_alsa_lib
sudo chown luther:luther $gliethttp_alsa_lib -R
2. 编译alsa-lib库
./configure --build=i386 --host=arm-linux --disable-python --prefix=$gliethttp_alsa_lib
make;make install
3. 编译alsa-utils
./configure --build=i386 --host=arm-linux --with-curses=ncurses --disable-xmlto --with-alsa-inc-prefix=$gliethttp_alsa_lib/include --with-alsa-prefix=$gliethttp_alsa_lib/lib --prefix=$gliethttp_alsa_lib
make;make install
首先我们可以直接将$gliethttp_alsa_lib下的bin,sbin,lib使用cp -a拷贝到嵌入式root根/文件系统,
但是我们不能直接拷贝$gliethttp_alsa_lib到嵌入式根文件系统/根目录下,因为alsa lib中保存了库的
绝对路径信息,amixer或者aplay使用lib库时,lib库会使用绝对地址来访问share共享文件中的配置文件,所以必须
在嵌入式开发板上建立同名的安装时share绝对路径,这样才能正常使用,否则就会提示:
# amixer
ALSA lib conf.c:3601:(snd_config_update_r) Cannot access file /usr/local/alsa/share/alsa/alsa.conf
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default
amixer: Mixer attach default error: No such file or directory
随后即便我们设置了ALSA_CONFIG_PATH路径,也不管用了,同样会提示下面的错误log
# export ALSA_CONFIG_PATH=/usr/local/alsa/share/alsa/alsa.conf
# amixer
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default
amixer: Mixer attach default error: No such file or directory
# strulpi_dat3_int_set(),dev:c040bbe0
于是我们只能在嵌入式文件系统的根目录下建立同名的$gliethttp_alsa_lib目录,然后将alsa配置文件内容拷贝过去
mkdir -p /vobs/initramfs/$gliethttp_alsa_lib
cp -a $gliethttp_alsa_lib/* /vobs/initramfs/$gliethttp_alsa_lib/
好了一切搞定,alsa lib库安装应该注意的地方也就这么多了[luther.gliethttp]
4. 创建alsa控制节点
mknod /dev/snd/controlC0 c 116 0
5. 创建alsa对应pcm通道节点
a. 查看当前声卡个数
cat /proc/asound/cards
b. 查看该声卡对应的pcm信息
ls /proc/asound/card0
比如输出如下信息:id pcm0c pcm0p pcm1c pcm1p
c. 建立节点
mknod /dev/snd/hwC0D0 c 116 4
mknod /dev/snd/pcmC0D0p c 116 16
mknod /dev/snd/pcmC0D1p c 116 17
mknod /dev/snd/pcmC0D0c c 116 24
mknod /dev/snd/pcmC0D1c c 116 25
mknod /dev/snd/seq c 116 1
mknod /dev/snd/timer c 116 33
程序库下载地址:http://www.alsa-project.org/main/index.php/Download
export gliethttp_alsa_lib=/usr/local/alsa
mkdir $gliethttp_alsa_lib
sudo chown luther:luther $gliethttp_alsa_lib -R
2. 编译alsa-lib库
./configure --build=i386 --host=arm-linux --disable-python --prefix=$gliethttp_alsa_lib
make;make install
3. 编译alsa-utils
./configure --build=i386 --host=arm-linux --with-curses=ncurses --disable-xmlto --with-alsa-inc-prefix=$gliethttp_alsa_lib/include --with-alsa-prefix=$gliethttp_alsa_lib/lib --prefix=$gliethttp_alsa_lib
make;make install
首先我们可以直接将$gliethttp_alsa_lib下的bin,sbin,lib使用cp -a拷贝到嵌入式root根/文件系统,
但是我们不能直接拷贝$gliethttp_alsa_lib到嵌入式根文件系统/根目录下,因为alsa lib中保存了库的
绝对路径信息,amixer或者aplay使用lib库时,lib库会使用绝对地址来访问share共享文件中的配置文件,所以必须
在嵌入式开发板上建立同名的安装时share绝对路径,这样才能正常使用,否则就会提示:
# amixer
ALSA lib conf.c:3601:(snd_config_update_r) Cannot access file /usr/local/alsa/share/alsa/alsa.conf
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default
amixer: Mixer attach default error: No such file or directory
随后即便我们设置了ALSA_CONFIG_PATH路径,也不管用了,同样会提示下面的错误log
# export ALSA_CONFIG_PATH=/usr/local/alsa/share/alsa/alsa.conf
# amixer
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default
amixer: Mixer attach default error: No such file or directory
# strulpi_dat3_int_set(),dev:c040bbe0
于是我们只能在嵌入式文件系统的根目录下建立同名的$gliethttp_alsa_lib目录,然后将alsa配置文件内容拷贝过去
mkdir -p /vobs/initramfs/$gliethttp_alsa_lib
cp -a $gliethttp_alsa_lib/* /vobs/initramfs/$gliethttp_alsa_lib/
好了一切搞定,alsa lib库安装应该注意的地方也就这么多了[luther.gliethttp]
4. 创建alsa控制节点
mknod /dev/snd/controlC0 c 116 0
5. 创建alsa对应pcm通道节点
a. 查看当前声卡个数
cat /proc/asound/cards
b. 查看该声卡对应的pcm信息
ls /proc/asound/card0
比如输出如下信息:id pcm0c pcm0p pcm1c pcm1p
c. 建立节点
mknod /dev/snd/hwC0D0 c 116 4
mknod /dev/snd/pcmC0D0p c 116 16
mknod /dev/snd/pcmC0D1p c 116 17
mknod /dev/snd/pcmC0D0c c 116 24
mknod /dev/snd/pcmC0D1c c 116 25
mknod /dev/snd/seq c 116 1
mknod /dev/snd/timer c 116 33
程序库下载地址:http://www.alsa-project.org/main/index.php/Download
相关文章推荐
- ALSA 音频工具 amixer、aplay、arecord
- ALSA音频工具amixer,aplay,arecord
- 都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行用法
- ALSA音频工具amixer,aplay,arecord
- ALSA音频工具amixer,aplay,arecord
- ALSA音频工具amixer,aplay,arecord
- 嵌入式linux/android alsa_aplay alsa_amixer命令行用法
- 【转】ALSA(lib和util)交叉编译与测试
- ALSA(lib和util)交叉编译与测试
- android linux alsa_amixer
- ALSA音频工具编译安装
- alsa_aplay 出现 Warning: rate is not accurate
- ALSA --- amixer控制声卡驱动实现Line-in功能
- alsa-lib 交叉编译以及声卡驱动测试
- ALSA音频库移植,alsa-utils工具的使用
- linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
- 解和使用alsa配置-默认静音,必须先用amixer解除主音量和pcm音量的静音
- 【解决交叉编译工具链问题】bash: gcc:no such file or directory
- amixer,aplay,arecord交叉编译及使用
- Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )