alsa-lib和alsa-util安装编译及开发板移植

本文详细介绍了如何在虚拟机Ubuntu环境下安装alsa-lib和alsa-utils,并指导如何将其移植到开发板上,包括必要的配置步骤及环境变量设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想在自己的开发板上移植一个音频驱动,所以涉及到了音频测试方面,alsaproject提供了alsa-driver、alsa-lib以及alsa-utils。现在的内核基本都有 了alsa-driver,所以关于他的安装没有进行操作。一下主要总结一下alsa-lib和alsa-utils的安装移植。
先准备alsa-lib跟alsa-utils的安装包,我用的是alsa-lib-1.1.5跟alsa-util-1.1.5版本。
可以到alsaproject官网下载:http://www.alsa-project.org/main/index.php/Main_Page
也可以到chinaunix下载:http://download.chinaunix.net/download/0001000/358.shtml
或者到我自己个人上传的资源下载:http://download.youkuaiyun.com/download/berlin23/10161057

第一步:alsa-lib安装(虚拟机ubuntu上操作)
1、解压alsa-lib
tar xvj alsa-lib-1.1.5.tar.bz2
2、进入解压出来的文件,对configure
./configure –host=arm-linux –prefix=&PWD/build -enable-shared=yes –disable-python –with-configdir=PWD/build/alsalib/sharewithplugindir=PWD/build/alsa_lib/lib
新版本的lib在配置-enable-shared这部分时要在后面加上=yes,还有注意-enable-shared=yes 跟-enable-static=yes同时存在,不然在后面make的时候会出现conflicting tpye of’ ‘的错误。
PWD这个变量一般是解压文件夹的位置。
–host=后面是你所用的编译器
–prefix生成库的位置
–with-configdir跟–with-plugindir是生成alsa_lib/share和alsa_lib/lib的位置,后面utils的安装会需要用到注意放置好合适的位置,已经在开发板移植的时候也会用到,因为要保持位置一样。
3、make跟make install

第二步:alsa-utils的安装(虚拟机ubuntu上的操作)
1、解压alsa-utils
tar xvj alsa-utils-1.1.5.tar.bz2
2、进入解压出来的文件配置configure.
./configure –host=arm-none-linux-gnueabi -prefix=/home/alsa –with-alsa-inc-prefix=PWD/build/includewithaldaprefix=PWD/build/lib –disable-alsamixer
PWD变量同上,lib的安装文件位置。
-prefix:后面make的时候生成的文件位置。
–with-alsa-inc-prefix:为lib库头文件的位置。
–with-alda-prefix:库的位置。
3、make、make install

通过上面两部,lib跟utils都已经制作好了,接下来是开发板移植了,我使用的开发板是创龙的omapl-138.
1.将lib安装时产生的build文件放置到开发板上,要主要,build的位置跟你在虚拟机ubuntu的时候绝对位置要一样,使用这里建议lib安装在/usr/local下。
2.将alsa-lib/lib放到开发板默认库搜素目录/lib
3.将第二步utils生成的应用程序在(-prefix=/home/alsa)放到开发板/usr/bin跟/usr/sbin文件中。

4/编辑$rootfs/etc/init.d/rcS,添加如下几行
#alsa_init
mkdir /dev/snd
ln /dev/controlC0 /dev/snd/controlC0
ln /dev/pcmC0D0c /dev/snd/pcmC0D0c
ln /dev/pcmC0D0p /dev/snd/pcmC0D0p
ln /dev/timer /dev/snd/timer

amixer cset numid=86 2
amixer cset numid=87 2
5、编辑$rootfs/etc/profile,添加如下两行
#alsa_init
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/share/alsa/alsa.conf
Tips:该环境变量的值必须与alsa安装目录保持一致,否则使用aplay和arecord时会报错
至此alsa-lib、alsa-util移植完毕.

测试

1.测试能否正常播放,使用命令

aplay test1.wav

test1.wav为已录制好的正常音频文件

2.测试能否正常录音,使用命令

arecord -d 10 -fdat test2.wav

### 初始化配置QT源码 为了在Linux开发板上初始化并配置QT源码进行开发,需要遵循一系列特定的操作流程来确保环境设置正确无误。这不仅涉及到必要的软件包安装,还包括针对目标硬件架构的交叉编译过程。 #### 安装必需工具支持库 首先,在主机Ubuntu环境中准备所需的构建工具与支持库至关重要。这些工具对于后续的QT源码编译不可或缺: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential git cmake pkg-config qtbase5-dev \ qtchooser qt5-qmake qtbase5-dev-tools libgl1-mesa-dev libxkbcommon-x11-0 \ libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 \ libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 \ libxcb-randr0 libxcb-cursor0 libxrender-dev libxi-dev flex bison gperf \ g++ gcc binutils make automake autoconf libtool wget unzip patchelf \ libssl-dev libdbus-1-dev libfontconfig1-dev libfreetype6-dev \ libinput-dev libtsan0 libcups2-dev libdrm-dev libgbm-dev libegl1-mesa-dev \ mesa-common-dev libgles2-mesa-dev libwayland-dev wayland-protocols \ libxrandr-dev libxcursor-dev libxi-dev libxtst-dev libxcomposite-dev \ libxdamage-dev libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev \ libasound2-dev alsa-utils pulseaudio libpulse-dev libudev-dev \ dh-autoreconf libusb-1.0-0-dev ``` 上述命令会安装包括但不限于CMake、Git、QMake在内的多种必要组件以及图形界面相关的依赖项[^4]。 #### 获取QT源码 接着从官方仓库克隆最新的QT源代码至本地机器: ```bash git clone https://code.qt.io/qt/qt5.git ~/qt5 cd ~/qt5 perl init-repository --module-subset=qtbase,qtdeclarative,qtmultimedia,qttools,qtwebengine ``` 这里选择了几个常用的模块作为例子;实际需求可根据项目调整所选模块列表[^3]。 #### 配置交叉编译环境变量 创建一个脚本文件用于定义交叉编译器路径及其他相关参数: ```bash echo 'export CROSS_COMPILE=/path/to/toolchain/bin/arm-linux-gnueabihf-' >> ~/.bashrc source ~/.bashrc ``` 请替换`/path/to/toolchain/bin/arm-linux-gnueabihf-`为具体使用的交叉编译工具链的实际位置。 #### 构建QT源码 进入QT源目录执行configure脚本来指定目标平台其他选项,并启动编译进程: ```bash ./configure -release -opengl es2 -device linux-arm-generic-g++ \ -device-option CROSS_COMPILE=$CROSS_COMPILE -skip qtscript -no-use-gold-linker \ -no-pch -qpa eglfs -no-kms -j$(($(nproc)+1)) make install ``` 此段指令中包含了多个定制化选项以适应ARM架构下的嵌入式设备特性,如采用EGLFS插件而非KMS显示驱动程序等。 完成以上步骤之后即可获得适用于Linux开发板上的QT库文件集合,进而开展应用程序的设计工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值