- 볼루미오에서 재생하는 음악으로 시작하는 아침
- 볼루미오 설치 (라즈베리파이1 B+ 이상 필요. 라즈베리파이2 B 이상 권장)
- 라즈베리 파이2 또는 3 또는 라즈베리 파이 B+ 중의 2대 (대당 약 4만원)
(라즈베리 파이는 PC 본체에 해당되고, 전력 소모는 시간당 2.5와트에 지나지 않는다. 볼루미오는 운영체계인 Windows와 재생 프로그램이 합쳐진 형태.) - 라즈베리 파이에 넣을 2GB 이상의 마이크로SD 카드 2개 (4GB 이상 권장. 각각 3~5천원)
- 라즈베리 파이에 연결할 앰프와 스피커 2조 (와디아 151 미니 DAC 25만원. 아리스토크랫 복각통+6″ 유닛 30만원)
- 광/동축 출력 단자가 없는 라즈베리 파이에 부착하는 디지털 사운드 카드. 약 15,000원)
- 라즈베리 파이와 와디아 DAC를 연결하는 광 케이블 또는 동축 케이블(약 1만원) 중의 2개.
- DAC가 없는 라즈베리 파이에 부착하는 내장형 또는 외장형 DAC
- 케이스가 없는 라즈베리 파이를 담을 빈 명함 케이스(0원) 또는 전용 아크릴 케이스(4천원)나 알미늄 케이스(17,000원)
하지만 볼루미오2는 이 글에서 설명한 방법으로 원격 마운트를 하면 시동 후 5분쯤 지나야 원격 음원 파일을 재생할 수 있는 치명적인 단점이 있으므로, 이 문제가 해결될 때까지는 1.55판을 쓸 사용할 수밖에 없다.
- 집과 집 밖에서 사용할 2대의 라즈베리 파이에 볼루미오 1.55판 설치
- 집의 볼루미오에 마운트(연결)되어 있는 외장 하드를 원격 마운트하기
(하나의 외장 하드 음원 파일을 사용하여 집과 밖에서 음악 감상하기) - 파일로 저장한 재생 목록(playlists)을 공유하기
- 재생 목록(playlists)에 든 곡(파일)들을 하나의 폴더로 복사하기
- 볼루미오 1.55 설치용 이미지 파일을 받아서,
- 압축 푼 다음 .img 파일을 microSD 카드에 복원한다.
(2GB 이상의 microSD 카드가 필요하며, 4~8GB microSD 카드 추천. 복원하면 microSD 카드에 들어 있던 내용은 모두 지워지므로 필요한 자료가 있다면 미리 복사한 다음에 복원에 사용할 일) - 복원한 microSD 카드를 라즈베리 파이에 넣고 전원을 켜서, 라즈베리 파이 B+ 또는 라즈베리 파이2, 라즈베리 파이3에서 정상 작동 확인한다.
- $ diskutil list
(microSD 카드의 “disk숫자”를 확인한다. 여기서는 disk2로 가정.) - $ diskutil unmountDisk /dev/disk2
- $ sudo dd bs=1m count=3820 if=~/Downloads/Volumio1.55PI.img of=/dev/rdisk2주1)
- $ diskutil eject /dev/disk2
(터미널 명령어가 복잡하면, 간편한 유틸리티 프로그램을 받아서 사용해도 된다.)
- $ sudo -i
(root 계정으로 변경한 다음, 원본 이미지에서 3개의 초기 비번을 변경한다. 꼭 변경하고 다음 단계를~) - # passwd (root 계정의 비번을 새로 지정한다)
- # passwd pi (pi 계정의 비번을 새로 지정한다)
- # passwd volumio (volumio 계정의 비번을 새로 지정한다)
- $ sudo apt-get install rpi-update
- $ sudo rpi-update
- $ cd /boot
- $ sudo cp -a config.txt config.txt.orig
- $ sudo nano config.txt
- # 맨 아랫줄에 다음 내용 추가한 후 Ctrl+X, y, 엔터.
- max_usb_current=1
- $ sudo apt-get update
- “apt-get upgrade” 명령은 설치된 패키지들의 의존성이 깨지므로, 절대 실행하지 말 것.
- $ sudo apt-get install apt-utils
- $ sudo apt-get install vim
- $ sudo apt-get install locales
- $ sudo dd bs=1m count=3820 if=~/Downloads/Volumio1.55PI.img of=/dev/rdisk2
- “count=숫자” 부분에 2GB는 count=1910으로, 4GB는 count=3820으로, 8GB는 count=7630 정도로 지정하면 된다.
백업할 때에는 4GB까지만 백업해도 된다면: - $ sudo dd bs=1m count=3820 if=/dev/rdisk2 of=~/Downloads/backup_filename.img
- $ sudo nano /etc/ssh/sshd_config
- (공개된 “Port 22” 대신 “Port 2580” 등의 각자 보안상 지정한 숫자로 대체해 넣는다)
공개된 22번 포트로 지정되어 있을 경우에는 “ssh pi@ip주소”만 입력하면 외부에서 관리자 권한으로 접속할 수 있으므로, 남의 볼루미오로 만들어버릴 수 있으므로, 3개의 ID 비번도 바꾸고 포트도 자신만이 아는 포트 번호로 바꿔 놓는 것이 안전하다.
가령 “Port 2580″으로 지정하고 볼루미오를 재시작하면, 이제부터는 “ssh -p 2580 pi@ip주소”로 접속해야 하므로, 포트 번호를 모르면 접속 자체가 되지 않으며, 포트 번호가 맞다 하더라도 비번을 바꾸었으므로 볼루미오를 안전하게 나만 관리할 수 있게 된다.
- $ sudo apt-get update
- $ sudo apt-get install sshfs
- $ sshfs -o port=2580,allow_other,reconnect pi@ip주소_숫자.숫자.숫자.숫자:/mnt/USB /mnt/USB
(여기서 2580은 각자 보안상 필요한 숫자를 설정한 후에 대체해서 사용할 일.
무드 오디오에서는 마운트를 :/media/music /media/music 로 해야 하며, 자신의 무드 오디오에 /media/music 폴더를 만든 다음 권한 부여를 먼저 해 줘야 합니다.) - 또는 “ip 주소 숫자” 대신 도메인 이름을 사용할 수도 있습니다:주2)
$ sshfs -o port=2580,allow_other,reconnect pi@userid.iptime.org:/mnt/USB /mnt/USB
(풀이: 집의 /mnt/USB로 연결되어 있는 디스크를 나의 /mnt/USB에 연결된 디스크로 사용하라는 설정.
이렇게 하면 그 작은 라즈베리 파이를 인터넷에 연결하고 켜기만 하면 집에 있는 대용량 하드 디스크를 USB에 연결한 것과 같은 효과가 생긴다.)
- sudo nano /etc/rc.local
다음 내용을 추가합니다: - # Mount NAS
echo "자신이변경한비밀번호" | sshfs -o port=2580,allow_other,reconnect,password_stdin pi@ip주소_숫자.숫자.숫자.숫자:/mnt/USB /mnt/USB
(여기서 2580은 각자 보안상 위에서 지정한 숫자를 넣을 일)
또는 “ip 주소 숫자” 대신 도메인 이름을 사용할 수도 있습니다:주2) - # Mount NAS
echo "자신이변경한비밀번호" | sshfs -o port=2580,allow_other,reconnect,password_stdin pi@userid.iptime.org:/mnt/USB /mnt/USB
- $ sudo nano /etc/ssh/ssh_config
다음 내용을 추가하거나 줄 시작 부분에 있는 주석처리 기호 #을 제거합니다: - ServerAliveInterval 120
- $ sudo nano /etc/fuse.conf
다음 내용을 추가하거나 줄 시작 부분에 있는 주석처리 기호 #을 제거합니다: - user_allow_other
$ df -h
- ipTIME 공유기에서 집에 있는 라즈베리 파이의 IP를 나의id.iptime.org와 같이 기억하기 쉬운 도메인 이름으로 등록하는 법은, http://ccami.tistory.com/58 글을 참고하여 설정하기 바라며,
- 아울러 외부에서 ssh와 sshfs 접속할 때, 자신이 허용한 특정 포트만 접속을 허용하고 나머지 포트로는 접근 자체를 막는 방법(포트 포워딩 설정)에 대해서도 설명이 나와 있으니 참고하세요.
두 대의 볼루미오에서 재생목록 공유:
$ nano /etc/mpd.conf
“/var/lib/mpd/playlists” 부분을 찾아서 맨 앞에 주석처리 기호인 #을 추가하고, 그 다음 줄에 /mnt/USB/userid/playlists 정도로 재생목록 디렉토리를 변경하여 지정한다.
$ cd /mnt/USB
$ sudo mkdir share
$ cd share
$ sudo mkdir playlists
$ sudo chown -R userid:groupid /mnt/USB/share/playlists
$ sudo chmod 777 /mnt/USB/share/playlists
2. /var/lib/mpd/state 파일: 현재 재생목록이 저장된다. [Playlist] 탭을 누르면 보이는 곡들.
3. /var/lib/mpd/playlists/ 폴더: [Playlist] 탭에서 파일이름을 입력해서 저장하면, 입력한 이름.m3u라는 파일들이 저장되는 폴더.
재생목록에 있는 음원 파일들을 하나의 폴더로 복사하는 명령어: # cat playlist.m3u | xargs -I {} cp -av "/prefix_source_path/{}" target_folder/ 의미: # cat (재생목록_파일이름) | xargs -I {} cp -av "(원본_재생목록의_파일_경로_앞에_추가할_절대경로)/{}" (복사할_대상_경로)/ 실제 보기: 1)재생목록_파일이름: test.m3u 2)test-playlist.m3u 내용: USB/music/박효신-야생화.mp3 USB/music/Etc/70-80/김수철-정녕 그대를.wav USB/music/Classic/The DUO Guide to Classics CD1.flac 3)실제 음원 파일이 있는 경로: /mnt/USB/music/... 4)복사할 대상 폴더이름: 현재 경로의 gather/ 폴더 5)이 경우에 맞는 명령어: # cat test-playlist.m3u | xargs -I {} cp -av "/mnt/{}" gather/ 6)이 명령의 실행 결과: ‘/mnt/USB/music/박효신-야생화.mp3’ -> ‘gather/박효신-야생화.mp3’ ‘/mnt/USB/music/Etc/70-80/김수철-정녕 그대를.wav’ -> ‘gather/김수철-정녕 그대를.wav’ ‘/mnt/USB/music/Classic/The DUO Guide to Classics CD1.flac’ -> ‘gather/The DUO Guide to Classics CD1.flac’ 7)파일질라와 같은 SFTP 프로그램으로 접속하여 gather 폴더에 복사된 음원 파일을 내 피시로 복사(다운로드)하여 자신의 스마트폰에 복사해 넣고 들으면 된다. 8)현재 재생목록(Playlist 탭에 보이는 곡들)을 복사하려면 *.m3u 파일 대신 state 파일을 지정하면 된다.
= 그밖의 사항들 =
-
# HEOS HEONE DAC
Settings > Playback Options > Audio Output > I2S DAC : none.
Settings > Playback Options > Audio Output > Output Device : X20 (HEOS USB DAC)
Settings > Playback Options > Audio Output > I2S DAC : Hifiberry.
Settings > Playback Options > Audio Output > Output Device : sndrpihifiberry (HEOS 내장 DAC)
# Hifiberry Analog DAC (Analog Output)
Settings > Playback Options > Audio Output > I2S DAC : ON
Settings > Playback Options > Audio Output > DAC Model : Hifiberry DAC
Settings > Playback Options > Audio Output > Output Device : Hifiberry DAC
# Hifiberry Digital DAC (Digital Output)
Settings > Playback Options > Audio Output > I2S DAC : ON
Settings > Playback Options > Audio Output > DAC Model : Hifiberry DIGI
Settings > Playback Options > Audio Output > Output Device : Hifiberry DIGI
(주의: 위의 내용 변경하고 나면 /boot/config.txt 파일에 max_usb_current=1 내용이 사라지곤 하므로, 다시 추가 필요.)
혹시라도, 볼루미오 1.55에서 이어폰잭 직접 연결해서 들으려면, $ sudo nano /boot/config.txt (엔터) dtparam=audio=on 한 줄을 추가한 다음 저장 후에, 웹 브라우저의 볼루미오 메뉴에서 시스템 > I2S Driver : None 선택 후 적용(APPLY) 버튼 클릭. Turn off > Reboot 선택하여 재시동. Playback > Audio Output : ALSA 선택하고 음악 재생하면 이어폰 잭으로 음악을 들을 수 있다.
- $ sudo /usr/bin/raspi-config
콘솔(라즈베리 파이에 직접 모니터와 키보드를 연결했을 때) 키보드 배열이 영국식으로 되어 있어서 기호 위치가 다르므로 미국식으로 변경하려면 콘솔 창에서 위와 같이 명령을 내리고 - “Internationalisation Options(국제화 옵션) – Change Keyboard Layout(키보드 배열 변경)”을 선택한 다음, “Generic 101-key PC” – “English (US)”를 선택해 주면 된다.
“Internationalisation Options”에서 시간대(Change Timezone)와 지역화(Change Locale)도 변경할 수 있다: - 시간대(timezone)로 Asia/Seoul 선택.
- 지역화(locale)로 다음 두 가지만 켬.
en_US.UTF-8
ko_KR.UTF-8 - 기본 로케일(default locale; shell에서 파일이름 표시 순서 결정)로
en_US.UTF-8 선택.(또는 ko_KR.UTF-8)
- $ nano ~/.bash_profile
alias ll='ls -la' 등의 필요한 단축 명령행 추가 - 편집 후 변경 내용 적용:
$ source ~/.bash_profile (또는 터미널 재실행)
-
광/동축(coaxial)/USB로 출력을 동시에 나오게 하려면(볼루미오 playback 메뉴를 변경하지 않고, 와디아의 Input 선택만 변경하면 재생이 되게 하려면) 사운드 카드를 2~3개 잡아야 하고, 볼루미오가 제공하는 웹UI에서는 안 되므로, /etc/mpd.conf를 직접 수정해 주어야 한다:
$ aplay -l (접속되어 있는 재생 장치 보기)
$ sudo nano /etc/mpd.conf (재생 장치 다중 사용 설정 예시. name과 device가 중요)
# x20 (USB1) audio_output { type "alsa" name "Output" device "hw:0,0" dop "no" } # Input (USB2) audio_output { type "alsa" name "USB2" device "hw:1,0" dop "no" } # sndrpihifiberry (Coaxial) audio_output { type "alsa" name "Coaxial" device "hw:2,0" dop "no" } # ALSA (Optical) audio_output { type "alsa" name "Optical" device "hw:3,0" dop "no" }
편집, 저장 후, sudo /etc/init.d/mpd restart 명령으로 적용. 에러가 나면 /etc/mpd.conf를 알맞게 다시 수정해 줘야 함.
웹 ui 인터벌 수정: /etc/nginx/nginx.conf
keepalive_timeout 0;
#keepalive_timeout 65;
라즈베리에 모니터 연결을 할 수 없고, 원격 접속도 불가능할 때, 볼루미오 IP를 알아낼 수 있는 방법이며, 다른 볼루미오에 ip.txt 파일을 업로드하는 방법을 예시했다:
- # sudo apt-get install sshpass
명령으로 sshpass 설치. - # sudo nano /etc/rc.local
명령으로 rc.local에 다음 두 줄을 추가 후, 실제로 사용할 곳에서 라즈베리를 시동만 하면, MYDDNS.iptime.org 도메인의 볼루미오에 ip.txt 파일이 전송되므로, 이 파일을 열어보면 ip 주소가 기록되어 있다.
ip addr show > ip.txt
sshpass -pPASSWORD scp -P PORTNUMBER -o StrictHostKeyChecking=no ip.txt pi@MYDDNS.iptime.org:/home/pi/
공영 방송인 KBS가 이걸 왜 꼭 플래시나 앱을 설치해야만 들을 수 있게 해 놓았는지?
따라서 일반적인 웹라디오 채널과 달리, 아래와 같은 우회적인 방법을 거쳐야만 재생이 된다는 점을 밝혀둔다.
A. 볼루미오를 시동한 직후에는,
- [Browse – WEBRADIO]에서 “KBS Classic FM“을 “Add and play” 메뉴를 선택하면,
30초쯤 후에 소리가 난다.
- 30초를 기다려도 소리가 나지 않으면, 아래 B.1~3번 과정을 수행하면 소리가 날 것이다.
B. 볼루미오를 계속 사용 중일 때에는(재시동 없이 KBS FM 다시 듣는 방법),
- 웹 브라우저 주소 창에 “http://자신의 볼루미오 ip/kbs”을 입력하고 엔터를 누르면,
화면에 “Sucess!”라고 표시된 후 볼루미오 화면으로 돌아간다.
(이 1번 과정은 볼루미오를 시동할 때에 포함되어 있으므로, 시동 직후에는 이 단계는 건너뛰고 바로 아래 2번 과정을 수행한다.) - 곧바로 [Browse – WEBRADIO]에서 “KBS Classic FM“을 “Add and play” 메뉴를 선택하면
30초쯤 후에 소리가 날 것이다.
(B.1번을 수행한 다음 볼루미오 화면으로 돌아왔을 때 곧바로 B.2번을 수행해야 한다. B.1을 한 후에 시간이 10여 초(?) 이상 지났다면, 다시 B.1을 수행하고 곧바로 B.2를 수행한다.)
- 30초쯤 기다려도 소리가 나지 않으면, 볼루미오 [Playback] 탭에서 웹 브라우저의 리프레시(다시 읽기) 아이콘을 클릭하고 30초쯤 기다리면 소리가 날 것이다.
조금 거추장스런 과정을 거쳐서 들을 수 있기는 해도, 튜너가 없이는 들을 수 없는 KBS Classic FM 방송을 볼루미오에서 들을 수 있는 방법이 있어서 다행이라 생각한다.
C. 주의할 점은, [Playlists]에서 재생을 했더라도 다른 곡을 재생하다가 다시 “KBS Classic FM”을 재생하면 소리가 안 들릴 수 있다. 이럴 경우에는 이전에 Playlists에 등록되어 있는 “KBS Classic FM”을 [X] 아이콘을 클릭해서 Playlists에서 제거한 후에, 다시금 위의 A나 B의 과정을 밟아야만 KBS Classic FM 방송이 재생된다는 점이다.
이 글에서 예시한 명령어는 맥오에스의 터미널(응용 프로그램 – 유틸리티 – 터미널)을 선택한 후에 내리는 명령어들이다.
MS Windows 10과 크롬북에서 개발자 모드를 켜면 bash 쉘을 쓸 수 있기 때문에 같은 명령어를 사용하면 되겠지만, 확인까지는 해 보지 않았다.
또 집의 볼루미오에 연결한 외장 하드는 /mnt/USB에 마운트시켜 놓은 것을 전제로 원격 마운트 과정을 설명한 것이다.
오디오에 입문한 지 2년여 동안 남강과 방주님의 도움이 있었기에 간편하면도 편리한 이 방식의 구성을 완성할 수 있었다. 두 사람에게 다시 한번 감사의 말씀을 드린다.