MPD는 Music Player Daemon의 약자이다.
대몬이라는 것은 상주프로그램이라고 보면 된다. (사용자와 주고받는 것이 없이 백그라운드에서 돌고 있는 프로그램이다.)
mpd로 무엇을 할 수 있냐면 포고플러그를 마치 오디오처럼 쓸 수 있게 해준다. (스마트폰을 리모콘처럼 사용)
서버/클라이언트 구조이기 때문에 포고플러그에서 서버를 돌리면, 이를 조정할 수 있는 리모트 클라이언트 프로그램도 필요하다.
포고플러그에는 기본적으로 오디오출력단자가 없기 때문에 이를 위해 USB 사운드카드를 장착해야 한다.
오픈마켓 등에서 2,000원 정도면 구매할 수 있다. (택배비가 더 나온다.
)
그리고 별도의 전원을 사용하는 스피커도 있어야 한다. (USB 전원을 사용한다면 USB 사운드카드에 손상을 줄 수도 있다고 상품설명에 나와있다.)
마이크입력과 헤드폰출력단자가 있는 저가형 USB 사운드카드
한가지 더 주의해야 할 것은 두께가 1cm 정도가 되기 때문에 포고플러그 시리즈4의 뒷면 USB 3.0 포트 2개 중 하나를 나처럼 이미 HDD 연결로 사용하고 있다면 두꺼워서 사운드카드를 끼울 수 없다. (다행히 예전에 쓰던 USB 연장선이 있어서 연결했다.)
1. mpd 설치하기
mpd 설치를 위해 pacman을 실행했는데 처음부터 파일을 찾을 수 없다고 에러를 뿜어낸다. (이 에러 고치다 결국 시스템 날려먹고 복원
)
이리저리 시도해보다 미러사이트 설정을 보니 현재 위치에서 가까운 미러사이트를 자동으로 찾아주는 Geo-IP 설정으로 되어 있다.
(캘리포니아 서버로 변경했는데 복원하면서 아마 변경된 듯 싶다.)
하지만 요즘 캘리포니아 미러사이트도 문제가 있는지 잘 안된다.
그래서 다시 뉴욕 미러사이트로 변경.
nano /etc/pacman.d/mirrorlist
---
## Geo-IP based mirror selection and load balancing
#Server = http://mirror.archlinuxarm.org/arm/$repo (#주석처리)
## New York
Server = http://us.mirror.archlinuxarm.org/arm/$repo (#주석제거)
----
pacman -Sy mpd
깔끔하게 설치가 되었다.
2. ALSA 설치하기
참고 : http://comta.kr/?p=4854 (데비안이긴 하지만 참고할 수 있다.)
http://mpd.wikia.com/wiki/Configuration
ALSA도 Advanced Linux Sound Architecture의 약자다.
한마디로 리눅스에서 소리를 내게 하기 위한 규격이란 얘기.
그래서, 우리도 이 ALSA를 설치한다. (ArchLinux에는 기본적으로 설치가 되어 있지만 우리가 사용하는 ArchLinuxARM에는 없기에 별도로 설치해야 한다.)
pacman -Sy libao alsa-utils avahi libpulse
설치가 끝나면 사운드카드 구성을 살펴보자.
aplay -l
위와 같이 card 0, 그리고 device 0 라고 나온다.(이건 사용자마다 다를 수 있으니 꼭 확인이 필요하다.)
나중에 설정을 위해 꼭 필요한 부분이다.
그리고 ALSA의 볼륨믹서를 한번 실행해 보자.
alsamixer
사운드카드에서 제대로 소리가 나는지 스피커로 테스트해보자.
갑자기 노이즈가 크게 들릴 수 있으니 스피커 볼륨을 조절하고 종료할 때는 ctrl+c를 누른다.
핑크노이즈라고 하는데 아마 화이트노이즈를 좀 재미있게 표현한 것 같다.
speaker-test
Ctrl+C (종료할 때)
그리고 기본으로 사운드카드를 잡아주도록 설정한다.
nano /etc/asound.conf
----
defaults.ctl.card 0 (앞서 확인한 사운드카드의 번호이다.)
defaults.pcm.card 0
defaults.timer.card 0
그런데 콤타에서도 지적하고 있지만 처음에 실행했을 때는 잘 되었지만 갑자기 사운드카드의 LED 가 꺼져버리고 aplay -l 해봐도 사운드카드가 없다고 나와버렸다.
다행히 리부팅 후 제대로 다시 잡히긴 했다.
3. mpd 설정하기
자, 지금까지는 잘 설치가 된 것 같다.
이제부터가 중요한 mpd 설정이다.
분명 스피커 테스트를 해봤을 때도 핑크 노이즈가 들렸는데 아무리 음악을 플레이하고 해도 스피커로는 도무지 소리가 나지 않아 거의 몇 시간을 꼬박 삽질했다.
참고 : https://wiki.archlinux.org/index.php/Mpd
우선 음악들이 외장하드를 사용하는 FTP 사용자의 홈디렉토리 밑에 서브디렉토리로 music에 있다고 가정하고 설정한다.
그리고 해당경로는 특정 FTP 사용자의 홈디렉토리로 지정한다. (각자에 맞는 외장하드경로를 지정한다.)
mkdir -p /media/pogo/nekojp/.mpd/playlists
touch /media/pogo/nekojp/.mpd/{database,log,state,pid,sticker.sql}
여기서 nekojp 는 기존에 사용하고 있는 FTP 사용자 아이디다. 각자에 맞게 설정.
위의 참고링크에 보면 개별사용자 설정 및 글로벌설정이 있는데 개별 사용자 설정은 ~/.mpdconf 파일로 하게 되어있고 이 파일이 없을 경우 /etc/mpd.conf 파일을 사용하게 된다. 그래서, 처음부터 글로벌 설정으로 /etc/mpd.conf 파일을 이용해 작업한다.
(녹색으로 된 부분은 자신의 하드 경로에 맞춰 변경한다.)
nano /etc/mpd.conf
---
music_directory "/var/lib/mpd/music"
playlist_directory "/media/pogo/nekojp/.mpd/playlists"
db_file "/media/pogo/nekojp/.mpd/database"
log_file "syslog"
pid_file "/run/mpd/mpd.pid"
state_file "/media/pogo/nekojp/.mpd/state"
sticker_file "/media/pogo/nekojp/.mpd/sticker.sql"
user "mpd" (대몬을 실행할 유저이다.)
bind_to_address "192.168.x.x" (포고플러그 내부 ip)
port "6600"
restore_paused "yes" (이 옵션을 yes로 하면 클라이언트를 실행했을 때 자동연주가 되지 않고 일시정지로 된다.)
auto_update "yes" (데이터베이스 자동업데이트)
audio_output {
type "alsa"
name "Pogoplug V.4" (원하는대로)
device "hw:0,0" # optional (앞서 살펴본 숫자를 적어준다.)
mixer_type "software" # optional
}
filesystem_charset "UTF-8" (사실 이렇게 해도 한글 등이 깨지는 수가 있다.)
id3v1_encoding "UTF-8"
.mpd 디렉토리의 소유권한은 mpd 가 가지도록 바꿔주자.
chown -R mpd:mpd /media/pogo/nekojp/.mpd
혹시 root의 홈디렉토리에 .mpd 디렉토리가 있다면 글로벌 설정을 했으므로 삭제
cd ~
ls -la
rm -R /.mpd
4. 뮤직디렉토리 설정
설정에서는 아치리눅스가 설치된 USB 메모리에 뮤직 디렉토리가 있는 것으로 되어있다.
하지만 외장하드에 있는 뮤직 디렉토리를 사용할 것이므로 아래의 예와 같이 본인의 경로에 맞게 바꿔주고 마운트한다.
참고 : http://jasonmaur.com/setting-mpd-and-mpc-use-dmenu-and-i3-arch-linux/
https://wiki.archlinux.org/index.php/Mpd#Music_directory
mkdir /var/lib/mpd/music
chown mpd:mpd /var/lib/mpd/music
echo "/media/pogo/nekojp/music /var/lib/mpd/music none bind" >> /etc/fstab
mount -a
설정 후의 마운트 상황.
또는 심볼릭링크를 사용하는 방법도 있다.
mkdir /var/lib/mpd/music
ln -s /media/pogo/nekojp/music /var/lib/mpd/music/
4. mpd 실행하기
mpd를 실행해 보면
mpd
listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
(또는, systemctl start mpd)
실행했을 때 위와 같은 에러가 나는 경우가 있다.
bind_to_address 설정에서 포고플러그의 내부 ip 주소를 적어주면 된다.
참고 : https://wiki.archlinux.org/index.php/Music_Player_Daemon/Troubleshooting
5. mpd 클라이언트(리모트) 설치하기
mpd를 위한 리모트 컨트롤 클라이언트를 설치해보자.
쉽게 말하자면 PC를 켜지않고도 스마트폰이나 웹페이지에서 리모트 컨트롤로 포고의 mpd를 조작해 스피커로 음악을 재생할 수 있도록 하는 것이다.
아래는 ncmpc 라는 것으로 콘솔 상에서 사용하는 클라이언트이다.
pacman -S ncmpc
다른 클라이언트들은 https://wiki.archlinux.org/index.php/Music_Player_Daemon#Clients 를 참고.
ncmpc -c 로 실행하면 위와 같이 컬러로 나오고, 그냥 실행하면 흑백으로 나온다.
1번을 누르면 키보드 조작에 대한 설명이 나온다.
3번을 눌러 Browse 메뉴로 가서 ctrl+u를 누르면 데이터베이스가 업데이트된다.
(용량에 따라 시간이 조금 걸릴 수 있으니 차분히 기다리자.)
위와 같이 영문은 괜찮으나 인코딩에 따라 한글파일명은 많이 깨진다.
원하는 디렉토리나 곡에서 스페이스바를 누르면 플레이리스트에 등록이 된다.
2번을 눌러 플레이리스트에서 곡을 선택하고 엔터를 치면 플레이를 시작한다.
만든 플레이리스트를 저장하고 싶으면 shift + S(대문자 S)를 누르면 화면 하단에 저장하라는 프롬프트가 나온다.
3번을 눌러 다시 Browse 메뉴로 가보면 내가 만든 플레이리스트가 저장되어 있는 것을 볼 수 있다.
이 플레이리스트는 앞서 만든 /media/pogo/nekojp/.mpd/playlists 디렉토리에 가보면 .m3u 파일로 저장이 되어 있다.
종료할 때는 ctrl+c 또는 q 를 누르면 된다.
6. mpd 웹클라이언트(리모트) 설치하기
다음으로 웹브라우저에서 조작할 수 있는 phpMpReloaded라는 웹기반의 클라이언트를 설치해보자.
만약 내부 IP 주소에서만 아니라 외부에서도 접속하겠다면 포트포워딩을 통해 설정하는 것도 잊지 말자.
mpd 기본 포트는 6600이다.
http://sourceforge.net/projects/phpmpreloaded/
tar xvfz phpmpreloaded-1.2a.tar.gz (현재 1.2a 버전)mv phpmpreloaded wmpc (디렉토리 이름이 너무 길어서 짧게 변경)chown http.http wmpc (http는 아파치 서버를 설치하게 되면 기본적으로 등록되는 사용자다.)
http://[내 도메인]/wmpc
nano config/config.php---date_default_timezone_set ( "Asia/Seoul" ); (처음에 유럽으로 세팅이 되어 있는데 서울로 변경하자.)
nano index.php---//import_request_variables ( 'gp', 'url_' ); (//로 주석처리 또는 삭제하고 아래 문장을 추가한다.)extract($_REQUEST, EXTR_PREFIX_ALL|EXTR_REFS, 'url_');
![](https://blog.kakaocdn.net/dn/czSBZE/btrNFTsBkZM/vjox4F7VXoz3RamtPLkXek/img.png)
![](https://blog.kakaocdn.net/dn/u8dSw/btrNzFvijQS/jKcEYSFyan7BXVnX6MB1iK/img.png)
nano /etc/mpd.conf-----audio_output {type "httpd"name "My HTTP Stream"encoder "vorbis" # optional, vorbis or lameport "8000"bind_to_address "0.0.0.0" # optional, IPv4 or IPv6## quality "5.0" # do not define if bitrate is definedbitrate "128" # do not define if quality is definedformat "44100:16:1"# max_clients "0" # optional 0=no limit}
설치를 잘못했는지 아니면 사운드카드의 문제인지 모르겠지만, 음악을 플레이하다보면 종종 하드의 마운트가 풀려버리고사운드카드도 꺼져버리는 현상이 발생한다.시리즈 4 뒷면의 USB 3.0 포트에 연결해서 사용했는데 이 포트가 좀 불안정하다는 얘기도 있고, USB 포트의 전원 부족일 수도 있어 유전원 USB로 연결해 보았지만 마찬가지 현상.현재로써는 시리즈4의 불안정때문인 것으로 보인다.mpd 사용을 위해서는 데비안이나 E02 버전 등을 사용하길...(http://cafe.naver.com/audiostudy 카페에 mpd 전용 이미지들이 있다.)
'리눅스 > 포고플러그' 카테고리의 다른 글
포고플러그 시리즈4에 아치리눅스 사용하기 (번외) - WD TV live 미디어 플레이어 연결하기 (0) | 2022.10.04 |
---|---|
포고플러그 시리즈4에 아치리눅스 사용하기 (번외) - 외부접속하기(포트포워딩, DDNS 설정) (0) | 2022.10.04 |
포고플러그 시리즈4에 아치리눅스 사용하기 (12) - net2ftp 설치 및 사용하기 (0) | 2022.10.04 |
포고플러그 시리즈4에 아치리눅스 사용하기 (8-1) - 아파치 웹서버 DocumentRoot 변경하기 (1) | 2022.10.04 |
포고플러그 시리즈4에 아치리눅스 사용하기 (10-1) - 그누보드 스킨사용을 위한 GD 라이브러리 설치 (0) | 2022.10.04 |