音频alsa的移植

ALSA音频架构 -- snd_pcm_open函数分析 alsa-lib主要是给抽象出来的一套ALSA应用程序的用户空间库,供具体的应用程序调用。alsa-utils 主要是相关的操作APP,可以充当官方demo,供开发人员参考。前文已经给出。本文主要详细分析snd_pcm_open。...... 阅读详情

1  alsa-lib的移植

1.1  软件包下载

假设该软件包存放在目录/home/alsa中

1.2 安装alsa-lib

  • 安装路径
        在本例中,安装路径为/usr/local/custom_install_arm/alsa_lib,因此如果没有该路径中的某些目录,需要创建这些目录。
  • 编译安装alsa-lib

       执行如下操作

#cd  /home/alsa/

#tar -jxv -f alsa-lib-1.0.22.tar.bz2

#cd  /home/alsa/alsa-lib-1.0.22

#./configure  –host=arm-linux  CC=arm-linux-gcc  –enable-static  –enable-shared  –disable-Python  –prefix=/usr/local/custom_install_arm/alsa_lib

//=========================================================

//—————————————————————————————————

说明:

(1)  如果需要自定义include/config.h中ALSA_CONFIG_DIR的值,可通过参数–with-configdir指定,即alsa.conf文件安装路径,默认值是–prefix指定的路径值/share/alsa/
(1)  如果需要自定义include/config.h中ALSA_PLUGIN_DIR的值,可通过参数–with-plugindir指定,即smixer的安装路径,默认值是–prefix指定的路径值/lib/alsa-lib/

//—————————————————————————————————

//=========================================================

#make

#make install

该步骤执行完成之后,alsa-lib的相关文件就会安装到pc机中configure步骤先关参数指定的路径中。

1.3  移植alsa-lib

alsa-lib编译安装完成之后,进行如下操作

(1)  将参数–prefix指定的路径值/lib下的动态库文件移植到arm linux系统的文件系统的/usr/lib/目录中

(2)  将–with-configdir指定的目录的所有内容(主要是alsa.conf)移植到arm linux系统的文件系统中的相同的目录路径中

(3)  其它内容可以移植,也快以不移植,但是如果移植,那么它们在arm linux系统中的目录路径必须和其在pc机上的安装路径相同

2  alsa-utils的移植

2.1  软件包下载

2.2  安装alsa-utils

  • 安装路径
  • 编译安装

         执行如下操作:

#cd  /home/alsa/

#tar -jxv -f alsa-utils-1.0.22.tar.bz2

#cd  /home/alsa/alsa-utils-1.0.22/

如果pkgconfig不是默认路径(alsa-lib安装路径/lib/),则可执行如下操作重新指定:

#PKG_CONFIG_PATH=”/usr/local/custom_install_arm/alsa_lib/lib/pkgconfig”

继续执行如下操作

#./configure –host=arm-linux  CC=arm-linux-gcc  –disable-alsamixer  –disable-xmlto  CPPFLAGS=-I/usr/local/custom_install_arm/alsa_lib/include  LDFLAGS=-L/usr/local/custom_install_arm/alsa_lib/lib  –with-alsa-prefix=/usr/local/custom_install_arm/alsa_lib/lib  –with-alsa-inc-prefix=/usr/local/custom_install_arm/alsa_lib/include  –prefix=/usr/local/custom_install_arm/alsa_utils

#make

#make install

该步骤完成之后,alsa-utils的相关文件就会安装到pc机中configure步骤先关参数指定的路径中。

2.3  移植alsa-utils

alsa-utils编译安装完成之后,进行如下操作

(1)  将参数–prefix指定的路径值/bin/目录中的文件移植到arm linux系统中的/usr/bin或其它目录中,如果移植到其它目录中,则需要将该目录添加到环境变量PATH指的执行路径中

(2)  将参数–prefix指定的路径值/sbin/目录中的文件移植到arm linux系统中的/usr/bin或其它目录中,如果移植到其它目录中,则需要将该目录添加到环境变量PATH指的执行路径中

(3)  参数–prefix指定的路径值/share/目录中的内容可以移植也可以不移植,如果移植,则移植到arm linux系统中的目录路径和其在pc中的安装路径相同







alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性.
  旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioctl,但操作结点更多.更复杂.因此在编程中是采用额外的库来操作的.
  
 
 
ALSA的体系结构
 
主要跟编程相关是
  其中alsa-driver,alsa-firwware是内核开发者所接触的东西,对于已经正常运行硬件,通常意味着这一部分已经整合到内核当中,无需修改.
   而alsa-utils主要是测试一些小工具.
   因此对于一个应用程序开发者,或者嵌入式应用开发者,接触到主要是alsa-lib编译出来的库 libasound.
 
 
 Linux ALSA 驱动测试
   以下是我在RHEL 5上测试ALSA的结果,在ARM或MIPS开发板上类似
 
   如果安装ALSA,在/proc会看到相应设备:
   用 cat /proc/asound/devices
    
[root@hxy alsa-lib-1.0.22]# cat /proc/asound/devices
  2:        : timer
  3:        : sequencer
  4: [ 0- 0]: raw midi
  5: [ 0- 1]: digital audio playback
  6: [ 0- 0]: digital audio playback
  7: [ 0- 0]: digital audio capture
  8: [ 0]   : control
       
 
   正常情况下,在你的/dev/snd会看到如下设备结点(有例外,就是内核驱动调整了结点位置)
用 ls -l /dev/snd

[root@hxy alsa-lib-1.0.22]# ls -l /dev/snd
total 0
crw——- 1 root root 116, 8 Mar  2 02:41 controlC0
crw——- 1 root root 116, 4 Mar  2 02:41 midiC0D0
crw——- 1 root root 116, 7 Mar  2 02:41 pcmC0D0c
crw——- 1 root root 116, 6 Mar  2 02:41 pcmC0D0p
crw——- 1 root root 116, 5 Mar  2 02:41 pcmC0D1p
crw——- 1 root root 116, 3 Mar  2 02:41 seq
crw——- 1 root root 116, 2 Mar  2 02:41 timer
 
  通常桌面版已经安装了alsa-utils.可以执行一下aplay -h,测试是否输出.如果可以来播入一下wav文件来测试整个环境是否正常工作.
 
以下是一些用alsa-utils测试样例
  • 播放wave文件
    •  aplay /mnt/nfs/test.wav
  • 变频播放,(以是以 44 KHz来播放音频)
    • aplay -D rate_44k /mnt/nfs/test.wav
  • 录音,以20秒的间隔(-d 20),立体声(-c 2),频率是 8000Hz来录制Wave格式音频
    • arecord -d 20 -c 2 -t wav -r 8000 -f “Signed 16 bit Little Endian” /mnt/nfs/test.wav
  • 测试混音播放(先是播放test1.wav,然后再同时播放test2.wav)
    • aplay -D plug:dmix_44k /mnt/nfs/test1.wav & 
    • aplay -D plug:dmix_44k /mnt/nfs/test2.wav
  • 设置放音增益(0 to 3)
    • amixer set Master 1
  • 设置录音音量(0-31)
    •  amixer set Line 10
 
 
 
嵌入式LINUX下 alsa库移植.
   在ARM-LINUX/MIPS LINUX下移植ALSA库,首先保存设备驱动结点正确无误.
   然后主要移植 alsa-lib
  
    alsa-lib的移植.
   解压 tar xvjf alsa-lib-1.0.22.tar.bz2
   cd alsa-lib-1.0.22
   生成Makefile
  
./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
 
在这里要注意 –with–configdir的选项.它将影响 include/config.h中的 ALSA_CONFIG_DIR 目录.
它默认是你的–prefix目录.这样在嵌入式交叉编译将是一个桌面机的路径,在libasoud.so运行.会提示,如果出来这个提示,一般都是ALSA_CONFIG_DIR路径错误造成的.
 

 ALSA lib pcm.c:2145:(snd_pcm_open_noupdate) Unknown PCM default

aplay: main:546: audio open error: No such file or directory

 
–with-plugindir也是同样道理了.它是设为 ALSA_PLUGIN_DIR 宏.
 
 编译 make
 安装 make install
 
开发板发布注意:
在开发板上发布alsa库.除了libasound.so库以外,必须还要把 alsa.conf发布到板上–with-configdir所指向目录下的alsa目录,否则还是会报”audio open error: No such file or directory”.
这个文件可以在make install后在你安装目录下的share找到alsa目录,把这个目录整个拷贝到开发板即可.
 
alsa-utils移植
  解压:tar xvjf alsa-utils-1.0.22.tar.bz2
   cd alsa-utils-1.0.22
生成Makefile
 
./configure –host=arm-linux –prefix=PWD/../../output/arm-linux --enable-static --enable-shared    --with-configdir=/usr/local/share --with-libiconv-prefix= PWD/../../output/arm-linux --enable-static --enable-shared    --with-configdir=/usr/local/share --with-libiconv-prefix= PWD/../../output/arm-linux CFLAGS=”-I PWD/../../output/arm−linux/include"LDFLAGS="−L P W D / . . / . . / o u t p u t / a r m − l i n u x / i n c l u d e " L D F L A G S =" − L PWD/../../output/arm-linux/lib -lasound -liconv”  –disable-alsamixer –disable-xmlto
 
注意这里LDFLAGS是必须,否则会找不到libasound.另外 alsamixer 是一个ncurses程序,基本上在嵌入式终端上很难移植.所以这里取消掉.–disable-xmlto也是因为找不到库.
 
编译 make
安装 make install


下载
http://www.alsa-project.org/main/index.php/Download

交叉编译 alsa-lib
./configure –host=arm-none-linux-gnueabi –prefix=/usr/share/arm-alsa   
make & make install                                                                                        

交叉编译 alsa-utils
./configure –host=arm-none-linux-gnueabi –with-alsa-inc-prefix=/usr/share/arm-alsa/include – with-alsa-prefix=/usr/share/arm-alsa/lib –without-alsamixer // avoid the ncurses lib

without 要改成disable
make

Copy lib to target board
cp -avr /usr/share/arm-alsa {$rootfs}/usr/share/arm-alsa

环境变量
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/share/alsa/alsa.conf                                         
未添加环境变量前出现的错误:
~ # ./aplay 
ALSA lib conf.c:2827:(snd_config_hook_load) cannot access file /usr/share/arm-alsa/share/alsa/cards/aliases.conf
ALSA lib pcm.c:1959:(snd_pcm_open_conf) Invalid type for PCM default definition (id: default, value: cards.pcm.default)
aplay: main:533: audio open error: Invalid argument
~ # ./aplay 
ALSA lib pcm.c:2090:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:533: audio open error: No such file or directory

MIPS:

alsa-lib-1.0.24.1配置编译

CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure –host=mipsel-linux –prefix=/opt/mips/alsa_lib/  –enable-shared –disable-Python

alsa-utils-1.0.24.2配置编译

CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure –prefix=/opt/mips/alsa_utils/ –host=mips –with-alsa-prefix=/opt/mips/alsa_lib/lib_1.0.24.1/lib/ –with-alsa-inc-prefix=/opt/mips/alsa_lib/lib_1.0.24.1/include/



CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure –host=mipsel-linux –prefix=/home/armmlinux/zdfwork/project/audio/alsa/output/mips-linux/  –enable-shared –disable-python  –with–configdir=/lib/


交叉编译其他程序:
Add included file in program: #include <alsa/asoundlib.h>
~# arm-none-linux-gnueabi-gcc -lasound -L/usr/share/arm-alsa/lib/ -I/usr/share/arm-alsa/include/ -o test my_test.c







一、PC端使用alsa
1)PC上使用alsa时,正常的安装alsa-lib和alsa-util即可,alsa-lib提供alsa音频程序运行所需要的库,alsa-util主要生成可执行程序,在程序运行时,在link里添加-lasound即可使用
2)PC端使用alsa编程,具体过程可以参考网上的链接,基本都是一样的
 二、将alsa移植到arm时的步骤
1.alsa交叉编译
>下载alsa-lib和alsa-util
>切换到alsa-lib目录下,执行
./configure –host=arm-linux-gnueabihf –prefix=/usr/local/share/arm-alsa –enable-shared –disable-python –with-configdir=/usr/local/share/alsa –with-plugindir=/usr/local/lib/alsa_lib CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld
解释:1)一般在makefile时,部分程序会首先执行配置文件进行配置,然后再生成makefile文件,注意不同工程的配置方案并不相同,这些命令不一定在其他配置文件中也能使用
          2)–host:为使用的交叉编译工具名,直接使用arm-linux也可以,根据PC上安装的交叉编译工具来决定;
          3)–prefix:即make install时程序安装的目录,可以根据自己的情况进行修改,不用拘泥
          4)–enable:开启功能  –disable:关闭功能
          5)–with-configdir:alsa配置文件所在目录,本目录要定好位置,交叉编译过后,移植到板子上时要和PC上路径一致。默认alsa配置文件会在安装目录里,不过根据经验,最好提出来,因为没有提出来的时候会报错
          6)–with-plugindir:alsa_lib所在目录,目前意义不明,可以自由定位,也可以默认安装
          7)CC,CXX,LD:我单独加的,即配置生成的makefile文件中的编译工具为这几项
>切换到alsa-util目录下,执行
./configure –host=arm-linux-gnueabihf –prefix=/usr/local/share/arm-alsa CFLAGS=”-I/usr/local/share/arm-alsa/include” LDFLAGS=”-L/usr/local/share/arm-alsa/lib -lasound” –disable-alsamixer –disable-xmlto –with-alsa-inc-prefix=/usr/local/share/arm-alsa/include –with-alsa-prefix=/usr/local/share/arm-alsa/lib CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ LD=arm-linux-gnueabihf-ld
解释:1)注意其中几个特殊的命令就行,不过不能少
>  1)移植,将/usr/local/share目录下的alsa,arm-alsa拷贝到开发板的/usr/local/share目录下,将/usr/local/lib目录下的alsa_lib拷贝到开发板上/usr/local/lib目录下
    2)将arm-alsa/lib目录下的文件拷贝到/lib目录下,sudo cp -rfa /usr/local/share/arm-alsa/lib /lib
    3)将arm-alsa/bin目录下的文件拷贝到/sbin目录下,sudo cp -rfa /usr/local/share/arm-alsa/bin /sbin
    4)将arm-alsa/sbin目录下的文件拷贝到/sbin目录下,sudo cp -rfa /usr/local/share/arm-alsa/bin /sbin
    5)添加环境变量,执行 sudo vi /etc/profile,在结尾添加export ALSA_CONFIG_PATH=/usr/local/share/alsa/alsa.conf,然后执行source /etc/profile
解释:  1)移植时一定要和PC上目录对应
           2)只需要库的话,alsa-util理论上不需要安装,也不用拷贝bin和sbin
           3)PC上使用eclipse的远程登录直接拷贝到板子上可能存在可执行文件不能执行的问题,所以要对bin,sbin目录下的可执行文件赋权限,执行sudo chomd 777
           4)cp命令中的-rfa是组合命令,r是可以循环层次拷贝文件夹,f是强制覆盖
           5)环境变量的添加方法有多种,这里使用的是一种,还可以在/etc/bash.bash.rc等目录中添加,具体的运行机制略有不同,但都可以成功,具体可以网上查阅
>如果开发板上有正常的声卡配置,有3.5mm声音输入,以上步骤完成后就可以了,程序应该能正常运行,可以执行aplay和arecord等命令来测试

2.使用USB麦克风时
>USB麦克接入后
     1)执行cat /proc/asound/cards,会输出接入声卡的信息,有默认系统的设备和自己的USB设备,对应有设备号
     2)执行ls /dev/snd,会输出当前的设备,其中USB设备对应的为controlC1,pcmC1D0p(与之类似),其中C1b表示card 1,D0表示driver 1
>执行sudo ~/.asoundrc,在其中添加
pcm.!default {
     type hw
     card 1
     device 0
}
ctl.!default {
     type hw
     card 1
     device 0
}
解释: 1).asoundrc这个文件可能不存在,创建一个即可,因为程序在调用alsa时,会进入alsa.conf这个配置文件,这个配置文件会默认搜索到~/.asoundrc
          2)card 1和driver 0要根据具体的编号来定
          3)ls /dev/snd目录下可能会没有设备,这个时候需要参考网上的建议,使用链接命令或者直接将设备拷贝到这个目录下
>重启操作系统,然后即可运行,可能程序在运行时需要使用管理员权限,不然会报错

3.待解决问题
到上述步骤为止,已经能够录音,不过还是有点问题,声音比较嘈杂,还有是单声道录音,这些可以通过amixer命令来解决,具体的可以网上查找,非常多参考资料

三、出错记录
1)情况1
ALSA lib confmisc.c:768:(parse_card) cannot find card ‘0’
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default
error opening PCM device: No such file or directory
出错原因:①交叉编译后拷贝配置文件时没有按照对应目录
                ②没有添加环境变量,或者添加环境变量后没有执行更新命令,/etc/profile对应的更新命令为source /etc/profile
                ③没有找到声卡,如果使用USB声卡时,默认没有加载成功
2)情况2
ALSA lib conf.c:3501:(snd_config_hook_load) cannot stat file/directory /usr/local/share/alsa/cards/aliases.confALSA lib conf.c:3501:(snd_config_hook_load) cannot stat file/directory /usr/local/share/alsa/cards/aliases.conf
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.default
error opening PCM device: No such file or directory
出错原因:①重新交叉编译,将alsa的配置文件单独放到一个位置,不要使用默认位置
3)情况3
ALSA lib pcm_hw_c(_snd_pcm_hw_open)invalid value for card
error opening PCM device: No such file or directory
出错原因:①.asoundrc中声卡的修改绑定有错误,需要重新按照正确的方式配置
4)情况4
error opening PCM device: No such file or directory
出错原因:程序可能需要管理员权限才能执行,将系统改为管理员权限运行或者执行sudo命令运行
5)情况5
PC下出错的原因一般只有两种,一种是没有安装好alsa,一种是在编译的时候没有添加链接库-lasound



四、参考链接:

1.alsa交叉编译
2.alsa编程
存为wav格式参考(有点小错误,仅供参考): http://blog.youkuaiyun.com/sea918/article/details/7249216
WAVE文件格式解析(当存储文件为wav格式时参考): http://www.cnblogs.com/liyiwen/archive/2010/04/19/1715715.html
一个简短的范例(有点小错误,仅供参考): http://blog.sina.com.cn/s/blog_705094cc010151pl.html
3.alsa配置相关(细节掌握)
有很多相关的查看声卡信息的命令(和系统有关,不一定都好使,选择使用) http://wiki.audacityteam.org/index.php?title=USB_mic_on_Linux






Linux平台Alsa库移植 alsa-lib移植 阅读详情

相关推荐

【Agent】在基于WSL2的Linux的ALSA输出音频

本文介绍了在WSL2(Ubuntu 22.04)中配置音频输出的方法。由于WSL2默认不包含音频驱动,需通过安装alsa-utils和配置PulseAudio来启用音频功能。具体步骤包括:1)安装alsa-utils;2)配置PulseAudio使用WSLg的音频服务;3)添加ALSA全局配置;4)安装必要的音频库。配置完成后,可通过aplay播放测试音频,或使用pyaudio进行Python音频编程。文中提供了完整的配置命令和Python示例代码,帮助用户在WSL环境中实现音频播放功能。

矢车菊二十七号 795

【VirtualBox】启动虚拟机报错:ALSA lib(声卡问题)

错误信息 ALSA lib confmisc.c:768:(parse_card) cannot find card '0' ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:...

HelloWorld 4956

嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得

ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一些。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。当然 ALSA也提供了类似于OSS的系统接口,不过ALSA的开发者建议应用程序开发者使用音频函数库而不是驱动程序的API

嵌入式与人工智能天地 5301

alsa-lib 交叉编译以及声卡驱动测试 (转)

l下载alsa-utils, alsa-lib,版本要一致 http://www.alsa-project.org/main/index.php/Download l编译alsa-lib ./configure --host=arm-none-linux-gnueabi --disable-python --prefix=/usr/share/arm-alsa/ 如果...

weixin_30632899的博客 525

ALSA-Lib 与 ALSA-Utils 快速移植:正点原子 IMX93 开发板音频系统配置攻略!

移植 ALSA 库可不是照着 README 跑命令那么简单,一步错,全盘皆输。今天咱们来详细拆解一下 ALSA-Lib 和 ALSA-Utils 的移植过程,让你的 IMX93 开发板瞬间“开口说话”!

正点原子Linux工程师 704

比亚迪开放平台接口实战:车身状态监测与智能车联应用开发

本文详细介绍了如何利用比亚迪开放平台的车身状态接口进行智能车联应用开发。通过核心类BYDAutoBodyworkDevice,开发者可以安全获取车辆VIN、车门车窗状态、蓄电池电压、方向盘转角等实时数据,并利用监听器实现状态实时响应。文章提供了从SDK集成、接口调用到典型应用场景(如远程车况检查、车队管理)的完整实战指南,助力开发者快速构建基于比亚迪车辆数据的创新应用。

weixin_29176179的博客 728

alsa 音频库的移植

alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性.  旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是 系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioctl,但操作结点更多.更复杂.因此在编程 中是采用额外的库来操作的.ALSA的体系结构官方主页 http://www

woxiaozhi的专栏 2175

药物重定位实战:如何用反向找靶技术挖掘老药新用(附Python代码示例)

本文详细介绍了药物重定位中的反向找靶技术,通过分子相似性计算、机器学习模型和结构对接等方法,挖掘已有药物的新治疗潜力。附Python代码示例,帮助读者快速实现从分子结构到潜在靶标的智能预测,显著提升药物研发效率。

weixin_28726671的博客 259

Alsa 音频库的移植

Alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进,性能更好,支持多个播放源等。但相应的,增加的编程的复杂性。

houxiaoni01的博客 3137

STM32F1的USB接口-自定义HID

设置USB VID:1155 PID :22352。

chilian12321的博客 839

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

alsa音频相关文件的移植

情况简介: ALSA 是目前 Linux 系统上大量采用的音频设备库,通过 Alsa 架构能分离驱动和应用的开发。  有了 Alsa 内核驱动,我们还需要 Alsa Lib 和 Alsa Util 的支持,这 3 者的关系如下图所示: alsa-driver:alsa的驱动程序 alsa-lib:     应用程序调用的API函数 alsa-utils:  alsa的应用程序   移

yuanlu837的专栏 1536

zblog mysql数据库无法连接_ZBlog博客网站错误:MySQL数据库无法连接

前言前天搭建的博客网站,睡醒一觉起来网站挂逼了,其间无任何操作。主页都进不去,提示“MySQL数据库无法连接”,无论怎么刷新重启服务器都没用。最终从中午1点搞到凌晨2点,皇天不负有心人终于解决了。其实问题很简单,只是没这方面的经验,走了很多弯路。我本人并不是搞WEB的,搞这个博客纯碎就是玩玩罢了。处理这个问题的时候查了很久的资料,都是一些没太大意义的,无非就是让你改zb_user/c_option...

weixin_34691461的博客 2205

ALSA音频的移植,编译与测试

ALSA是目前Linux系统上大量采用的音频设备库,通过Alsa架构能分离驱动和应用的开发。Alsa为上层提供API的同时,也为下层提供了接口,在内核配置的时候指定“支持Alsa”就能得到内核支持,具体位置为: Menuconfig -> Device Drivers -> Soundcard support -> Advanced Linux Sound Architecture

u010871058的专栏 839

红队攻防渗透技术实战流程:云安全之云原生安全:特权模式和挂载模式

红队云攻防实战1. 什么是云 1. 什么是云

HACKONE的博客 575

【WRFDA运行第五期】运行 OBSGRID 客观分析

运行 OBSGRID 客观分析

WW、forever的博客 1049

ALSA音频库移植应用

一、简述 本文档记录自己在移植应用alsa库的大致流程,方便自己以后阅读回忆,同时给需要做相同开发的后来者提供一点经验; 二、所需站点 1. alsa官网:AlsaProjecthttps://www.alsa-project.org/ 2. alsa库下载页面:Index of /files/pub/lib/https://www.alsa-project.org/files/pub/lib/正常我们只要lib库就好了,这里附一份目前最新的1.2.5.1版本供访问不了外网的同学...

echodreamers的博客 1106

华为OD机试双机位C卷-热点网站统计 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 热点网站统计,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。 华为od机考真题 - 热点网站统计。

qq_45776114的博客 779

alsa的动态库安装在哪里_alsa 音频库的移植

alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性.旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioctl,但操...

weixin_32770297的博客 378

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

arm移植alsa音频库

arm移植alsa音频库 1,下载alsa库的源码文件 alsa源码文件下载链接 2,编译alsa库 ./configure --host=arm-linux-gnuebihf --prefix=/usr/local/alsa_lib --disable-python --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib make make install 3,把头文件和库文件拷贝到项目下进行加载使用即可。 -L

烫手的热山药的博客 407

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

移植ALSA音频工具

linux移植ALSA

qq_56637761的博客 963

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux声卡驱动框架ALSA-Linux音频的移植 qt下音频播放

上文介绍了alsaLinux应用框架图。首先需要对硬件的驱动的移植,alsa库的添加,在该基础上可在Linux上调用命令行gplay-1.0 xxx.mp3播放音频。 驱动的移植参考 zlg的文档 https://manual.zlg.cn/web/#/16?page_id=3823 应用笔记(Linux)/音频使用/移植SGTL5000 按照该文档可进行移植; FSL_GPLAY_01.00_LINUX build on Nov 28 2019 12:29:30 [h]display

u013921164的博客 983
上一篇: Linux下TI omap芯片 MUX 配置分析(以AM335X芯片为例)
下一篇: ALSA编程细节分析---Linux 声音调节
Programer_Y
博客等级 码龄9年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值