如何在 Ubuntu 中重命名音频设备?

Ros*_*han 6 gnome sound pulseaudio

我有多个耳机连接到我的 Ubuntu 桌面,我想为它们命名一些有价值的名称,以便我可以在 Gnome 控制中心中看到它们并从中进行选择。目前它们被命名为这样的东西。

像这样命名的东西

我已经尝试过的事情:

使用 pactl 更改设备属性- 这会在 pavucontrol 中显示新名称,但不会在 Gnome 控制中心中显示。我已经改变了一切该死的属性,但 Gnome CC 中没有任何改变。

图片显示的输出设备名称为:

  1. 数字输出 (S/PDIF) - Corsair VOID PRO 无线游戏耳机

  2. 模拟输出 - Corsair VOID PRO 无线游戏耳机

  3. 数字输出 (S/PDIF) - Corsair VOID PRO 无线游戏耳机

  4. 模拟输出 - Corsair VOID PRO 无线游戏耳机

  5. 数字输出 (S/PDIF) - 内置音频

我希望第一个和第三个看起来不同,因为它们是两个不同的物理设备,第二个和第四个也是如此。

Ubuntu版本:20.04

小智 6

Gnome 控制中心(以及 pavucontrol)中的设备名称可以使用 udev 规则进行更改。有一个未记录的 udev 设备属性SOUND_DESCRIPTION,可以设置它来更改名称。

该属性在 PulseAudio 中读取。PulseAudio 将其值存储到卡的device.description属性中(如 所示pacmd list-cards)。该属性也是Gnome 的控制中心在显示音频设备时读取的值。

现在,假设这些耳机是 USB 设备,那么首先我们需要使用以下命令查找这两个耳机的供应商和产品 ID:

lsusb
Run Code Online (Sandbox Code Playgroud)

每个设备都有 id 值,其形式为vendor-id:product-id.

然后创建一个新的udev规则文件:

sudoedit /lib/udev/rules.d/my-pulseaudio.rules
Run Code Online (Sandbox Code Playgroud)

并添加内容:

ATTRS{idVendor}=="vendor-id-of-1st-device", ATTRS{idProduct}=="product-id-of-1st-device", ENV{SOUND_DESCRIPTION}="Foo Headset"
ATTRS{idVendor}=="vendor-id-of-2nd-device", ATTRS{idProduct}=="product-id-of-2nd-device", ENV{SOUND_DESCRIPTION}="Bar Headset"
Run Code Online (Sandbox Code Playgroud)

然后重新加载 udev 规则并重新启动 PulseAudio:

sudo udevadm control --reload-rules
sudo udevadm trigger -ssound
systemctl --user restart pulseaudio
Run Code Online (Sandbox Code Playgroud)

现在 Gnome 控制中心的名称应该已更改。

请注意,如果两个耳机具有相同的供应商和产品 ID,那么我们最终可能只是将两个设备重命名为相同的名称。在这种情况下,规则需要第三次ATTRS{?}=="?"检查以进一步区分它们。要查找设备具有哪些其他属性,请使用命令:

udevadm info /dev/snd/by-id/*
Run Code Online (Sandbox Code Playgroud)

尝试查找两个耳机之间具有不同值的属性,例如序列号。


小智 3

我找到了安装 pavucontrol 并启用模块设备管理器的解决方案。

安装 pavucontrol:

sudo apt install pavucontrol

然后启用模块设备管理器:

pactl load-module module-device-manager
Run Code Online (Sandbox Code Playgroud)

打开 pavucontrol:

pavucontrol
Run Code Online (Sandbox Code Playgroud)

右键单击要更改名称的“端口”下拉菜单并将其重命名: 示例

重命名: 重命名

那应该有效。