Ubuntu20.04 安装声卡驱动
重装/更新 ALSA 和 PulseAudio
大多数“驱动问题”实际上是音频服务(PulseAudio)配置损坏。
sudo apt install --reinstall alsa-base alsa-utils pulseaudio libasound2
开启 Multiverse 软件源
sudo add-apt-repository multiverse
sudo apt update
安装 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
执行部署脚本
sudo ./install.sh v2.2.6
ls -l /lib/firmware/intel/sof*
保存并更新内核镜像
sudo update-initramfs -u
修改配置文件以防冲突
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
保存并更新内核镜像
sudo update-initramfs -u
检查物理静音
很多时候驱动正常,但内核默认关闭了扬声器放大器(Amplifier)。
在 Intel SOF 驱动架构中,这些 PGA (Programmable Gain Amplifier) 通道通常连接着实际的功率放大器。
解决方法:请在 AlsaMixer 界面中,使用方向键向右移动到 PGA1.0 到 PGA31.0 的每一个通道上,然后按向上方向键将它们的音量全部拉满(变红)。
alsamixer

验证驱动加载状态
dmesg | grep -i sof
正常输出: 应包含 SOF: firmware boot complete / Firmware info: version 2:2:0-57864 / ...

重启
sudo reboot
查找真实的声卡设备列表
aplay -l
如果看到 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

浙公网安备 33010602011771号