V3s录音 交叉编译alsa linux

摘要:
Mkdir/dev/sndmknod/dev/snd/controlC0c1160mknod/dev/snd/pcmC0D0pc11616mknod/dev/snd/pcmCOD0cc11624mknod/dev/snd/seqc1161mknod dev/snd/hwC0D0c1164mknod/dev/snd/timerc11633#ls-l/dev/snd/total0crw-----1root116,00年1月00日controlC0crw-----1 root116,24年1月100日:00pcmC00ccrw-----1 root116,16年1月100:00pcmC0D0pcw-----1 root116,33年1月100:00时间6。播放文件/bin/aplayFront_ Center.wav7有问题。当我编译这个文件时,我发现没有arcord,只有arcordmidi,所以我用buildroot重新编译了它,并记录了buildroot使用的configure选项。发现此问题是因为电源线已连接到aplay。当我的sftp被复制时,它会自动删除连接文件,所以我找不到它。手动创建一个。

1.下载alsa-lib和alsa-utils 

www.alsa-project.org/main/index.php/Download

2.编译alsa-lib

tar xvf alsa-lib-1.1.5.tar.bz2  #解压
sync
cd alsa-lib-1.1.5/
MyDIR="/usr/local/alsa"
./configure --host=arm-linux --prefix=$MyDIR/build --enable-shared --disable-python --with-configdir=$MyDIR/build/alsa_lib/share --with-plugindir=$MyDIR/build/alsa_lib/lib CC=/usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc
sudo make
sudo make install

3.编译alsa-utils

tar xvf alsa-utils-1.1.5.tar.bz2
cd alsa-utils-1.1.5/
MyDIR="/usr/local/alsa/build"
./configure --host=arm-linux --prefix=$PWD/build CC=/usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc CFLAGS="-I$MyDIR/include" LDFLAGS="-L$MyDIR/lib -lasound" --disable-alsamixer --disable-xmlto
sudo make
sudo make install

4.把文件拷贝到开发板

1.把/usr/local/alsa/build/lib 中的libasound.la  libasound.so  libasound.so.2  libasound.so.2.0.0 拷贝到目标板上的/lib目录

2.将/usr/local/alsa/build/alsa_lib/share文件复制到开发板的同样的文件位置(即在开发板上也要这样一个位置)

3.把~/lichee/alsa/alsa-utils-1.1.5/build/bin中的可执行文件拷贝到开发板的/bin目录

4.还可以把~/lichee/alsa/alsa-utils-1.1.5/build/share/sounds/alsa目录下的一些wav文件到开发板供测试。

5.在开发板上ls -l /dev/snd看看系统是否已经有了设备节点,如果没有,需要手动创建。

mkdir /dev/snd 
mknod /dev/snd/controlC0 c 116 0 
mknod /dev/snd/pcmC0D0p c 116 16 
mknod /dev/snd/pcmC0D0c c 116 24 
mknod /dev/snd/seq c 116 1 
mknod /dev/snd/hwC0D0 c 116 4 
mknod /dev/snd/timer c 116 33
# ls -l /dev/snd/
total 0
crw-------    1 root     root      116,   0 Jan  1 00:00 controlC0
crw-------    1 root     root      116,  24 Jan  1 00:00 pcmC0D0c
crw-------    1 root     root      116,  16 Jan  1 00:00 pcmC0D0p
crw-------    1 root     root      116,  33 Jan  1 00:00 timer

6.播放文件

/bin/aplay Front_Center.wav

 7.存在问题

我发现我这个编译出来没有arecord 只有arecordmidi,所以我重新用buildroot编译,顺便把buildroot用的configure选项记录一下。 这个问题找到了,这是因为arecord是连接着aplay的。我的sftp复制的时候它自动把连接文件删除了,所以我找不到,手动创建一个即可。

编译alsa-lib

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared  --with-alsa-devdir=/dev/snd --with-pcm-plugins="all" --with-ctl-plugins="all" --without-versioned --enable-static=no --disable-python )

编译alsa-utils

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared  --disable-xmlto --disable-rst2man --with-curses=ncurses --disable-alsaloop --disable-bat

免责声明:文章转载自《V3s录音 交叉编译alsa linux》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用dispatch_semaphore_t解决block异步执行返回结果问题【基于python实现UI自动化】3.0 selenium下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android编译大全(六)

6.2. makefile文件控制整个android系统编译的make文件。其内容如下: ### DO NOT EDIT THIS FILE ### include build/core/main.mk ### DO NOT EDIT THIS FILE ###   可以看出,实际上控制编译的文件是:build/core/main.mk 6.3. Make...

Linux 进程间通信(一)

Linux 进程间通信   进程是一个独立的资源分配单位,不同进程之间的资源是相互独立的,没有关联,不能在一个进程中直接访问另一个进程中的资源。但是,进程不是孤立的,不同的进程之间需要信息的交换以及状态的传递,因此需要进程间数据传递、同步与异步的机制。 分类 统一主机间进程通信 Unix进程间通信方式 无名通道 有名通道 信号 System V进...

Webpack的使用

webpack的使用 在项目中安装和配置webpack 1、运行npm install webpack webpack-cli -D命令 安装webpack相关的包 2、在项目的根目录中,创建webpack.config.js的webpack 配置文件 3、在webpack 的配置文件中初始化如下基本配置  module.exports={     mod...

sudo 有效用户 ID 不是 0,sudo 属于 root 并设置了 setuid 位吗?

【原因】 使用了这个命令:sudo chmod -R 777 /usr 【错误现象】 sudo: 有效用户 ID 不是 0,sudo 属于 root 并设置了 setuid 位吗? 【解决办法】 1、进入recovery模式,以root身份登录。 2、将文件系统重新挂载为rw,否则执行后续命令是可能出现Read-only file system错误,重新挂...

Linux下高并发socket最大连接数各种限制的调优

1、修改用户进程可打开文件数限制  在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [s...

腾讯云ubuntu18.04启用root用户

需求场景 腾讯开通的ubuntu主机,默认用户是ubuntu,并且这个ubuntu的权限还是相对比较低的,虽然提升了安全性,可是对于个人站长来说方便才是硬道理,自己也不会用root用户瞎操作。这个时候就需要用权限更大的root用户登录操作了。 步骤一:设置root密码 sudo passwd root回车设置两次密码即可 步骤二:修改ssh登录的配置 很多...