IT /컴퓨터 TIP

minidlna 설치하기 : smi 지원하게 하기 (컴파일)

. . . 2014. 2. 24. 12:19
반응형

덧붙임..

최신버젼의 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-1.1.1_smi_xeno.tar.gz

추가) 아래의 과정을 모두 실행한다음에 생성된 바이너리 패키지파일

http://xenolife.tistory.com/472




minidlna - 설치하기 : configure


압축을 푼 디렉토리로 이동후...


./configure


위와같이 명령어를 치면... 뭔가 쭈욱 올라가다가 다음과 같은 에러를 만난다.


configure: error: libavutil headers not found or not usable


컴파일에 필요한 라이브러리들이 없어서 나타나는 에러이다.

위의 에러는 필요한 라이브러리를 설치하면 된다.


참고로 minidlna 의 경우 패키지형태로 제공이되는데 그곳에 라이브러리 의존성을 보고 설치할 라이브러를 정했다.

 ==> http://packages.ubuntu.com/source/precise/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 부분에 위의 스크립트를 링크를 걸어준다.