Ubuntu 24.04 Sound Issue(NO OUTPUT DEVICE)

2012년도에 구매한 노트북이 있다. i5-3210m으로, 못쓸 만큼 답답해지면 메모리 증설하고, 또 답답하면 HDD를 SSD로 바꾸고, 남는 HDD는 CD-ROM 자리에 달아주면서 아직까지 동작 중인 녀석이다.
운영체제 또한 다양하게 거쳐왔다. Windows Vista -> Windows 7 -> Windows 10, 그리고 최근 Ubuntu 24.04로 정착했다.
이 노트북은 2020년까지 메인으로 쓰다가, 메인 PC가 생긴 뒤로는 집안에서 원격용 Bastion 서버, SMB용, 공인인증서 용도로 다양하게 굴려지다 지금은 블로그용으로 학대당하는 중이다.
그리고 이 노트북은 한 가지 역할이 더 있었는데, 그건 TV와 연결해서 PC에 있는 영화나 유튜브를 트는 역할이었다.
그런데 Ubuntu를 설치하고 보니 이게 생각만큼 쉽지 않았다. 엄청나게 오래된 노트북 드라이버 때문인지, 설치하고 나서도 계속 이슈가 터지는 걸 겨우 잡았더니 이번엔 xrdp, smb 설정이 말썽이었다.
그리고 어제, TV에 노트북 화면은 잘 나오는데 소리가 안 나온다는 걸 깨달았다.
'멀쩡한 윈도우를 왜 날리고 이 삽질 중일까' 하는 후회를 했지만, 어쨌든 다시 Windows로 돌아갈 순 없으니 해결 방법을 찾아봤다.
결론부터 말하면, 내 보안 설정이 너무 취약해서 사운드가 안 들리는 거였다.
나 같은 경우, 매번 sudo
를 입력하기 너무 귀찮아서 아래처럼 특정 계정이 root 권한으로 모든 걸 컨트롤할 수 있도록 passwd
설정을 바꿔 썼다.
cat /etc/passwd
uid:x:0:0:comment:/home/nk:/bin/bash
근데 알고 보니, root는 보안상의 이유로 사운드를 실행할 권한이 없다고 한다. Ubuntu는 기본적으로 모든 오디오 관련 작업을 현재 로그인한 사용자 세션 안에서 처리하는데, 시스템 권한이 가장 강력한 root 계정이 사용자 세션의 오디오 서버에 마음대로 접근할 수 있다면 심각한 보안 문제(도청, 시스템 불안정 등)를 일으킬 수 있어서 일부러 막아놨다는 것이다.
그래도 일단 해결은 해야 하니 방법을 찾아봤다. ConditionUser=!root
항목을 주석 처리하면 된다는 걸 알게 됐다.
주석 처리할 파일들은 다음과 같다.
/usr/lib/systemd/user/pipewire-pulse.service
(#1번)/usr/lib/systemd/user/pipewire-pulse.socket
(#2번)/usr/lib/systemd/user/pipewire.service
(#3번)/usr/lib/systemd/user/pipewire.socket
(#4번)
Example)
cat /usr/lib/systemd/user/pipewire-pulse.service |grep root
#ConditionUser=!root
결과는 성공

하지만 나는 ubuntu 한영 전환 설정을 root 계정으로는 변경 되지 않는다는 찐빠같은 상황에 부딪치고 결국 root 권한 없는 일반 계정으로 동작 시키기로 했다.