쓸모없이 자리만 차지하고 있던 PC 부품 모아 쓸만한 스트리밍 박스를 만들었다. 어쩌다보니 잘 쓰고있던 PC 스피커를 여기에 붙였다. 이 유선 스피커는 가격은 싼데 성능은 괜찮다. 몇년전 블루투스 보세 스피커를 20만원에 구입했지만 비싸단 생각을 계속했고, 값싼 스피커와 차이나지 않는다. 보세 스피커는 크기도 작고 한 개인데, 싸구려 스피커는 두 개에다 크다. 게다가 배터리 걱정도 없다. 보세 스피커는 캠핑용인데, 한번도 가본적 없다. 요 놀고있는 가성비 높은 스피커를 네트웍에 붙이기로 했다.
난 서버에 음악을 몽땅 넣어놓고 사용한다. Plex를 서버에서 굴리는데 정말 괜찮다. 스마트폰에서는 Plex App으로 서버 파일을 스트리밍으로 듣는다. 일반 PC에서는 웹 브라우저로 접속하여 음악을 들을 수 있다. 처음에는 스마트폰 앱을 만들어 구형 스피커에 접속된 PC 웹 브라우저를 직접 제어하려 했다. 그런데 Plex 개발사는 이런 API를 제공하지 않았다. 많이 찾았지만 결국 못찾았다. 누군가 CLI 앱을 만들었지만 사용할 수 없었다. 결국 Plex로 어떻게 하는 방법을 포기했다.
콘솔에서 실행할 수 있는 음악 재생기를 찾았다. PC에 ssh로 접속하여 음악 재생기를 실행하면 PC 스피커로 출력되기 때문이다. xhost도 찾았는데 요놈은 내가 접속한 PC쪽에 출력을 내보낸다. 역시 인터넷에 능력자가 많다. 이 사람이 만든 CLI 플레이어 cmus를 활용하기로 했다. 예상대로 ssh로 접속하면 PC쪽 스피커로 출력된다.
구매 비용을 아끼다보니 PC에 SSD를 붙였지만 용량이 작다. 내 기억으론 10GB도 안되는 중고 하드디스크를 구했었다. 음악 파일이 꽤 용량이 나가는데 PC로 매번 내다 들을 음악을 받기 귀찮다. 이 문제를 해결하려다 보니 ssh로 네트웍 스토리지를 접속하여 마치 내 하드디스크인양 사용 가능한 sshfs를 찾았다. 리눅스 만세다.
매 부팅 때 mount하게 fstab을 수정한다. 아래는 기본 문법인데 사용하려면 좀 수정해야 한다.
userNameHere@FQDN_OR_IP_HERE:/path/to/source/ /local/mountdir/ fuse.sshfs defaults,_netdev 0 0
ssh로 연결할 때 login 패스워드를 않넣기 위해서는 key chain 로그인으로 변경해야 한다. 이 방법을 사용하면 보안도 강화된다. fstab에 설정하려면 private key 위치를 지정해야 한다. allow_other를 넣어줘야 uid, gid를 제대로 잡나보다. 서버쪽에 cmus쪽 id를 새로 만들었는데, sshfs로 연결하면 mount한 디렉토리를 쓸 수 있다.ㅠㅠ. ro 옵션을 넣어준다. 대략 아래와 같이 /etc/fatab을 정했다.
"유저"@"도메인 이름":/"서버 디렉토리" "/클라이언트 디렉토리" fuse.sshfs defaults,_netdev,IdentityFile="개인키 위치",uid=1000,gid=1000,allow_other,delay_connect,ro 0 0
의지만 좀 있다면 유선 스피커 5만원, 라스베리 파이 4만원, 케이스 2만원. 약 10만원이면 하드웨어를 만들 수 있겠다.
KT가 설치한 공유기를 사용하는데, 여기에 PC를 물리다보니 외부에서 접속되지 않는다. IP도 접속 때마다 변경되는 듯 하다. 관리자로 접속하여 설정할 수 있을 듯한데 ID, 비밀번호를 몰라 들어가지 못한다. 나중에 시간되면 고객센터에 물어 좀 건드려봐야겠다.
와이파이로 접속, 실행 후 터미널을 깨도 다음 실행된다. 그러나 외부 주소로 접속하여 터미널을 깨면 pulseaudio를 재생할 수 없는 문제가 있다. 외부 주소로 하려면 screen으로 세션을 유지해야 한다.