创建 udev 规则

创建 udev 规则

我一直通过我的 Acer 720c Chromebook 使用 crouton。另外,我还有一个我喜欢搭配使用的外接显示器,ASUS VS247。该特定监视器具有音频直通功能,但没有扬声器。这会混淆 Chrome 操作系统通过显示器输出音频。

这通常根本不是问题,因为我可以在设置中切换它。但是,除非显示器在 Linux chroot 上处于本机分辨率,否则音频将翻转回使用显示器作为声音设备。

alsamixer我尝试在 Chrome OS shell 和 Linux chroot 中进行修改,但没有成功。有什么方法(最好在 Chrome 操作系统中,但不是必需的)始终将 Chromebook 扬声器设置为默认音频设备?

答案1

有趣的是,我什至没有想过看看 Chome OS 中是否有 alsamixer,udev 工具也可用。您应该尝试创建一个 udev 规则来忽略此设备,如中所述使用 udev 告诉 PulseAudio 忽略 USB 设备作者:Jamie Nguyen(或将内核模块列入黑名单,如下进一步建议):

创建 udev 规则

您的系统应该已经在/lib/udev/rules.d目录中定义了 udev 规则,例如90-pulseaudio.rules.还应该有一个/etc/udev/rules.d目录,您可以在其中定义自己的规则。

规则按词汇顺序进行解析。创建一个名为 的文件/etc/udev/rules.d/89-pulseaudio-usb.rules,以便在之前解析它90-pulseaudio.rules(尽管如果事情没有按预期工作,您可能必须尝试编号)。

在您喜欢的编辑器中打开文件并创建规则。使用之前的idVendoridProduct数字来唯一匹配您的 USB 设备,然后设置一个环境变量来告诉 PulseAudio 忽略该设备:

ATTRS{idVendor}=="1852", ATTRS{idProduct}=="5110", ENV{PULSE_IGNORE}="1"

[…]

重新启动您的系统,PulseAudio 将不再确认您的 USB 设备存在。

… 或者如何在不重新启动的情况下重新加载 udev 规则? 当然,问题是您问的不是 USB 设备,很可能是 HDMI。下列规则可能有用,但我没有 HDMI 音频设备来测试:

SUBSYSTEM=="drm", ACTION=="change", ENV{PULSE_IGNORE}="1"

您还可以尝试按照此建议将相应的内核模块列入黑名单例子。我认为默认情况下你无法对 Chrome 操作系统进行这些更改,我在 mount 的输出中发现没有状态分区可以让我进行此类更改,因此你必须在 chroot 中进行。

相关内容