alsa-lib及alsa-utils成功移植

发布时间:2023-05-31  

准备工作

alsa-lib版本:alsa-lib-1.0.23.tar.bz2

alsa-util版本:alsa-utils-1.0.23.tar.bz2

其他版本的alsa-lib和alsa-util不能保证正常工作

arm板子:s3c2416

板子上linux内核:2.6.xx

pc虚拟机:arm-linux-gcc:4.4.6

 

首先在Ubuntu上交叉、编译alsa-lib和alsa-util

1.解压alsa-lib-1.0.23.tar.bz2,进入解压所得目录

2.使用命令

./configure --host=arm-jyxtec-linux-gnueabi --prefix=/usr/share/arm-alsa

Tips:--host参数指定了交叉编译器为“arm-jyxtec-linux-gnueabi(根据自己板子上的工具链稳准)",因此必须确保交叉编译器已成功配置(也就是已经导出为全局环境变量,切记!切记!我就在这浪费了很多时间,我的习惯是添加据对路径),且可以在shell里直接调用;--prefix参数指定了alsa-lib的目标安装目录,之后的alsa-util配置也一样

3.使用命令

make

sudo make install

Tips:make install必须加上sudo,因为在install过程中会创建某些目录

4.解压alsa-utils-1.0.23.tar.bz2,进入解压所得目录

5.使用命令

./configure --host=arm-jyxtec-linux-gnueabi --prefix=/usr/share/arm-alsa --with-alsa-inc-prefix=/usr/share/arm-alsa/include --with-alsa-prefix=/usr/share/arm-alsa/lib --disable-alsamixer --disable-xmlto

Tips:--with-alsa-inc-prefix和--with-alsa-prefix分别指定了交叉编译util应用所需要的alsa-lib的头文件和库文件;--disable-alsamixer表示不编译生成alsamixer这个应用程序,因为该程序依赖于ncurses这个图形界面库,目前我们对于该库还不能交叉编译,故放弃

6.使用命令

touch alsaconf/po/t-ja.gmo

注意:根据自己的错误提示来输入命令

如果提示是t-ru.gmo的话,就用命令:touch alsaconf/po/t-ru.gmo

如果提示是t-ja.gmo的话,就用命令:touch alsaconf/po/t-ja.gmo

值得注意的地方是:如果还是报错,那就make clean一下

避免之后make报错

7.使用命令

make

sudo make install

至此Ubuntu上的工作全部结束

 8.到此还不能保证自己移植的是否成功能用,先看一下我们生成的utils是否是交叉环境上的,也就是能在arm上运行的,如何测试呢?很简单,跳到我们生成工具目录下(cd /usr/share/arm-alsa/sbin/)

# cd /usr/share/arm-alsa/bin/

# file aplay

显示 aplay: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.21, not stripped

注意:这就是我们能在arm上运行的小工具格式,最重要的是看arm那里,那里显示arm说明我们的运行环境是在arm上,这正是我们移植的目的,但是如果显示是 Intel 80386,说明我们没有移植成功,问题就是出在我们交叉工具链设置上。

接着要在2416上部署已交叉编译好的alsa-lib和alsa-util

为便于理解,设2416的根目录为$rootfs

1.将Ubuntu中/usr/share/arm-alsa/下的lib、bin、sbin下的文件cp至2416根文件系统的目录下,使用命令

sudo cp -rfa /usr/share/arm-alsa/lib/*  $rootfs/lib/

sudo cp -rfa /usr/share/arm-alsa/bin/*  $rootfs/sbin/

sudo cp -rfa /usr/share/arm-alsa/sbin/*  $rootfs/sbin/

2.把生成的配置文件copy到文件系统中,要保证绝对路径一致(自己动手建文件夹):

sudo cp -rfa /usr/share/arm-alsa/share/alsa/* $rootfs/lusr/share/arm-alsa/share/alsa/

 

4.编辑$rootfs/etc/init.d/rcS,添加如下几行

[plain]view plaincopyprint?

  1. #alsa_init  

  2. mkdir /dev/snd  

  3. ln /dev/controlC0 /dev/snd/controlC0  

  4. ln /dev/pcmC0D0c /dev/snd/pcmC0D0c  

  5. ln /dev/pcmC0D0p /dev/snd/pcmC0D0p  

  6. ln /dev/timer /dev/snd/timer  

  7.   

  8. amixer cset numid=86 2  

  9. amixer cset numid=87 2  

Tips:amixer的两句命令,是将amixer的默认设置'Left Capture Source'和'Right Capture Source'的值改为'Line‘,否则会出现alsa录音没有声音的问题

5.编辑$rootfs/etc/profile,添加如下两行

[plain]view plaincopyprint?

  1. #alsa_init  

  2. export ALSA_CONFIG_PATH=/usr/share/arm-alsa/share/alsa/alsa.conf  

 

6、如果开机运行后,你输入

# amixer 
ALSA lib conf.c:3601:(snd_config_update_r) Cannot access file /usr/local/alsa/share/alsa/alsa.conf
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL default
amixer: Mixer attach default error: No such file or directory

或者和上面的信息类似,那说明我们copy的配置信息据对路径不对,根据提示信息建相应的文件夹,把我们生成相应配置信息cp进去,逐步尝试,(会有好几次错误提示,和上面的作法一样)

知道最后可以成功运行,打工造成,移植成功!~

 

 下篇文章我会根据我的情况总结一下这些小工具的具体使用方法!!


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    出的细胞群打印成管状结构,制成血管。京都大学利用3D打印技术制成包裹着神经的筒状组织,并将其移植到实验鼠身上,实现了神经的再生。日本政府预计到2020年前后,iPS细胞将可用于治疗心脏病等疾病,正在加紧掌握与人体组织形状相近的人造立体组织移植......
    猪给人类提供移植脏器的时代或将来临;       作为缓解脏器不足的手段,将猪等动物的细胞和组织移植到人类身上的“异种移植”备受关注。此前因受防止传染病的指导方针限制,日本事实上无法实施异体移植......
    AI辅助诊断早期卵巢癌准确率达93%; 研究示意图。图片来源:《妇科肿瘤学》杂志 美国佐治亚理工学院癌症综合研究中心(ICRC)科学家将机器学习与血液代谢物信息相结合开发出一种新方法,使卵巢......
    人员对人胚胎肾293细胞进行了基因改造,以在其表面表达SpyCatcher蛋白。然后,将细胞膜破碎并涂在可生物降解的聚合物纳米颗粒上。随后,将这些纳米颗粒与SpyTag连接的蛋白质混合。 团队在患有卵巢......
    新赛道 除产品展示和商机创造外,CME深圳国际移动电子展坐拥行业前沿优势,高屋建瓴,精心组织移动电子行业会议、行业知识主题论坛,为参展商搭建新产品、新技术发布和其它新知识交流的平台,助力......
    只畸形耳朵,3DBio Therapeutics用她本人的活细胞制造出3D打印移植耳朵,并为其进行了移植手术。新打印的耳朵形状与这名女性的左耳精确匹配。移植的新耳朵还会继续再生软骨组织,使其......
    为细胞创建“操作手册”,三维光刻打印重现器官真实发育过程;澳大利亚悉尼大学和韦斯特米德儿童医学研究所团队为细胞创建了“操作手册”:他们使用三维(3D)光刻打印技术创建了一个复杂的环境,以组装模仿器官结构的组织......
    人造皮肤组织中首次3D打印出毛囊; 3D生物打印皮肤内的毛囊。图片来源:《科学进展》 由美国伦斯勒理工学院科学家领导的团队首次在实验室培养的人类皮肤组织中3D打印出毛囊。尽管距离设计出能长出头发的皮肤移植......
    U-boot在S3C2440上的移植详解(五);一、移植环境 主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand,Kernel:2.6.30.4 编译......
    (0X002C); LCD_WRITERAM(C); } 实现了对LCD像素的操作,进而修改移植UCGUI图形接口,从而方便UCGUI通过调用该最底层函数来实现丰富的图形界面。 4.2、UCGUI组织......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>