1080p를 지원하는 저렴한 DivX Player에 저전력 무소음 Linux 장난감이 있으면 좋겠다고 생각하시는 분들은

유니콘 Xtreamer Sidewinder를 한 번 고려 해 보시라고 말씀 드리고 싶습니다.

현재 다나와 최저가가 12장정도(하드미포함) 하며 2.5인치 하드디스크를 장착합니다.

저는 500기가 하드 포함 중고로 13장정도에 구할 수 있었는데, 그렇게 되면 가격대 성능비가 굉장하죠.

HDMI output을 지원하며, heatsink 모델이라서 무소음입니다.

 

자세한 사양은 http://eunicorn.co.kr/ 에서 확인하시면 됩니다.

 

저에게 Xtreamer의 용도는 다음과 같습니다.

 

1. 거실 TV에 연결해서 동영상플레이

2. samba를 이용한 홈 네트웍 스토리지 + sftp 서버를 이용한 네트워크 서버

3. torrent를 이용한 미드/일드 다운로드 + 파일 복사 필요 없이 바로 거실 TV로 플레이

4. MySQL + PHP + phpmyadmin을 이용한 웹 개발 테스트배드

5. svn server 설치로 개인 프로젝트 소스코드 version control

6. native compiler(gcc)를 이용한 C/C++ 간단한 코드 테스트배드

7. Ruby On Rails 설치 후 RoR 공부 테스트배드

8. jikes + jamvm을 이용한 java 간단한 코드 테스트배드

9. 기타 linux console에서 할 수 있는 많은 일들(shell scripting, python 등등...)

 

용도를 보면 아시겠지만, 이녀석을 제대로 가지고 놀기 위해서는 초급 이상의 linux 이용 경력이 필요합니다.

 

그럼 세팅 삽질을 번호별로 정리 해 보겠습니다.

 

==============================

 

1. 거실 TV에 연결해서 동영상 플레이

  - 기본 기능으로, 1080p mkv 파일은 물론 blu-ray 이미지 파일도 플레이 할 수 있습니다.

  - 별도 세팅이 필요 없습니다.

  - 두 개의 USB 포트가 있어서 USB 메모리로 전송도 가능합니다.

 

2. samba를 이용한 홈 네트웍 스토리지 + sftp 서버를 이용한 네트워크 서버

  - samba는 기본적으로 지원하고 있는데, ssh, sftp를 이용하기 위해서는 XMP(Xtreamer Mod Pack) 이라는 것을 설치해야 합니다.

  - XMP는 php + optware를 이용해서 Xtreamer를 linux 머신으로 이용하게 해 줍니다.

  - XMP는 http://code.google.com/p/xtreamer-web-sdk/downloads/list 에서 다운받을 수 있습니다.

    = xmp_r183.zip 파일을 다운로드 해서 하드디스크 root에 압축을 풀면

       로컬네트워크를 통해 http://기기IP/media/sda1/xmp 에 접속할 수 있게 됩니다.

    = xmp 메인 페이지에서 하드디스크 ext3 포멧, ipkg를 통한 optware 설치가 가능하며,

       여기서 openssh 패키지를 설치하면 콘솔 접속이 가능합니다.

    = xtreamer를 linux 장난감으로 쓰기 위해서는 하드를 ext3로 포멧하는 것이 유리합니다. (권한 문제 등등)

    = openssh-sftp-server 패키지를 설치하면 sftp를 이용해 접속이 가능합니다.

    = 기본적으로 password 없는 root로 접속하게 되는데,

       passwd로 비밀번호를 부여하고,

       하드디스크에 home 폴더를 만들어 이를 root에 link 하고,

       /etc/passwd를 편집해서 어엿한 root계정을 완성합니다.

       유저를 추가하기 위해서는 adduser 패키지를 설치합니다.

    = 네트워크 서버로 쓰기 위해서는 xtreamer 기본 설정 페이지에 DDNS 설정 페이지가 있는데,

       ????.myxtreamer.net으로 접속할 수 있게 해 줍니다.

       각자의 회선이나 공유기 상황에 맞게 80포트를 오픈/포워드 해 줍니다.

 

3. torrent를 이용한 미드/일드 다운로드 + 파일 복사 필요 없이 바로 거실 TV로 플레이

  - xmp에서 transmission 패키지를 설치합니다.

  - http://기기IP:9091 에 접속하면 web-based torrent 관리 페이지에 접속할 수 있습니다.

  - transmission 설정파일에서 ID/PASS 설정을 하면 원격으로 torrent 관리를 할 수 있습니다.

  - 경험상 대역폭을 설정 해 놓지 않으면 너무 빠른 속도로 업/다운 을 하다가 overheat 해서 기기가 다운되는 경우가 있었습니다.

    저는 up 150kb/ down 1.5mb 정도로 해 놓고 쓰고 있습니다. 아마 겨울이 되면 더 높혀도 될 듯 합니다.

 

4. MySQL + PHP + phpmyadmin을 이용한 웹 개발 테스트배드

  - xtreamer는 lighttpd와 custom build php를 기본으로 사용하는데, 이 버전에는 mysql 지원이 안 되게 되어 있습니다.

  - mysql, php-fcgi, php-mysql, phpmyadmin 패키지와 그 종속 패키지를 설치합니다.

  - /sbin/www/lighttpd.conf 파일의 맨 아래쪽 fastcgi.server 항목을 다음과 같이 편집합니다.

 

 

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php.socket",
                                   "bin-path" => "/opt/bin/php-fcgi",
                                   "max-procs" => 1,
                                   "broken-scriptfilename" => "enable",
                                   "allow-x-send-file" => "enable",
                                   "bin-environment" => (
                                        "PHP_FCGI_CHILDREN" => "1",
                                        "LD_LIBRARY_PATH" => "/opt/lib/php/extensions"
                                    ),
 
                                 )
                               )
                            )
 
  - /opt/share/www/phpmyadmin 폴더를 /sbin/www 에 링크 해 놓으면
    http://기기IP/phpmyadmin 으로 phpmyadmin을 접속할 수 있습니다.
 
5. svn server 설치로 개인 프로젝트 소스코드 version control
  - svn 패키지를 설치합니다.
  - svnadmin create PATH 로 저장소를 생성합니다.
  - svnserve -d --listen-host 0.0.0.0 --listen-port PORT -r PATH 로 서버 daemon을 실행합니다.
  - 필요에 따라 /etc/init.d/ 에 스크립트 파일을 등록해서 전원이 켜질때 마다 실행하도록 세팅할 수 있습니다.
 
6. native compiler(gcc)를 이용한 C/C++ 간단한 코드 테스트배드
  - optware-devel 패키지를 설치하면 기본적인 개발을 할 수 있는 native compiler가 설치됩니다.
  - gcc version 은 4.1이고, target은 mipsel-linux-uclibc 입니다.
  - vim 패키지를 설치하면 vim 에디터를 쓸 수 있습니다.
 
7. Ruby On Rails 설치 후 RoR 공부 테스트배드
  - ruby, rubygems 패키지를 설치함으로써 ruby를 실행하기 위한 종속 패키지를 모두 설치합니다.
  - ruby, rubygems 패키지를 삭제합니다.
  - ruby 소스를 받아서 빌드/인스톨합니다.
    = ipkg repository에 있는 ruby는 rails 에 필요한 native driver를 컴파일할 때 이유를 알 수 없는 오류를 내고,
       uclibc의 한계 때문에 rails를 실행할 때 SEGFAULT를 내며 실행에 실패하기 때문에,
       직접 ruby source를 받아서 필요한 부분의 소스를 수정해서 직접 빌드해야 합니다.
    = 제가 받아서 작업한 소스는 ruby-1.9.2-p290.tar.bz2 입니다.
    = 다운로드 받은 파일을 폴더에 풀고 소스 root 폴더의 thread_pthread.c 파일을 편집합니다.
       > 368, 369 라인을 주석처리 해 줍니다.
368 //#else
369 //      rb_raise(rb_eNotImpError, "ruby engine can initialize only in the main thread");
       > 885 라인 밑에 다음을 추가 해 줍니다.
885     if (th) {
886         if (!th->machine_stack_start) return 0;
    = 해당 패치는 http://www.ruby-forum.com/attachment/5120/0001-fix-STACKADDR_AVAILABLE-0.patch 에서 참고 한 것으로,
       이 패치를 적용하면 문제없이 실행은 되지만 stack overflow를 탐지(detect) 하지 못하게 됩니다.
       그래도 실 서비스가 아니라 공부 목적이니 제게는 별 상관 없습니다.
    = 소스 root 폴더에서 ./configure --prefix=/opt 로 configure 하고, make & make install로 설치 합니다.
    = 잘 기억은 나지 않지만, 빌드 중에 libffi, libyaml 이 필요했던 것 같습니다.
       ipkg repository에 없으므로, 미리 소스를 받아서 빌드/인스톨 합니다.
  - rails 를 인스톨 합니다.
    = 기본 DB로 sqlite3을 이용하므로 sqlite3 패키지를 설치합니다.
    = gem update --system --verbose
    = gem install rails --verbose
    = 인터넷으로 필요한 패키지를 다운로드 받아서 설치하기 때문에 시간이 많이 걸리고, 진행이 어떻게 되는지 궁금하기 때문에
       --verbose 옵션을 줘서 어떻게 되고 있는지 최대한 많이 출력하게 합니다.
    = 설치가 끝나면 rails new PATH 로 새로운 rails 를 만들고,
       해당 PATH에서 rails server -p PORT 를 이용해서 새로 만든 RoR 사이트를 실행합니다.
       접속은 http://기기IP:PORT로 하면 됩니다.
 
8. jikes + jamvm을 이용한 java 간단한 코드 테스트배드
  - 간단히 자바 테스트 코드를 작성할 일이 있을 때, jikes(java compiler)와 jamvm(vm)을 이용할 수 있습니다.
  - jikes는 ipkg 패키지가 존재하므로 설치하게 되면 gnu classpath가 같이 설치됩니다.
  - jamvm의 경우 ipkg repository에 있는 버전은 gnu classpath가 잘못 설정되어 빌드 되어 있습니다.
   그래서 직접 빌드합니다.
    = ./configure --prefix=/opt --disable-tls --with-classpath-install-dir=/opt 를 이용해서 configure 하면 됩니다.
    = make & make install
    = 참 쉽죠? -_-
 
9. 기타 linux console에서 할 수 있는 많은 일들(shell scripting, python 등등...)
  - shell scripting은 /bin/sh 나 /bin/bash 를 이용해서 하면 됩니다.
  - 기타 python이나 lua를 이용하고 싶다면 ipkg를 이용해 해당 패키지를 설치하면 됩니다.
 
===============================
 
정리 해 놓고 보니, 양이 얼마 되지 않네요.
하지만, '이렇게 저렇게 하면 됩니다' 라는 문장 하나를 쓰기 위해서는 여러 차례의 검색과 삽질이 필요했습니다.
linux에서 소스를 이용해 프로그램을 빌드 해 본 경험이 없으신 분들은 다소 어려울 수도 있는 내용이지만,
어디까지나 제가 했던 삽질의 기록을 남기기 위해 쓴 글이고, 더 자세히 쓰면 며칠이 걸릴 수도 있는 내용이라,
이해 해 주시기 바랍니다.
 
궁금하신 점은 쪽지나 리플로 달아드리면 최대한 성의껏(= 몸과 마음이 귀찮지 않은 범위에서) 답 해 드리겠습니다.
 
마지막으로 당부드릴 말씀은, 앞서도 강조했듯이 Xtreamer Sidewinder는 가격대 성능비가 훌륭한 '장난감' 입니다.
실제 PC나 전용 서버 만큼의 퍼포먼스는 낼 수 없다는 한계가 있습니다.
딱히 할 수 없는 것은 없지만 제대로 할 수 있는 것도 없다고나 할까요...
 
한 번 이렇게 세팅 해 놓으니 가끔 테스트 코드를 작성할 필요가 있을 때 유용하게 쓰고 있습니다.
이런 용도도 있다는 것을 알아 주셨으면 하는 마음에 그림 한 장 없는 장문의 사용기+세팅기를 쓰게 되었습니다.
 
봐 주셔서 감사합니다.