kernel的config加上 CONFIG_SND_ALOOP=y ,aplay不能播放声音

news2024/12/26 11:03:07

概念:CONFIG_SND_ALOOP

CONFIG_SND_ALOOP 是 Linux 内核配置选项之一,用于启用 ALSA Loopback 驱动程序。

ALSA(Advanced Linux Sound Architecture)是 Linux 上的音频架构,提供了一个统一的音频接口,使应用程序可以与音频硬件进行通信。而 ALSA Loopback 驱动程序是 ALSA 的一部分,它允许将音频流从一个 ALSA 设备传递到另一个 ALSA 设备,实现音频的回环或路由功能。

当启用 CONFIG_SND_ALOOP 选项时,内核会编译并加载 ALSA Loopback 驱动程序模块(snd-aloop.ko),使其可用于创建虚拟的 ALSA 设备,从而实现音频的回环或路由。这对于一些特定的应用场景非常有用,比如测试、音频处理等。

要启用 CONFIG_SND_ALOOP 选项,你需要修改内核配置文件(通常为 .config)中的相应项,并重新编译内核。具体的修改方法可能因不同的内核版本和发行版而有所不同,建议查阅相关的内核文档或社区资源以获取详细的指导。

kernel的config加上 CONFIG_SND_ALOOP=y ,aplay不能播放声音

在 Linux 内核配置中启用 CONFIG_SND_ALOOP 选项会启用 ALSA Loopback 驱动程序,它允许创建虚拟音频设备以进行音频流的循环回放。但是,启用 CONFIG_SND_ALOOP 并不意味着该虚拟设备会自动连接到物理音频设备用于播放声音。

为了将 ALSA Loopback 设备连接到物理音频设备,需要通过 ALSA Mixer 工具进行配置。以下是使用 alsamixer 命令连接 ALSA Loopback 设备到物理音频设备的步骤:

  1. 安装 alsa-utils 包(如果未安装):
sudo apt-get install alsa-utils
  1. 打开 alsamixer
alsamixer
  1. 按 F6 键选择要控制的音频设备。

  2. 使用左右箭头键选择 “Loopback PCM” 或类似名称的通道。

  3. 使用上下箭头键将音量调到适当的水平。

  4. 可能需要按下空格键打开或关闭通道。

  5. 按 Esc 键退出 alsamixer
    在这里插入图片描述

完成上述步骤后,ALSA Loopback 设备应该已经连接到物理音频设备,并可以使用 aplay 命令播放音频文件。
查看节点:

[root@RK356X:~]# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: rockchiprk809co [rockchip,rk809-codec], device 0: fe410000.i2s-rk817-hifi rk817-hifi-0 [fe410000.i2s-rk817-hifi rk817-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: rockchipes7202 [rockchip,es7202], device 0: fe440000.pdm-es7202 pdm 0 es7202 pdm 0-0 [fe440000.pdm-es7202 pdm 0 es7202 pdm 0-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[root@RK356X:~]#

这里用rk809-codec播放
参数解析
-D 指定了录音设备,1,0 是card 1 device 0的意思

[root@RK356X:~]# aplay -D hw:1,0  /root/bell.wav
Playing WAVE '/root/bell.wav' : Signed 16 bit Little Endian, Rate 11025 Hz, Stereo
Warning: rate is not accurate (requested = 11025Hz, got = 8000Hz)
         please, try the plug plugin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

雷军写的代码上热搜了

“雷军写的代码”一词突然上了微博热搜: 一瞬间,我想起了这张图: 到底发生了什么,好奇的我点进去一看,原来是因为雷军预告年度演讲的微博里配了一张海报: 这张海报信息量非常大,一眼就能看到有很…

如何使用Vue和C++实现OJ《从零开始打造 Online Judge》

课程简介 课程链接:https://www.lanqiao.cn/courses/20638 邀请码:x8pGd60V 本课程采用前后端分离架构,基于 Vue.js 和 C 技术,从零开始打造 Online Judge。 课程介绍 OJ 是 Online Judge 系统的简称,用来在线检测…

算法通关村第3关【白银】| 双指针思想

1. 双指针思想 双指针不仅指两个指针,也可以是两个变量,指向两个值。 有三种类型: 快慢型:一前一后对撞型:从两端向中间靠拢背向型:从中间向两端分开 2. 删除元素专题 2.1原地移除元素 (1)快慢指针 思…

我的创作纪念日(128天)

机缘 CSDN账号创建已有3年了,本篇是第一篇纪念文。。。有点偷懒的感觉了。。。 从第一篇文章的发布,到现在已经过了128天了,回想起当时发布文章的原因,仅仅只是因为找不到合适的云笔记,鬼使神差的想到了CSDN&#xff…

第十一课:Qt 快捷键大全

功能描述:Qt 中的快捷键查看方式和自定义快捷键 一、快捷键查看/自定义 Qt Creator 中提供了各种快捷键,如需查看或自定义快捷键,选择菜单栏“工具” -> “选项” -> “环境” -> “键盘”。 快捷键按类别列出,可以在过…

Windows 11 + Ubuntu20.04 双系统 坑里爬起来

ThinkPad x390 安装双系统,原有的磁盘太小,扩充了磁盘重新装系统,出现的问题,加以记录。 1. windows和ubuntu谁先安装,两个都可以,一般建议先安装windows,后安装ubuntu 2. 安装windows后&…

小O网兜0231新版 -- 用户入门指南

本文介绍小O网兜入门功能,通过本文用户能够掌握数据采集的基本操作,使用软件提供的模板任务采集指定页面的数据。 基本概念 任务文件:新建任务文件,扩展名为 xop,任务的配置、采集数据等信息保存在该文件中&#xff…

Android进阶之路 - 去除EditText内边距

正如题名,在Android中的EditText是自带内边距的,常规而言设置背景为null即可,但是因为使用了并不熟悉的声明式框架,本是几分钟解决的事儿,却花费了小半天~ 其实这只是一个很简单的小需求,不想却遇到了一些小…

WIN+ALT+R无法开始录制

winr打开注册表regedit 依次展开 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR 修改AppCaptureEnabled数值为1 wing打开 Xbox Game Bar点击捕获 WINALTR开始录制

Zabbix技术分享——Proxy加密代理:共享密钥(PSK)加密与证书加密

一、加密介绍 Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密,加密方式有预共享密钥(PSK)和证书加密,加密配置是可选项,一些proxy和agent可以使用证书认证…

PHP-MD5注入

0x00 前言 有些零散的知识未曾关注过,偶然捡起反而更加欢喜。 0x01 md5 注入绕过 md5函数有两个参数,第一个参数是要进行md5的值,第二个值默认为false,如果为true则返回16位原始二进制格式的字符串。意思就是会将md5后的结果当…

网络

mcq Java 传输层:拆分和组装,完成端到端的消息传递,流量控制,差错控制等 网络层: 寻址、路由,复用,拥塞控制,完成源到宿的传递。 显然A选项是错误的,有流量控制的是传输层…

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥,作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示:这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式,它结合了ECC抵御标准攻击的安全性和…

MySQL的安装以及卸载

下载官网 https://www.mysql.com/ 切到下载tab页 找到 MySQL Community Server 或者 MySQL Community (GPL) Downloads --> MySQL Community Server 点击download按钮: 点击download进入下载页面选择No thanks, just start my download就可以开始下载了。 下…

sqlserver数据库导出到mysql

爱到分才显珍贵,很多人都不懂珍惜拥有,只到失去才看到,其实那最熟悉的才最珍贵的。 这里只介绍一种方式,有很多的方式。 1.使用Navicat 安装 下载 2.工具 数据传输 3.选择源和目标 然后开始 4.最好导入前备份一下库

C++学习系列之动态库报错问题

C学习系列之动态库报错问题 啰嗦问题解决总结 啰嗦 动态库已建,C文件一加,全是报错,一片红。 问题 解决 解决办法就是加标头 总结 小问题,记录一下。

海外网红营销:指标选择与ROI评估,量化推广效果的关键

随着互联网的快速发展,海外网红营销已经成为了品牌推广和营销的重要策略之一。网红作为社交媒体平台上备受关注的个体,拥有庞大的粉丝群体和影响力,成为了品牌推广的有力助手。然而,如何科学地衡量海外网红营销的效果以及投入产出…

GraphQL strawberry的使用回顾和体会

GraphQL vs RESTful 简单来说GraphQL 比起 RESTful 集成额外一些功能 出入参校验、序列化 (简化后端编程)自由可选的返回数据字段 (简化一些多余接口开发和沟通联调成本) 这些都是优点了。 开发效率在项目初期是很重要的,需要快速原型化。 但是后期稳定后&#…

vscode | 开发神器vscode必会快捷键

目录 一、全局二、注释三、折叠四、光标相关五、选择六、行操作七、格式化八、放大/缩小九、代码缩进十、调整字符大小写十一、窗口和侧边栏十二、快速跳转(文件、行、符号)十三、其他配置项设置十四、自定义快捷键十五、快捷键大全图 Visual Studio Cod…

Kotlin 基础教程二

constructor 构造器一般情况下可以简化为主构造器 即: class A constructor(参数) : 父类 (参数) 也可以在构造器上直接声明属性constructor ( var name) 这样可以全局访问 init { } 将和成员变量一起初始化 data class 可以简化一些bean类 比如get / set ,自动生成copy 函数…