博客地址:https://www.cnblogs.com/zylyehuo/
重装/更新 ALSA 和 PulseAudio
大多数“驱动问题”实际上是音频服务(PulseAudio)配置损坏。
- sudo apt install --reinstall alsa-base alsa-utils pulseaudio libasound2
复制代码 开启 Multiverse 软件源
- sudo add-apt-repository multiverse
复制代码 安装 Intel SOF 固件
较新的 Intel 声卡(如 Device 43c8)不再使用传统的 snd_hda_intel 驱动,而是依赖 SOF (Sound Open Firmware)。
- sudo apt install firmware-sof-signed
复制代码 手动部署 SOF 二进制固件【上一步失败则执行这步】
- wget https://github.com/thesofproject/sof-bin/releases/download/v2.2.6/sof-bin-v2.2.6.tar.gz
- tar -xvf sof-bin-v2.2.6.tar.gz
- cd sof-bin-v2.2.6
- sudo mv /lib/firmware/intel/sof /lib/firmware/intel/sof.bak
- sudo mv /lib/firmware/intel/sof-tplg /lib/firmware/intel/sof-tplg.bak
复制代码 执行部署脚本
- ls -l /lib/firmware/intel/sof*
复制代码 保存并更新内核镜像
修改配置文件以防冲突
- sudo gedit /etc/modprobe.d/alsa-base.conf
复制代码 在文件末尾添加以下内容,强制将 Intel 声卡设为 index 0
- # --- 修复 Intel Device 43c8 声卡 ---
- # 强制使用 SOF 驱动逻辑(1=自动, 3=强制SOF)
- options snd-intel-dspcfg dsp_driver=3
- # 解决部分机型下 Intel PCH 的驱动冲突
- options snd-hda-intel model=generic
复制代码 保存并更新内核镜像
检查物理静音
很多时候驱动正常,但内核默认关闭了扬声器放大器(Amplifier)。
在 Intel SOF 驱动架构中,这些 PGA (Programmable Gain Amplifier) 通道通常连接着实际的功率放大器。
解决方法:请在 AlsaMixer 界面中,使用方向键向右移动到 PGA1.0 到 PGA31.0 的每一个通道上,然后按向上方向键将它们的音量全部拉满(变红)。
验证驱动加载状态
正常输出: 应包含 SOF: firmware boot complete / Firmware info: version 2:2:0-57864 / ...
重启
查找真实的声卡设备列表
如果看到 sof-hda-dsp 或 Intel PCH,记住它的卡号 (card X) 和设备号 (device Y)。
通常 Intel 声卡是 card 0, device 0。
测试指令
- # 强制指定设备播放(假设是 card 1, device 0)
- speaker-test -D hw:1,0 -t sine -f 440 -c 2
复制代码
- speaker-test: 这是 ALSA (高级 Linux 声音架构) 标准套件中的测试程序。
- -D hw:1,0: 指定播放设备。
- hw 表示直接使用硬件驱动(Hardware)。
- 1 是声卡编号(Card ID)。在你的系统中,card 1 是 sof-hda-dsp(Intel 声卡)。
- 0 是设备编号(Device ID)。对于主板输出,通常是 0。
- -t sine: 指定测试音的波形类型。这里是 sine(正弦波),它会发出类似“滴——”的长鸣音。此外还可以选 pink(粉红噪音)或 white(白噪音)。
- -f 440: 指定声音的频率。440 Hz 是标准音高(A4),听起来比较清脆。
- -c 2: 指定声道数(Channels)。2 表示双声道(左右音箱)。
- ffplay -nodisp -autoexit /home/yehuo/unitree_G1_ws/src/assets/1.mp3
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |