GEC开发日记04 --- aplay 和 arecord 的移植

简述

         ALSA是Linux系统中为声卡提供驱动的内核组件。它提供了专门的库函数来简化相应应用程序的编写。相较于OSS的编程接口,ALSA的函数库更加便于使用。
​          对应用程序而言ALSA无疑是一个更佳的选择,因为它具有更加友好的编程接口,并且完全兼容于OSS。

资源 链接
alsa 开发包 alsa-lib-1.0.22.tar.bz2
alsa 工具包 alsa-utils-1.0.22.tar.bz2

资源下载

Alsa Lib 的编译安装

  1. 将两个压缩包解压后放入到移植目录
    移入Ubuntu

  2. 配置, 编译

    $ ./configure --prefix=/home/link/Porting_software/_install --host=arm-linux --disable-python
    $ make
    

    Makefile

  3. 安装

    $ sudo -s  #要管理员
    $ make install
    

    make && make install

Alsa Util 的编译安装

  1. 配置, 编译

    $ ./configure --prefix=/home/link/Porting_software/_install \
            --host=arm-linux \
            --with-alsa-prefix=/home/link/Porting_software/_install/lib/ \
            --with-alsa-inc-prefix=/home/link/Porting_software/_install/include/ \
            --disable-alsamixer \
            --disable-xmlto
    $ make
    

    生成Makefile

  2. 安装

    $ sudo -s #需要管理员
    $ make install
    

    安装好工具

移植

        我们需要的两个工具 aplay(播放音频) 以及 arecord(录音), 将安装好的两个工具移植到开发板.

  1. Ubuntu 压缩安装包

    $ tar -zcvf alsa.tar.gz _install/
    

    压缩安装包

  2. 开发板解压压缩包

    $ tar -zxvf alsa.tar.gz -C .
    

    解压

  3. _install/bin/ 里的 aplayarecord 两个文件移动到 /bin.

    $ mv _install/bin/aplay _install/bin/arecord /bin/
    $ cd /bin && ls
    

移入/bin

  1. _install/share/alsa/ 移动到 /usr/local/alsa/share/ 里, 如果没有, 就创建一个再放进去

    $ cp /_install/share/alsa/ /usr/local/alsa/share/
    

    设置alsa的配置文件路径

  2. _install/lib/libasound.so.2 拷贝到开发板中 /lib

    $ cp _install/lib/libasound.so.2 /lib/
    

    移植库

  3. 设置音频文件相关设备节点

    $ mkdir /dev/snd
    $ cd /dev/snd
    
    $ mknod dsp c 14 3
    $ mknod audio c 14 4
    $ mknod mixer c 14 0
    $ mknod controlC0 c 116 0
    $ mknod seq c 116 1
    $ mknod pcmC0D0c c 116 24
    $ mknod pcmC0D0p c 116 16
    $ mknod pcmC0D1c c 116 25
    $ mknod pcmC0D1p c 116 17
    $ mknod timer c 116 33
    

    (1)controlC0:音频控制设备文件,例如通道选择,混音,麦克风的控制等;

    (2)pcmC0D0c:声卡0设备0的录音设备,c表示capter;

    (3)pcmC0D0p:声卡0设备0的播音设备,p表示play;

    (4)timer:定时器设置。

总结

        由于我的板子原本已经安装好了, 所以步骤应该有些错漏… 进行操作的时候一定要记得进入到对应的目录…

猜你喜欢

转载自blog.csdn.net/mumuynsi/article/details/127841679
今日推荐