alsa 移植到Linux3.0

alsa 架构现在已经成为Linux的标准音频架构了,相比于过去的oss有很多的优点。

alsa 提供了大量的工具和一个完备的链接库,这些库都可以在Ubuntu centos等上进行交叉编译。

我是在Ubuntu最新版本14上编译的alsa的22版本的。

http://www.alsa-project.org/main/index.php/Download  这里包含了alsa库的一些历史版本,这里我们主要编译lib库和util的工具集

我下载了1.0.22

然后解压进入文件夹路径,这里可以看到里面包含了一些熟悉的文件,首先就是Makefile  这个文件现在还是没什么用的,因为里面存在一些参数是要我们根据自己的编译环境进行设置的。设置方法就是里面有个应用程序configure  命令在这里贴出来

./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-static --enable-shared  --disable-python  --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib

这里的路径如果没有  要自己创建,当然如果自己觉得不喜欢可以更改路径。

然后就可以编译

make

安装

sudo make  install

这里是因为安装过程要创建路径所以需要管理员权限

这样在usr/local/share  线面就能看到一些.a   .so文件了

然后进入到util里面进行编译出来工具,这个编译是要依赖于前面编译的lib的

首先也是进入到util的路劲

修改makefile 

./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-static --enable-shared  --disable-python  --with-configdir=/usr/local/share/alsa  --datarootdir=$PWD/../../output/arm-linux/share

也是同样的方法

然后是编译

make

安装

sudo make  install

之后也是在

usr/local/share/alsa

线面能看到一堆的工具了。

到此整个编译过程完成了

之后进行移植就相对简单了

把工具  aplay   arecord  。。放到板子的rootfs 的bin路径

lib下的那些 ,a ,so 。。   全都放到rootfs的lib下

config  在rootfs下建立 、usr/localshare/alsa下

这样就可以用了

时间: 2024-11-07 14:48:14

alsa 移植到Linux3.0的相关文章

【FL2400】Linux3.0 内核移植 一

接触arm + Linux已经将近两年了,之前都是站在大神的肩膀上来移植linux内核,对很对要求移植的东西都不是很懂!为了进一步深入对内核的了解,我决定重新从头开始对linux内核进行移植.这次移植完全是从一个新手的角度进行移植,包括可能出现的问题,以及出现的问题如何解决. 环境: 操作系统: CentOS 6.2 编译环境:gcc version 4.3.6 (Buildroot 2011.11) 开发板    : 飞凌2440(s3c2440)(arm920t) u-boot    :u-

linux-3.0内核移植

1.新建kernel文件夹,用于存放内核文件 [[email protected] ~]$ mkdir kernel 2.进入kernel,上传压并解压压缩文件 [[email protected] ~]$cd kernel [[email protected] kernel]$ tar -xjf linux-3.0.tar.bz2 3.进入linux-3.0 cd linux-3.0 4.修改makefile,配置CPU类型和交叉编译器(195,196行) ARCH ?=arm CROSS_C

基于Linux3.0.8+smart210的DS18B20驱动移植

Linux内核:Linux3.0.8 硬件:友善之臂smart210开发板,A8内核 编译器:arm-linux-gcc 4.5.1 DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点.工作电压 3.0~5.5V/DC 超低功耗静态功耗<3uA,测温范围 -55℃-+125℃, 测量结果以9~12位数字量方式串行传送. 面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85℃的原因. DS18B20实物图 DS18

Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7)【转】

原文地址:Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938395.html 前面粗略分析start_kernel函数,此函数中基本上是对内存管理和各子系统的数据结构初始化.在内核初始化函数start_kernel执行到最后,就是调用rest_init函数,这个函数的主要使命就是创建并启动内核线

Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7)【转】

原文地址:Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938396.html 在基本分析完内核启动流程的之后,还有一个比较重要的初始化函数没有分析,那就是do_basic_setup.在内核init线程中调用了do_basic_setup,这个函数也做了很多内核和驱动的初始化工作,详解

Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 【转】

原文地址:Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938390.html 在构架相关的汇编代码运行完之后,程序跳入了构架无关的内核C语言代码:init/main.c中的start_kernel函数,在这个函数中Linux内核开始真正进入初始化阶段, 下面我就顺这代码逐个函数的解释,但是这里并不会过于深入

Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】

原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938393.html 在分析start_kernel函数的时候,其中有构架相关的初始化函数setup_arch. 此函数根据构架而异,对于ARM构架的详细分析如下: void __init setup_arch(char **cmdlin

[MFC] VS2013版本MFC工程移植到VC6.0上

:VS虽号称“宇宙最强IDE”,但是有时候安装包太大,动不动就几个G:而且安装好之后也会多出很多几乎很难用到的部分,这对于那些处女座的人如何忍受!本文不是吐槽,而是给出一种在应急场景下,不用安装新版本几个G的IDE,而是将高版本的工程移植到低版本的IDE中,并使其工作和调试的解决方法~ VS2013版本MFC工程移植到VC6.0上 1.场景再现 我最近搞了个ubuntu系统,并在virtualbox中装了个win7用于安装设计PCB和嵌入式集成开发环境Keil.项目需要,得用到我之前写的一个将图

S5PV210之添加缺少的-内核提供的&#39;.h&#39;文件 linux3.0.8驱动

怎样解决编译时出现内核提供的函数或变量没有定义,使用source insight搜索功能找到声明的头文件,然后包含该头件就行了: 比如: error: implicit declaration of function 'copy_from_user' 解决:使用source insight搜索功能,可以找到copy_from_user函数是在linux/uaccess.h 头文件中定义,所以包含此头文件就行了. S5PV210之添加缺少的-内核提供的'.h'文件 linux3.0.8驱动,布布扣