CachyOS 下机械革命星耀 14 麦克风可用、扬声器无声的解决方法

我使用的是机械革命星耀 14(P916F-STX,AMD Strix Point 平台)。在 CachyOS 中,默认音频配置下内置麦克风无法正常录音:输入音量条固定在某个位置,录音文件中只有一声“嗒”。

后来将 Ryzen 声卡的配置切换为“专业音频(Pro Audio)”后,麦克风可以正常工作,但内置扬声器随之没有声音。检查发现,Pro Audio 模式虽然正确暴露了 ALC256 的原始 HDA 录音设备,但不会自动完成 UCM 配置中的扬声器路由初始化,导致 ALSA 的扬声器开关处于关闭状态。

下面是我的解决方法。

1. 切换为 Pro Audio

打开 KDE 的“系统设置 → 声音”,找到 Ryzen HD Audio Controller,将配置文件切换为:

专业音频(Pro Audio)

也可以安装并使用 pavucontrol,在“配置”页面完成同样的切换。

切换后,输入设备通常显示为:

Ryzen HD Audio Controller Pro

在我的机器上,此时内置麦克风已经可以正常录音。

2. 重新开启内置扬声器

执行以下命令:

amixer -c 1 sset Master 100% unmute
amixer -c 1 sset Speaker 100% unmute

然后确认扬声器开关已经打开:

amixer -c 1 sget Speaker

正常情况下,左右声道应显示为 [on]:

Front Left: Playback 87 [100%] [0.00dB] [on]
Front Right: Playback 87 [100%] [0.00dB] [on]

如果 PipeWire 输出仍被静音,可以先运行 wpctl status 找到 Ryzen HD Audio Controller Pro 的输出编号,再执行:

wpctl set-mute <输出编号> 0
wpctl set-volume <输出编号> 1.0

注意:PipeWire 的设备编号可能在重启后变化,不要直接照抄别人的编号。

3. 验证麦克风和扬声器

先播放一段音频确认内置扬声器有声音,然后录制几秒人声:

arecord -D pipewire -f S16_LE -r 48000 -c 2 -d 5 /tmp/mic-test.wav
aplay /tmp/mic-test.wav

如果两者都正常,说明 Pro Audio 的录音路径和 ALSA 扬声器通道已经可以同时使用。

4. 让扬声器状态在重启后恢复

先尝试保存当前 ALSA 混音器状态:

sudo alsactl store

如果系统重启后扬声器仍会重新静音,可以创建一个用户级 systemd 服务,在登录后自动执行解静音命令。

创建文件:

mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/xingyao-audio-fix.service

写入:

[Unit]
Description=Enable MECHREVO Xingyao 14 internal speakers
After=pipewire.service wireplumber.service

[Service]
Type=oneshot
ExecStart=/usr/bin/amixer -c 1 sset Master 100%% unmute
ExecStart=/usr/bin/amixer -c 1 sset Speaker 100%% unmute

[Install]
WantedBy=default.target

启用服务:

systemctl --user daemon-reload
systemctl --user enable --now xingyao-audio-fix.service

systemd 服务文件中的百分号需要写成 %%,这是容易遗漏的一点。

原因说明

这台机器同时暴露了 AMD ACP-PDM 数字麦克风和 Realtek ALC256 HDA 音频路径。默认 HiFi/UCM 配置会选择 ACP-PDM 数字麦克风,但在当前 Linux 驱动下,该设备可能持续输出 32 位饱和值,表现为音量条固定、录音只有一声“嗒”。

Pro Audio 模式直接暴露原始 HDA PCM 设备,使 ALC256 的录音路径能够工作;代价是它不再自动管理扬声器端口,因此需要手动开启 Speaker Playback Switch。

这个方法在以下环境中排查得出:

机型:MECHREVO XINGYAO Series-P916F-STX
声卡:Realtek ALC256,AMD ACP70
系统:CachyOS / KDE Plasma
音频服务:PipeWire + WirePlumber

不同型号的声卡序号不一定是 1。如果命令提示找不到声卡,请先运行 cat /proc/asound/cards,再把命令中的 -c 1 改成 ALC256 对应的编号。

回滚

如需恢复原配置,在系统声音设置中将声卡 profile 切回 Play HiFi quality Music。如果创建了自动修复服务,可以执行:

systemctl --user disable --now xingyao-audio-fix.service
rm ~/.config/systemd/user/xingyao-audio-fix.service
systemctl --user daemon-reload
posted @ 2026-09-21 21:26  GOKORURI  阅读(43)  评论(0)    收藏  举报