1.粤嵌GEC6818开发板介绍 http://www.gec-lab.com/arm/show/72.html
2.粤嵌GEC6818平台介绍及其开发板配置_操作系统_心若十年的博客-CSDN博客 https://blog.csdn.net/qq_41768362/article/details/96891717
录音与播放 —> ALSA==================
一、编译ALSA库
先去到存放 alsa-lib-1.0.22.tar.bz2 alsa-utils-1.0.22.tar.bz2 的路径
1、编译alsa-lib-1.0.22
删除家目录下所有a开头的文件开始制作alsa库
sudo rm /home/gec/a* -rf
[sudo] password for gec: 123456 (不显示)
1)将alsa-lib-1.0.22.tar.bz2解压到Ubuntu的家目录
切换路径到有ALSA库开源源码压缩包的路径
tar jxvf alsa-lib-1.0.22.tar.bz2 -C ~
2)创建alsa库保存路径
mkdir /home/gec/alsa
chmod 777 /home/gec/alsa
3)切换路径到alsa-lib中编译alsa-lib库
cd ~/alsa-lib-1.0.22
配置编译选项
./configure --prefix=/home/gec/alsa --host=arm-linux --disable-python
–prefix --> 指定安装路径
–host --> 选定编译器
编译
make
安装
make install
2、编译alsa-utils-1.0.22
先去到存放 alsa-lib-1.0.22.tar.bz2 alsa-utils-1.0.22.tar.bz2 的路径
gec@ubuntu:/mnt/hgfs/share/7.18/资料/ALSA$
1)将alsa-utils-1.0.22.tar.bz2解压到Ubuntu的家目
tar jxvf alsa-utils-1.0.22.tar.bz2 -C ~
2)切换路径到alsa-utils-1.0.22
cd ~/alsa-utils-1.0.22
配置编译选项:
./configure --prefix=/home/gec/alsa --host=arm-linux --with-alsa-prefix=/home/gec/alsa/lib --with-alsa-inc-prefix=/home/gec/alsa/include --disable-alsamixer --disable-xmlto
编译
make
出现错误一:
make[2]: Entering directory ‘/home/gec/alsa-utils-1.0.22/alsaconf/po’mv: cannot stat `t-ja.gmo’: No such file or directory
make[2]: *** [ja.gmo] Error 1
解决方案:在/home/gec/alsa-utils-1.0.22/alsaconf/po创建t-ja.gmo文件
touch /home/gec/alsa-utils-1.0.22/alsaconf/po/t-ja.gmo
重新编译:make
出现错误二:
make[2]: Entering directory ‘/home/gec/alsa-utils-1.0.22/alsaconf/po’
mv: cannot stat `t-ru.gmo’: No such file or directory
make[2]: *** [ru.gmo] Error 1
解决方案:
在/home/gec/alsa-utils-1.0.22/alsaconf/po创建t-ru.gmo文件
touch /home/gec/alsa-utils-1.0.22/alsaconf/po/t-ru.gmo
安装
make install
二、移植到开发板
1、将~/alsa打包移动到开发板
1)切换路径到家目录:cd ~
2)打包并压缩alsa库:tar czvf alsa.tar.gz alsa
3)将打包好的alsa库移动到共享文件夹(注意前提共享文件夹是share)
mv alsa.tar.gz /mnt/hgfs/share
4)在开发板使用rx下载压缩包
rx alsa.tar.gz
5)解压到根“/”目录
tar zxvf alsa.tar.gz -C /
6)设置环境变量
export LD_LIBRARY_PATH=
L
D
L
I
B
R
A
R
Y
P
A
T
H
:
/
a
l
s
a
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
LD_LIBRARY_PATH:/alsa/lib export PATH=
LDLIBRARYPATH:/alsa/libexportPATH=PATH:/alsa/bin
注:在开发板;凡以命令行形式修改的系统配置(环境变量)均仅在本次开机有效
若想每次开机都有效则将修改系统配置(环境变量)的语句写入到配置文件中
方法:
将
export LD_LIBRARY_PATH=
L
D
L
I
B
R
A
R
Y
P
A
T
H
:
/
a
l
s
a
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
LD_LIBRARY_PATH:/alsa/lib export PATH=
LDLIBRARYPATH:/alsa/libexportPATH=PATH:/alsa/bin
写到/etc/init.d/rcS脚本中
vi /etc/init.d/rcS
使脚本生效:
source /etc/init.d/rcS
查看:
env
7)cp /alsa/share/alsa /usr/share -r
cp /alsa /home/gec -r
若开发板上没有home目录则需要手动创建
出现错误:
cp: can’t create directory ‘/home/gec’: No such file or directory
解决方法:
mkdir /home/gec -p
再次执行下面条命令
cp /alsa /home/gec -r
8)创建设备节点
注册好的依赖的设备文件节点(掉电必须重来一次)
mkdir /dev/snd
如果提示 mkdir: can’t create directory ‘/dev/snd’: File exists 继续往下执行
cd /dev/snd
使用rx 将 snd.sh 传到这个文件夹
创建某个设备节点,在/dev/snd目录下运行脚本“snd.sh”(“chmod 777 snd.sh” “./snd.sh”*)
如果提示下面信息
mknod: controlC0: File exists
mknod: pcmC0D0c: File exists
mknod: pcmC0D0p: File exists
mknod: timer: File exists
9)进入/etc/profil
步骤:
(1)vi /etc/profil
(2)source /etc/init.d/rcS 写到 /etc/profil这个文件里面
三、使用
/alsa/bin/aplay --> 播放
/alsa/bin/arecord --> 录音
去到自己的文件夹
录音:arecord
[root@开发板名 /]# arecord -d3 -c1 -r16000 -fS16_LE -twav abc.wav
Recording WAVE ‘abc.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Mono —>正在录音
-d, --duration=# interrupt after # seconds -->录音的秒数
-c, --channels=# channels -->音轨 :1表示单通道,2表示立体音
-r, --rate=# sample rate -->采样频率(16000)
-f, --format=FORMAT sample format (case insensitive) -->量化位数:16位(S6_LE)
-t, --file-type TYPE file type (voc, wav, raw or au) -->封装格式(wav)
播放:aplay abc.wav