一、GEC6818编译环境:linux 本人用的是ubuntu16.04
二、下载alsa库:可以在文章头部下载alsa,或者在分享网盘下载
1.alsa-lib库
2.alsa-utils库
网盘链接:https://pan.baidu.com/s/1o2DlfFhmHAZbwmboIcJcJA?pwd=asdf
提取码:asdf
三、移植进入linux,交叉编译
1.可以设置共享文件夹,在虚拟机访问共享文件,在共享目录下复制压缩包到任意地方,再进行解压
设置共享文件夹:虚拟机 --> 设置 --> 选项 --> 共享文件夹 -->开启 --> 添加。将压缩包放进共享文件目录下
进入共享文件目录
命令 : cd /mnt/hgfs/你的文件名
复制压缩包到linux上
命令 :cp alsa-lib-1.0.22.tar.bz /usr/ cp alsa-utils-1.0.22.tar.bz /usr/
--/usr/ 是复制路径
如果出现下一问题,则是没有权限,需要在命令前加入sudo,然后enter后输入虚拟机密码
解压
进入复制目录:cd /usr
解压命令:tar -jxvf alsa-lib-1.0.22.tar.bz tar -jxvf alsa-utils-1.0.22.tar.bz
配置alsa-lib(一定要按照步骤来)
进入解压后的目录:cd alsa-lib-1.0.22/
配置命令:./configure --prefix=/usr/local/alsa --host=arm-linux --disable-python
然后输入make
切换root模式:sudo-s
输入make install
退出root模式:exit
配置alsa-utils
进入解压后的目录:cd alsa-utils-1.0.22/
配置命令:./configure --prefix=/usr/local/alsa --host=arm-linux \ --with-alsa-prefix=/usr/local/alsa/lib/ --with-alsa-inc-prefix=/usr/local/alsa/include --disable-alsamixer --disable-xmlto
然后输入make
切换root模式:sudo-s
输入make install
退出root模式:exit
配置好alsa-lib和alsa-utils就可以正常编译GEC6818关于调用alsa库的代码啦
2.直接复制压缩包,粘贴至linux,再进行解压
找到alsa-lib和alsa-utils的压缩包,直接右键复制,然后到虚拟下,右键,粘贴,再重复以上的操作即可。
四、移植入开发板
将在linux交叉编译好的,打包压缩
cd /usr/local/ 进入安装alsa库目录,按照自己的安装情况
输入命令:tar -jcvf alsa-lib-1.0.22.tar.bz2 alsa
将压缩好的压缩包 移植到开发板上
在开发板上创建配置文件目录mkdir /home/gec -p(如果有则不用创建)
进入该目录将压缩包放入该目录下:rx alsa-lib-1.0.22.bz2 选择xmodem
添加完后进行解压:tar -jxvf alsa-lib-1.0.22.tar.bz
进入解压后的目录:cd alsa/
将指定文件复制到开发板上
cp -r bin/ /bin cp -r lib/ /lib
完成以上操作即可在linux和gec6818下编译运行alsa,可以调用以下命令测试是否移植成功
测试
在gec6818上运行:
录音三秒生成abc.wav文件:arecord -d3 -c1 -r16000 -twav -fS16_LE abc.wav
播放abc.wav:aplay abc.wav
要将有线耳机插入音频口才能听见声音。
以上就是移植的全部过程,希望对友友有所帮助!因为这期的移植很简单所以就不多贴图了,如果大家不懂,或遇到什么问题,可以发在评论区call我!