덧붙임..
최신버젼의 minidlna 는 smi를 지원합니다. (댓글로 알려주셔서 감사합니다.)
실제로 minidlna 의 홈페이지에서 change log 를 보면...
< 홈페이지내의 change log >
SMI 를 지원하네욥.
관련 홈페이지 : http://sourceforge.net/projects/minidlna/files/minidlna/1.1.3/
단, 위의 홈페이지에서는 소스코드만 제공을 합니다. - 패키지는 미제공
ubuntu 나 각 OS 패키지에서 minidlna 실제로 설치해보시고.. 버젼이 1.1.3이면.. 굳이 아래와같은 방법으로 어렵게 설치/컴파일 하실필요가 없을듯 싶습니다.
우분투에서 DLNA 를 사용하기 위해서 자료를 찾는도중에... mediatomb 보다는 minidlna 가 낫다고 하여 minidlna 를 설치한다.
이때 smi 자막도 지원을 하게 소스코드 컴파일을 하여 직접 설치한다.
다음과 같이 하여서.. LG 스마트 TV 에서 smi 자막까지 잘나오는것을 확인하였다.ㅋㅋ
테스트환경 : 우분투
퍼갈시에는 출처를 남겨주시면감사하겠습니다.
minidlna - 소스코드 다운받기.
http://sourceforge.net/projects/minidlna/
위에서 최신버젼을 tar.gz 를 받는다.
리눅스에서 압축을 푼다.
tar xvfz minidlna-1.1.1.tar.gz
minidlna - smi 자막 지원하게 수정하기
다음의 링크를 참조하여 dlna 관련 소스코드를 수정을 한다.
http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=208595
일단 설치할때 최신버젼인 1.1.1 의 smi 관련 소스코드를 추가한 버젼을 압축을 해놓는다.
--> 배포관련 라이센스 문제가 된다면 자삭예정
추가) 아래의 과정을 모두 실행한다음에 생성된 바이너리 패키지파일
minidlna - 설치하기 : configure
압축을 푼 디렉토리로 이동후...
./configure
위와같이 명령어를 치면... 뭔가 쭈욱 올라가다가 다음과 같은 에러를 만난다.
configure: error: libavutil headers not found or not usable
컴파일에 필요한 라이브러리들이 없어서 나타나는 에러이다.
위의 에러는 필요한 라이브러리를 설치하면 된다.
참고로 minidlna 의 경우 패키지형태로 제공이되는데 그곳에 라이브러리 의존성을 보고 설치할 라이브러를 정했다.
결론적으로...필요한 라이브러리 설치
sudo apt-get install libavformat-dev libavutil-dev libavcodec-dev libflac-dev libvorbis-dev libid3tag0-dev libexif-dev libjpeg-dev libsqlite3-dev libogg-dev
뭔가 에러가 없이 깔끔하게 다음과 같이 콘솔에 나타나면 configure 완료.
configure: creating ./config.status
config.status: creating po/Makefile.in
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
minidlna - 설치하기 : autogen
역시나 컴파일을 위해 ... augo gen 을 한다.
./autogen.sh
만약에 다음과같이 에러가 발생한다면... autoreconf 패키지 설치를 설치하면된다.
Generating configuration files for minidlna, please wait....
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
Can't exec "autopoint": 그런 파일이나 디렉터리가 없습니다 at /usr/share/autoconf/Autom4te/FileUtils.pm line 345.
autoreconf: failed to run autopoint: 그런 파일이나 디렉터리가 없습니다
autoreconf: autopoint is needed because this package uses Gettext
autoreconf 설치
sudo apt-get install autopoint automake autoconf
여기까지 진행이 됐으면 컴파일 준비완료.
...
|
|
minidlna - compile 하기
다음의 명령어를 친다.
make
만약 다음과같이 에러가 발생한다면...
make[3]: Entering directory `/home/xxx/temp/minidlna/minidlna-1.1.1/po'
rm -f da.gmo && : -c --statistics --verbose -o da.gmo da.po
mv: `t-da.gmo'를 설명할 수 없음: 그런 파일이나 디렉터리가 없습니다
다음과 같이 gettext 를 설치한다. (관련내용 : http://sourceforge.net/p/minidlna/discussion/879957/thread/d4d41ca7/)
apt-get install gettext
만약 gettext 를 설치하였다면, configure 과정과 autoconf 과정을 다시 수행한후 make를 한다.
CC image_utils.o
CC albumart.o
CC log.o
CCLD minidlnad
sed -e s@:SBINDIR:@/usr/local/sbin@ <linux/minidlna.init.d.script.tmpl >linux/minidlna.init.d.script
make[2]: Leaving directory `/home/xxx/temp/minidlna/minidlna-1.1.1'
make[1]: Leaving directory `/home/xxx/temp/minidlna/minidlna-1.1.1'
위와같이 나오면 컴파일 성공
minidlna - install 하기
관련 출처 : http://www.linuxplained.com/install-minidlna-on-ubuntu-ultimate-guide
아래의 내용은 위의 게시물을 바탕으로 작성하였다.
다음의 명령어를 친다.
** check install 을 하는 이유는 패키지화 하여 나중에 재설치 및 제거하기 편하게 하기위해서다.
checkinstall 패키지 설치
sudo apt-get checkinstall
패키지 실행
checkinstall
다음과같이 뜨면... install 도 성공
**********************************************************************
Done. The new package has been installed and saved to
/home/xxx/temp/minidlna/minidlna-1.1.1/minidlna_1.1.1-1_i386.deb
You can remove it from your system anytime using:
dpkg -r minidlna
**********************************************************************
minidlna - 설정 / 실행
소스코드 압축 패키지 안에보면..
minidlna.conf 파일이 있는데... 그것을 임의의 폴더로 복사를 한다.
--> 기본설정예제라고 생각하면될듯.
home 폴더내에 복사하고 쓰려면 다음과 같이한다.
mkdir ~/.minidlna
cp -rf minidlna.conf ~/.minidlna/minidlna.conf
해당 minidlna.conf 파일을 다음의 포스팅을 보고 자신의 상황에 맞게 수정을 한다.
==> http://joonshin79.egloos.com/3439388
실행관련 스크립트 작성한다.
==> 출처 : http://www.linuxplained.com/install-minidlna-on-ubuntu-ultimate-guide
sudo vi /etc/init.d/minidlna
#!/bin/sh
# Mini DLNA
case "$1" in
'start')
/usr/local/sbin/minidlnad -f /home/user/.minidlna/minidlna.conf
echo Started
;;
'stop')
PID=`/bin/pidof minidlnad`
if [ ${PID} ]; then sudo kill -SIGTERM ${PID}
else echo Already Stopped
fi
;;
'restart')
PID=`/bin/pidof minidlnad`
if [ ${PID} ]; then sudo kill -SIGTERM ${PID}
fi
/usr/local/sbin/minidlnad -f /home/user/.minidlna/minidlna.conf
echo Restarted
;;
'status')
PID=`/bin/pidof minidlnad`
if [ ${PID} ]; then echo Running. Process ${PID}
else echo Stopped
fi
;;
'rescan')
PID=`/bin/pidof minidlnad`
if [ ${PID} ]; then sudo kill -SIGTERM ${PID}
fi
/usr/local/sbin/minidlnad -R -f /home/user/.minidlna/minidlna.conf
echo Rescanning
;;
*)
echo "Usage: $0 { start | stop | restart | status | rescan }"
;;
esac
exit 0
위에서 /home/user/.minidlna/minidlna.conf 부분을 conf 파일이 있는 실제위치로 수정하여쓴다.
이제 사용법은 간단하다.
sudo /etc/init.d/minidlna start
sudo /etc/init.d/minidlna stop
sudo /etc/init.d/minidlna rescan
위와같이 사용하면 된다.
만약에 실행시 자동 실행하게 하려면..
/etc/rc.x 부분에 위의 스크립트를 링크를 걸어준다.