我正在尝试在NixOS主机上配置默认音频设备。
我的alsa设备因此是:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
我没有HDMI或数字音频设备;我只想使用常规的ALC1220模拟设备。
我目前在环境中(对于sox)设置了AUDIODEV=hw:1,0
,在vlcrc中设置了alsa-audio-device=sysdefault:CARD=Generic
。可以,但是显然是针对用户和应用程序的,这对于声明性(声明性?)是一个痛苦。
似乎应该可以在主机级别进行设置,例如,通过设置
sound.extraConfig =
''
pcm.!default {
type hw
card Generic
}
'';
在我的configuration.nix中,或者可能在配置pulseaudio。
我已经在NixOS Wiki(ALSA,Pulse),ArchLinux,Pulse documentation等其他站点以及StackOverflow之类的其他站点(例如, stackexchange),但我什么都没找到。
我已经尝试了以上内容及其变体;并且还尝试了有无脉冲但我什么都没找到。
仅仅能够在该卡上的所有设备上发出声音也是一件好事。
一如既往,所有指针都感激不尽。
更新:这是我的/etc/asound.conf
pcm_type.pulse {
libs.native = /nix/store/a3v4gh5lbb2g8fizq9xh8nbdp8qrvs6r-alsa-plugins-1.1.6/lib/alsa-lib/libasound_module_pcm_pulse.so ;
}
pcm.!default {
type pulse
hint.description "Default Audio Device (via PulseAudio)"
}
ctl_type.pulse {
libs.native = /nix/store/a3v4gh5lbb2g8fizq9xh8nbdp8qrvs6r-alsa-plugins-1.1.6/lib/alsa-lib/libasound_module_ctl_pulse.so ;
}
ctl.!default {
type pulse
}
(并且该模块是真实的):
$ ls -l /nix/store/a3v4gh5lbb2g8fizq9xh8nbdp8qrvs6r-alsa-plugins-1.1.6/lib/alsa-lib/libasound_module_ctl_pulse.so
-r-xr-xr-x 1 root root 33512 Jan 1 1970 /nix/store/a3v4gh5lbb2g8fizq9xh8nbdp8qrvs6r-alsa-plugins-1.1.6/lib/alsa-lib/libasound_module_ctl_pulse.so