주말에 꽃삽질을 할 계획은 전혀 없었는데.. 하다보니 이렇게 됐다.
자.. 여기서 할 얘기는 뭘까?
현재 모니터가 2개인 상황이고, (당연히) 메인 보드에도 기본 사운드 출력이 있으며, USB DAC 까지 달려있다.
이 와중에, ‘기본 출력을 모니터#1 로 고정하고 싶다‘면, 과연 어떻게 해야 하려나??
늘 그렇듯, 삽질에 삽질을 거듭했다.
정규 방식
이를 위해서는 사운드 카드 상황을 알아내고, 기본 프로파일을 정한다음, /etc/pulse/default.pa 에 추가해줘야 한다.
기본 정보는 pacmd list-cards
명령으로 알아낼 수 있다.
pacmd list-cards 3 card(s) available. index: 0 name: <alsa_card.pci-0000_01_00.1> driver: <module-alsa-card.c> owner module: 7 properties: alsa.card = "2" alsa.card_name = "HDA NVidia" alsa.long_card_name = "HDA NVidia at 0x91080000 irq 17" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:01:00.1" sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card2" device.bus = "pci" device.vendor.id = "10de" device.vendor.name = "NVIDIA Corporation" device.product.id = "0fb9" device.product.name = "GP107GL High Definition Audio Controller" device.string = "2" device.description = "GP107GL High Definition Audio Controller" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" profiles: output:hdmi-stereo: Digital Stereo (HDMI) 출력 (priority 5900, available: unknown) output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) 출력 (priority 5700, available: unknown) output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) 출력 (priority 5700, available: no) output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) 출력 (priority 600, available: no) output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) 출력 (priority 600, available: no) output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) 출력 (priority 5700, available: no) output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) 출력 (priority 600, available: no) output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) 출력 (priority 600, available: no) output:hdmi-stereo-extra4: Digital Stereo (HDMI 5) 출력 (priority 5700, available: no) output:hdmi-surround-extra4: Digital Surround 5.1 (HDMI 5) 출력 (priority 600, available: no) output:hdmi-surround71-extra4: Digital Surround 7.1 (HDMI 5) 출력 (priority 600, available: no) output:hdmi-stereo-extra5: Digital Stereo (HDMI 6) 출력 (priority 5700, available: no) output:hdmi-surround-extra5: Digital Surround 5.1 (HDMI 6) 출력 (priority 600, available: no) output:hdmi-surround71-extra5: Digital Surround 7.1 (HDMI 6) 출력 (priority 600, available: no) off: 끄기 (priority 0, available: unknown) active profile: <output:hdmi-stereo> sinks: alsa_output.pci-0000_01_00.1.hdmi-stereo/#4: BenQ sources: alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor/#4: Monitor of BenQ ....
현재 active profile 은 output:hdmi-stereo
로 되어 있다. pavucontrol 에서 이게 아닌 다른 출력을 fallback 으로 설정해놓아도 전원을 껐다가 다시 켜면 자꾸 얘가 기본값이 되어 버린다.
내가 원하는 건 이게 아니고, output:hdmi-stereo-extra1
인데..
Archi 에 따르면, ~/.config/pulse/default.pa 에 다음과 같이 설정을 추가하면 된다고 한다.
.include /etc/pulse/default.pa set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1 set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
흠..?
‘흠’이 들어간 이유는, 잘 안됐기 때문이다.
확실하진 않은데, 이게 잘 되지 않으면, ~/.config/pulse/
안의 cookie 와 db* 파일을 지워보자.
그리고 나서 재시동하니 된다. (이게 이거 저거 하다 얻어 걸린 거라 확신은 없다.)
헌데, 이게 매번 성공하지는 않는다. 때에 따라 안될 때가 있다.
왜 잘 안될까? 설정 자체엔 문제가 없었다. ~/.config/pulse/default.pa 에 넣어놓은 다른 옵션은 내가 원하는대로 실행되었다. 물론, /etc/pulse/defualt.pa 에 넣어도 안되긴 마찬가지.
** .include /etc/pulse/default.pa
행이 없으면, pulseaudio 가 실행되지 않는다. 아니면, /etc/pulse/default.pa 를 ~/.config/pulse/ 에 복사해서 넣고, 명령을 추가해야한다.
만약, 이 방식이 도무지 작동하지 않는다면, 아래 편법(?)을 써본다.
꽃삽질 방식
default.pa 에 넣는 set-card-profile
는, 일반 명령으로도 사용 가능하다.
pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1 pacmd set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
해서, 그냥 저 명령을 시스템 시작 시에 시작하도록 해줬다.
~/.config/autostart-scripts/pulse-profile
라는 파일을 만들고, 실행권한을 준다음, 위 명령을 넣어줬다.
끝! 내가 원하는대로 잘 작동한다.
왜 default.pa 에선 안됐는지 알 수가 없네..
그냥 양쪽에 다 넣는 방법이 지금으로선 제일 확실하다.