Paragon NTFS 드라이버가 마침내 Linux에 포함될 수 있습니다.

Linux에서 Windows의 NTFS 드라이브로 작업하는 것은 항상 어려웠지만 Paragon NTFS 드라이버가 마침내 Linux 커널에 포함된다면 훨씬 쉬울 것입니다.

 

Microsoft는 1993년 Windows NT 3.1에 독점 저널링 파일 시스템인 NTFS(New Technology File System)를 도입했습니다. 그 이후로 모든 Windows 버전에서 1977년 FAT(File Allocation Table) 파일 시스템을 대체했습니다. Microsoft가 결국 다른 사용자에게 공개할 FAT 와 달리 NTFS는 독점으로 남아 있습니다. 그 때문에 Linux에서 사용하기가 어렵지만 불가능하지는 않습니다. 

최근  Paragon Software  일부 NTFS 드라이버 소프트웨어를 Linux 커널로 이식 할 것이라고 발표했습니다 

 

그것은 훌륭했습니다 ... NTFS3 코드 가 커널에 추가 될 조건이 아니라는 점을 제외하고는 .

27,000줄의 코드로 너무 컸습니다. Linux 커널 개발자인 Nikolay Borisov는 "그러면 누군가가 이 괴물을 정확히 어떻게 리뷰할 거라고 예상합니까?"라고 썼습니다. 코드에는 다른 문제도 있었습니다.

 

그래도 이 코드는 실제로 필요합니다. NTFS 지원을 통해 Linux 사용자는 문제 해결을 위해 외부 NTFS 드라이브를 연결하거나 Windows PC를 Linux로 부팅할 수 있습니다.

 

사실, Linux NTFS 드라이버가 있지만 근본적인 문제가 있습니다. NTFS-3G 사용자 공간 (FUSE)의 파일 시스템과 함께 작동, 속도가 매우 느릴 것입니다. 이전 Captive NTFS 드라이버 가 더 완전한 기능을 제공하지만 더 이상 유지 관리되지 않습니다. 

 

그러나 Paragon은 이러한 문제를 천천히 해결해 왔습니다. 24개 이상의 수정 후에 코드는 거의 황금 시간대에 사용할 준비가 된 것으로 보입니다. 그러나 Linus Torvalds가 지적했듯이 Paragon이 "실제로 제출"하면 도움이 될 것입니다. 그리고 "파라곤은 git pull 요청을 해야 합니다."

 

다시 말해서, 현재 문제는 Paragon이 여전히 Linux 커널 개발자가 작동하는 방식에 대해 마음을 포장하려고 하는 만큼 기술적인 문제가 아닙니다. 그래도 Paragon은 마침내 "이 구현을 유지할 것 "이지만 "적절한 pull 요청을 준비하는 데 며칠이 걸릴 것"이라고 확인했습니다 .

 

Torvalds는 이 소식을 환영했지만 다음과 같이 경고했습니다. "이와 같은 큰 새 항목이 추가될 때 제가 원하는 또 다른 한 가지는 모든 것이 올바르게 승인 되었는지 확인하고 내부 혼란이 없는지 확인하는 것입니다 . Paragon 내부의 GPLv2, 그리고 모든 법조인 등이 이 모든 것을 알고 있고 탑승하고 있습니다. 우리가 마지막으로 보고 싶은 것은 6개월 후 '아, 우리는 이것을 할 의도가 없었습니다'입니다."

 

 Torvalds는 이것이 일어날 것이라고 생각하지 않지만 Linux 커널 팀은 이전에 불쾌하게 놀랐습니다.

구현 시 Paragon은 NTFS의 모든 버전과 일반, 압축 및 희소 파일에서 작동하고 저널 재생을 지원하는 완전한 기능의 NTFS 읽기-쓰기 드라이버를 약속합니다.

 

모든 것이 순조롭게 진행된다면, 이는 Linux 사용자가 마침내 연말까지 Linux 커널 버전 5.15의 Windows NTFS 시스템에서 파일을 빠르게 읽고, 쓰고, 삭제할 수 있을 것으로 기대할 수 있음을 의미합니다. 그러면 많은 시스템 관리자와 기술자가 훨씬 더 행복해질 것입니다.

 

https://www.zdnet.com/article/paragon-ntfs-driver-might-finally-make-it-into-linux/#ftag=RSSbaffb68

 

Paragon NTFS driver might finally make it into Linux | ZDNet

Working with Windows' NTFS drives in Linux has always been difficult, but if the Paragon NTFS driver finally makes it into the Linux kernel, it will be much easier.

www.zdnet.com

 

 



[U5PVR]  Patching U5PVR SSH Login Welcome Message



The following is a very simple example.


Please apply only the applicant.



dpkg -i u5pvr-hello-world.deb




u5pvr-hello-world.deb











안녕하세요. 이번에는 U5PVR 에 MPD 를 설치해 보겠습니다.


MPD 운용시 ALSAMIXER 를 통해 USB DAC 과 연동이 가능합니다.


저도 실은 정확하게 MPD 에 대해서 모르기 때문에 USB DAC 을 통해서 원음 재생이 가능하게 설정하는 방법을 정확하게 모릅니다. 차후 보충하도록 하겠습니다.


시작합니다.



1. MPD 및 의존성 패키지 설치하기


아래의 명령으로 MPD 를 설치합니다.


root@u5pvr-debian:~# apt-get install mpd alsa-base alsa-oss alsa-utils


다음으로 MPD 가 정상적으로 동작하게 하기 위해서 설정파일을 살짝 수정합니다.


root@u5pvr-debian:~# nano /etc/mpd.conf



# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory         "/mnt/sda/sda1/music"        <-- 음악이 들어있는 위치를 지정합니다.
#


# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user                            "root"        <-- 실행 계정을 root 계정으로 설정합니다.
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
group                          "root"        <-- 실행 그룹을 root 그룹으로 설정합니다.
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Choose any if you want
# to have mpd listen on every address
#
# For network
bind_to_address         "0.0.0.0"        <--스마트폰이나 다른 클라이언트와 연동하기 위해서 바인드를 0.0.0.0 으로 설정합니다.


대략적으로 수정이 끝났습니다. 정상적으로 동작하는지 체크를 해 봅니다.


root@u5pvr-debian:~# netstat -nlp | grep mpd

tcp        0      0 0.0.0.0:6600            0.0.0.0:*               LISTEN      23392/mpd

root@u5pvr-debian:~#


정상적으로 동작이 되고 있네요 ㅎㅎ



2. 출력 장치 설정하기


기본적으로 MPD 를 통해서 HTTP 출력을 하게 하여 음악 스트리밍 서버로 사용할 수 있습니다.


그런데 이번에는 물리 장치로 출력을 내보내는 설정을 해 보겠습니다.


다음 명령어로 재생할 장치 이름을 확인합니다.


root@u5pvr-debian:~# aplay -l

**** List of PLAYBACK Hardware Devices ****

card 0: HISIAIAO [HISI-AIAO], device 0: Playback aiao-hifi-0 []    <- 찐하게 된 부분이 장치 이름입니다.

  Subdevices: 1/1

  Subdevice #0: subdevice #0

root@u5pvr-debian:~#


위에 뜨는 장치는 U5PVR 에 장착된 기본 장치입니다. USB 로 DAC 을 연결하면 다른 장치가 추가적으로 뜰 것입니다.


다시 MPD 설정을 수정하여 장치에 대한 설정을 추가합니다.

root@u5pvr-debian:~# nano /etc/mpd.conf


#
#audio_output {                                    <-- 기본적으로 세팅이 들어가 있는데 # 으로 코멘트 시킵니다.
#       type            "alsa"
#       name            "HISIAIAO"
#       device          "default"       # optional
#       mixer_type      "hardware"      # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
#}
#

# 아래의 구문을 추가합니다.
audio_output {
        type "alsa"
        device "default"
        # The name of the card
        name "HISIAIAO"            <-- 앞서 보았던 장치 이름을 넣어줍니다.
        use_mmap "yes"
        auto_resample "no"
        auto_channels "no"
        auto_format "no"
        mixer_type "software"        <-- DAC 이 자체적으로 볼륨 조절을 할 수 있다면 disabled 로 입력합니다.
        period_time "50000"
        buffer_time "2500000"
        # dsd_usb "yes"                <-- DSD 를 지원하면 코멘트 아웃해 줍니다.
}


저장 후, 다시 mpd 서비스를 재시작 합니다.


root@u5pvr-debian:~# service mpd restart

[ ok ] Stopping Music Player Daemon: mpd.

[ ok ] Starting Music Player Daemon: mpd.

root@u5pvr-debian:~#




3. MPD 클라이언트 - MPDroid


일단 스마트폰에서 U5PVR 의 재생을 원격 컨트롤 하기 위해서 아래의 앱을 설치합니다.


https://play.google.com/store/apps/details?id=com.namelessdev.mpdroid&hl=ko



설치를 하고 나서 아래의 설정을 진행합니다.


기본 연결 설정으로 이동합니다.



호스트를 U5PVR IP 입력합니다.


(나머지는 설정하신 대로 입력하시면 됩니다.)



U5PVR 기본 오디오가 잘 물려 있음을 알 수 있습니다.




스마트폰에서 재생을 누르게 되면 U5PVR HDMI 나 혹은 AV 단자로 소리가 나갑니다.




동영상으로 보시면 아래와 같습니다. (U5PVR 이 물린 HDMI 모니터에서 음악이 나오는 중입니다.)



추가적으로 MPD 가 음악 재생중일때는 U5PVR 안드로이드에서 DAC 우선순위가 밀리기 때문에 영상 재생이 원활이 되지 않고 유튜브의 경우에는 재생이 시작되지 않습니다.


MPD 재생을 정지하면 U5PVR 안드로이드 앱 이용이 정상화 됩니다.


AV 짹에 이어폰 꼽아 보시면 음악이 나오는 것을 확인하실 수 있습니다. 고음질 플레이가 필요없으시면 그냥 내장 DAC 을 쓰셔도 무방합니다. 


기본 구성품에 AV 단자도 포함되어 있으니 잘 활용해 보시면 될듯 합니다.





[위 두 사진은 블루님께서 찍어서 보정을 한 것으로 블루님 허락 외에는 무단 사용하실 수 없습니다. 이 게시글은 허락을 받았습니다.]


S/PDIF 단자로 음악이 나가는지는 잘 모르겠네요.




4. MPD 웹 클라이언트 - ympd


실제로 Volumio 웹 UI 를 따고 싶었지만 이게 Volumio 는 하나의 운영체제로 배포되는 것이라 따로 설치가 어렵네요. 그래서 대체 웹 UI 를 설치해 봅니다.


의존성 패키지를 설치합니다.


(build-essential 안에 의존성의로 cmake 가 포함되어 있을 수 있습니다. 빌드 중에 에러가 나서 가이드를 약간 수정했습니다.)


(SSL 연결을 사용하시려면 openssl 도 같이 설치하시길 바랍니다.)


root@u5pvr-debian:~# apt-get install cmake git build-essential libmpdclient-dev libssl-dev pkg-config


소스를 받고 빌드합니다.


root@u5pvr-debian:~# git clone https://github.com/notandy/ympd.git

Cloning into 'ympd'...

remote: Counting objects: 861, done.

remote: Total 861 (delta 0), reused 0 (delta 0), pack-reused 861

Receiving objects: 100% (861/861), 629.50 KiB | 335.00 KiB/s, done.

Resolving deltas: 100% (544/544), done.

Checking connectivity... done.

root@u5pvr-debian:~#


받은 위치로 이동하여 빌드합니다.


root@u5pvr-debian:~# cd ympd/

root@u5pvr-debian:~/ympd# ls

CMakeLists.txt  LICENSE  README.md  cmake  contrib  htdocs  src  tools  ympd.1

root@u5pvr-debian:~/ympd# mkdir build

root@u5pvr-debian:~/ympd# cd build

root@u5pvr-debian:~/ympd/build# cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28")

-- Configuring done

-- Generating done

-- Build files have been written to: /root/ympd/build

root@u5pvr-debian:~/ympd/build# make && make install

Scanning dependencies of target mkdata

[ 12%] Building C object CMakeFiles/mkdata.dir/tools/mkdata.c.o

Linking C executable mkdata

[ 12%] Built target mkdata

[ 25%] Generating assets.c

Scanning dependencies of target ympd

[ 37%] Building C object CMakeFiles/ympd.dir/src/ympd.c.o

[ 50%] Building C object CMakeFiles/ympd.dir/src/mpd_client.c.o

[ 62%] Building C object CMakeFiles/ympd.dir/src/mongoose.c.o

[ 75%] Building C object CMakeFiles/ympd.dir/src/json_encode.c.o

[ 87%] Building C object CMakeFiles/ympd.dir/src/http_server.c.o

[100%] Building C object CMakeFiles/ympd.dir/assets.c.o

Linking C executable ympd

[100%] Built target ympd

[ 12%] Built target mkdata

[100%] Built target ympd

Install the project...

-- Install configuration: ""

-- Installing: /usr/bin/ympd

-- Installing: /usr/share/man/man1/ympd.1

root@u5pvr-debian:~/ympd/build#


설치가 정상적으로 되었습니다. 실행은 아래와 같이 합니다.


root@u5pvr-debian:~# ympd -h 127.0.0.1 -p 6600 -w 0.0.0.0:7700

MPD Connecting to 127.0.0.1:6600

MPD connected.


ympd -h mpd주소 -p mpd포트 -w 웹UI주소:포트


따라서 http://u5pvr_ip_address:7700/ 으로 이동해 보시면 아래의 Web UI 가 열립니다.





간단히 웹 리모콘이 생겼습니다.



그런데 프로그램 실행을 매번 저렇게 할 수 없음으로 init.d 스크립트를 추가합니다. 

(귀찮으시면 nohup & 을 사용하셔도 됩니다.)


root@u5pvr-debian:~# nano /etc/init.d/ympd



#!/bin/sh
### BEGIN INIT INFO
# Provides:          ympd
# Required-Start:    $remote_fs mpd
# Required-Stop:     $remote_fs mpd
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Daemonized version of ympd.
# Description:       Enable service provided by ympd.
### END INIT INFO
#Author: Andrew Karpow <andy@ndyk.de>

. /lib/lsb/init-functions

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="ympd Daemon"
NAME=ympd
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
LOG_OUT=/var/log/$NAME.out
LOG_ERR=/var/log/$NAME.err
YMPD_USER=root
MPD_HOST=localhost    <-- MPD 호스트 설정
MPD_PORT=6600        <-- MPD 포트 설정
WEB_PORT=7700        <-- webui 포트 설정


# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

DAEMON_OPT="--user $YMPD_USER --webport $WEB_PORT --host $MPD_HOST --port $MPD_PORT"

do_start()
{
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
        --exec $DAEMON --test > /dev/null || return 1
    start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
        --exec $DAEMON -- $DAEMON_OPT || return 2
}

do_stop()
{
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"

    [ "$RETVAL" = 2 ] && return 2
    rm -f $PIDFILE
    return "$RETVAL"
}

case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  status)
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
    ;;
  restart|force-reload)
    #
    # If the "reload" option is implemented then remove the
    # 'force-reload' alias
    #
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0|1)
        do_start
        case "$?" in
            0) log_end_msg 0 ;;
            1) log_end_msg 1 ;; # Old process is still running
            *) log_end_msg 1 ;; # Failed to start
        esac
        ;;
      *)
        # Failed to stop
        log_end_msg 1
        ;;
    esac
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;
esac



root@u5pvr-debian:~# chmod a+x /etc/init.d/ympd
root@u5pvr-debian:~# update-rc.d ympd defaults            <-- 부팅시 자동실행
root@u5pvr-debian:~# 

# service 명령이 잘 먹는지 확인 -> 잘 됩니다.
root@u5pvr-debian:~# service ympd restart
[ ok ] Restarting ympd Daemon: ympd.
root@u5pvr-debian:~# service ympd stop
[ ok ] Stopping ympd Daemon: ympd.
root@u5pvr-debian:~# service ympd start
[ ok ] Starting ympd Daemon: ympd.
root@u5pvr-debian:~#


++ 번외편


기본적으로 리눅스 펌웨어에는 음악 태그 깨짐을 해결할 수 있는 명령이 들어가 있습니다.


음악이 들어있는 폴더로 이동하여 mp3conv 라고 입력하면 태그를 cp949 바꾸어 태그가 깨지지 않게 해줍니다.


하위 폴더까지 모조리 싹 다 바꿔줍니다. (ogg mp3 flac 파일들)


root@u5pvr-debian:/# cd /mnt/sda/sda1/music

root@u5pvr-debian:/mnt/sda/sda1/music# mp3conv

('Updating', 'WINNER - REALLY REALLY.mp3')

('Updating', Marry Me.mp3')

..................


이렇게 DAC 과 연동을 하게 되면 나만의 오디오 시스템이 구축 가능합니다.


물론 SPI 통신을 통해 DAC 과 연동을 해 보고 싶지만 잘 모르겠네요 ㅎㅎ..


감사합니다.


http://cafe.naver.com/mk802/20765


U5PVR Supporter Team




안녕하세요. 이번에는 리눅스 펌웨어의 설치 및 백업 복구 방법에 대해서 알아볼 예정입니다.


리눅스 펌웨어의 경우 초기 배포 이후 거의 업데이트가 없을 예정입니다. 크리티컬한 에러가 있을 경우에만 패치가 이루어질 예정입니다.


설치 이미지의 경우 윈도우 복구 이미지라고 생각하시면 편하실 것 같습니다.



0. 설치 파일 정보


(링크 미공개)


위 링크로 이동하시면 update.zip 파일들이 있습니다.



위 파일은 리눅스 펌웨어를 초기에 설치할 경우나 리눅스 펌웨어를 초기화 하고 싶으실 경우에 사용하는 update.zip 파일 입니다.



위는 현 리눅스 환경을 백업하시고 싶으실 때 사용하는 update.zip 파일입니다. 왼쪽이 백업할 경우 사용하는 파일, 오른쪽이 백업된 파일을 설치하는 update.zip 파일입니다.


아쉽게도 update.zip 파일을 선택하여 설치하는 방식이 U5PVR 에 지원이 되지 않는 상황이기 때문에 USB 에 파일을 넣으시고 update.zip 이라고 이름을 바꾸어 설치를 하셔야 합니다.



만약에 위 처럼 USB 에 복사한다고 할 경우 파일이름을 update.zip 으로 바꾸신 다음에 작업을 하셔야합니다.


(차후에 좋은 방법이 있다면 글을 수정하도록 하겠습니다.



1. 리눅스 펌웨어 신규 설치하기


기본적으로 U5PVR 을 받으시면 리눅스 펌웨어가 설치되어 있지 않은 상태입니다. 설치를 하실 경우 0번 에서 update-0327-linux-final.zip 파일을 받으신 다음에 USB 에 넣고 이름을 update.zip 으로 바꾸어 주시면 됩니다.


U5PVR 의 전원을 뒤쪽에 있는 스위치를 통해 끄고 아래의 방법 중 하나를 이용하여 설치를 하시면 됩니다.


1. 뒤쪽 전원 스위치를 통해 전원을 키신 다음에 리모컨으로 OK 버튼을 여러번 눌러줍니다. 그러면 액정에 UPDATE 라는 글자가 표시되고 업데이트가 진행이 됩니다. (U5PVR 슬림 및 디럭스 모두 가능)


2. 앞 쪽의 전원 스위치를 누른 상태에서 뒤쪽의 전원스위치를 통해 U5PVR 전원을 킵니다. 그러면 액정에 UPDATE 라는 글자가 표시되고 업데이트가 진행이 됩니다. (U5PVR 디럭스만 가능)


영상으로 보여 드리도록 하겠습니다.


<동영상>


업데이트가 진행되면 여느와 동일하게 U5PVR 이 동작하고 백그라운드로 리눅스가 동작하게 됩니다.



2. 리눅스 펌웨어 현 상태 백업하기


0번 링크에서 update-backup-linux.zip 파일을 받습니다. USB 에 넣고 파일 이름을 update.zip 으로 바꾼 다음에 1번의 설치 방법을 참고하여 설치를 진행합니다.


설치를 진행하게 되면 SDCARD -> config_linux -> linux_backup.tar 파일이 생성됩니다.

(U5PVR 자체 내장 ROM 용량이 부족하면 백업에 실패할 수 있습니다.)


다음으로 SDCARD -> config_linux 폴더 전체를 다른 곳에 백업하시면 되겠습니다.


config_linux 폴더를 복사하실 때 삼바를 이용해 주시면 편리합니다.



차후에 안드로이드를 초기화 하거나 업데이트가 있을 경우 data 파티션을 포맷해야하는 경우가 생기는데, 이 경우 사용해 주시면 됩니다.



3. 리눅스 펌웨어 백업 본 설치하기


SDCARD 최상단에 백업해 둔 config_linux 폴더를 복사합니다.


그 후 update-install-backup-linux.zip 파일을 통해 update 를 하시면 전에 백업된 상태로 돌아오게 됩니다.


용량 부족 문제를 방지하기 위해서 linux_backup.tar 파일은 자동으로 삭제 되도록 되어 있습니다.




감사합니다.


http://cafe.naver.com/mk802/20388




안녕하세요. 이번에는 U5PVR 에 설치한 APM 서버를 활용해 보도록 하겠습니다.


1. XpressEngine 설치

2. Wordpress 설치

3. phpsysinfo 설치

4. nextcloud 설치

5. h5ai 설치


이 순서대로 진행하도록 하겠습니다.


웹 서비스 설치 과정상 가상호스트 부분은 다루지 않습니다. 가상호스트 부분은 카페의 검색을 통해서 설정해 주시면 됩니다. 대부분 사용자분들은 가상호스트가 지원되는 도메인을 사용하는것이 아니라 iptime.org 의 도메인을 사용하고 있어서 서브도메인 설정이 불가능한 상태입니다.


따라서 이번 가이드는 가상호스트 1개로 설정하는 가이드를 작성하려고 합니다.



0. 표준 시간대 맞추기


기본적으로 설정이 되어 있지 않아서 표준 시간대를 맞춰 주셔야 합니다.


root@u5pvr-debian:/mnt/sda/sda1/htdocs# dpkg-reconfigure tzdata


Current default time zone: 'Asia/Seoul'

Local time is now:      Wed Apr 12 19:28:00 KST 2017.

Universal Time is now:  Wed Apr 12 10:28:00 UTC 2017.


root@u5pvr-debian:/mnt/sda/sda1/htdocs#




시간이 맞는지 확인합니다.


root@u5pvr-debian:/mnt/sda/sda1/htdocs# date

Wed Apr 12 19:29:20 KST 2017

root@u5pvr-debian:/mnt/sda/sda1/htdocs#





1. 웹루트 옮기기


실제로 기본 웹 루트는 /var/www/html 로 지정되어 있습니다.


그러나 리눅스 펌웨어의 경우 안드로이드 파티션의 data 에 설치가 되기 때문에 실 용량은 10GB 정도로 웹서버를 구동하기에 용량이 쬐끔 부족합니다. 


저는 이번에 사타 하드디스크로 웹 루트를 옮겨서 가이드를 작성해 보도록 하겠습니다.

(심링크나 바인드 마운트로 해결할 수 있지만 심링크의 경우 특정 웹 서비스에 문제가 생기고 바인드 마운트의 경우 U5PVR 을 재시작할 때 마다 지정해 줘야합니다. -> 물론 스크립트로 해결이 가능합니다.)


SATA 디스크는 /mnt/sda/sda1 으로 잡혀있는 상태입니다.


사타 디스크의 경우 NTFS 파일 시스템으로 되어 있어서 특정한 웹 어플리케이션이 웹루트에 대해서 특정한 권한을 요구하거나 하게 되면 문제가 발생합니다.


해결책으로는 ext4 로 포맷하여 디스크를 붙이는 것입니다.


저는 ext4 로 포맷한 상태에서 가이드를 작성하고 있습니다.


그럼 시작합니다.


저는 /mnt/sda/sda1/htdocs 폴더를 생성하고 그 폴더를 웹루트로 사용하겠습니다.


기본적으로 웹루트를 수정하기 위해서는 아래의 수정과정을 거쳐야 합니다.


일단 웹루트로 사용될 폴더를 지정합니다.


root@u5pvr-debian:~# mkdir /mnt/sda/sda1/htdocs

root@u5pvr-debian:~#


다음으로 /etc/apache2/apache2.conf 파일과 /etc/apache2/sites-enabled/000-default.conf 파일을 수정합니다.


root@u5pvr-debian:~# nano /etc/apache2/apache2.conf


# 쭉 내리다 보면 아래의 부분이 있습니다.


        Options FollowSymLinks

        AllowOverride None

        Require all denied

</Directory>


<Directory /usr/share>

        AllowOverride None

        Require all granted

</Directory>


<Directory /mnt/sda/sda1/htdocs>    <-- 경로를 수정합니다.

        Options Indexes FollowSymLinks

        AllowOverride None

        Require all granted

</Directory>


#<Directory /srv/>

#       Options Indexes FollowSymLinks

#       AllowOverride None



root@u5pvr-debian:~# nano /etc/apache2/sites-enabled/000-default.conf


<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port t$
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /mnt/sda/sda1/htdocs    <-- 이 부분을 수정합니다.

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn


이것으로 디렉터리 설정은 끝났습니다.


추가적으로 웹서버 실행계정인 www-data 가 외장 디스크를 읽을 권한이 필요함으로 아래의 권한을 줍니다.


root@u5pvr-debian:~# adduser www-data aid_media_rw

The user `www-data' is already a member of `aid_media_rw'.


root@u5pvr-debian:~# adduser www-data aid_sdcard_r

The user `www-data' is already a member of `aid_sdcard_r'.

root@u5pvr-debian:~#


웹서버를 재시작 합니다.


root@u5pvr-debian:~# service apache2 restart

[ ok ] Restarting web server: apache2.

root@u5pvr-debian:~#



2. XE 설치하기


XE 설치파일을 공식 사이트에서 받으셔서 압축을 푸신 다음에 WinSCP 로 넣어주시거나 아니면 아래의 wget 으로 직접 받으셔도 무방합니다.


https://www.xpressengine.com/


아래 설명에서 wget 으로 받는 주소는 그떄 그때 다를 수 있습니다!!


root@u5pvr-debian:~# cd /mnt/sda/sda1/htdocs

root@u5pvr-debian:/mnt/sda/sda1/htdocs# wget http://download.xpressengine.com/download/18325662/22755789

converted 'http://download.xpressengine.com/download/18325662/22755789' (ANSI_X3.4-1968) -> 'http://download.xpressengine.com/download/18325662/22755789' (UTF-8)

--2017-04-12 19:17:13--  http://download.xpressengine.com/download/18325662/22755789

Resolving download.xpressengine.com (download.xpressengine.com)... 1.255.50.158, 1.255.50.165

Connecting to download.xpressengine.com (download.xpressengine.com)|1.255.50.158|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 11828919 (11M) [application/zip]

Saving to: '22755789'


22755789                        100%[=======================================================>]  11.28M  11.0MB/s   in 1.0s


2017-04-12 19:17:15 (11.0 MB/s) - '22755789' saved [11828919/11828919]


root@u5pvr-debian:/mnt/sda/sda1/htdocs#


받은 파일의 압축을 풀기 위해서 unzip 패키지를 설치하고 압축을 풀어줍니다.


root@u5pvr-debian:/mnt/sda/sda1/htdocs# apt-get install unzip

Reading package lists... Done

Building dependency tree

Reading state information... Done

unzip is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

root@u5pvr-debian:/mnt/sda/sda1/htdocs#


root@u5pvr-debian:/mnt/sda/sda1/htdocs# unzip 22755789

Archive:  22755789

   creating: xe/

   creating: xe/modules/

   creating: xe/modules/rss/

  inflating: xe/modules/rss/rss.model.php

  inflating: xe/modules/rss/rss.admin.view.php

  inflating: xe/modules/rss/rss.controller.php

  inflating: xe/modules/rss/rss.view.php

  inflating: xe/modules/rss/rss.admin.controller.php

   creating: xe/modules/rss/tpl/

  inflating: xe/modules/rss/tpl/atom10.html

.........

# 생각하시는 경로에 맞게 압축이 풀렸는지 확인합니다. 
# 저는 /mnt/sda/sda1/htdocs/xe 로 풀려고 하고 있습니다.
# 확인을 하고 받은 압축파일은 지워줍니다.

root@u5pvr-debian:/mnt/sda/sda1/htdocs# ls
22755789  xe
root@u5pvr-debian:/mnt/sda/sda1/htdocs# cd xe
root@u5pvr-debian:/mnt/sda/sda1/htdocs/xe# ls
CONTRIBUTING.md  LICENSE    addons  classes               common         config     layouts  m.layouts  widgets
COPYRIGHT        README.md  admin   codeception.dist.yml  composer.json  index.php  libs     modules    widgetstyles
root@u5pvr-debian:/mnt/sda/sda1/htdocs/xe# cd ..
root@u5pvr-debian:/mnt/sda/sda1/htdocs# rm 22755789
root@u5pvr-debian:/mnt/sda/sda1/htdocs#

# www-data 로 소유자 및 그룹을 설정합니다.
root@u5pvr-debian:/mnt/sda/sda1/htdocs# chown www-data:www-data -R xe


다음으로 phpmyadmin 으로 접근하여 xpressengine 에 사용할 DB 를 하나 생성합니다.



다음 http://u5pvr_ip_address/xe 로 접근하여 xe 설치를 진행합니다.




아래의 오류가 뜨면 퍼미션을 한번 확인해 주시길 바랍니다.





아래의 정보를 입력합니다.


호스트네임을 꼭 localhost 로 해 주시길 바랍니다.





초기 계정 설정을 합니다.



정상적으로 설치가 완료 되었습니다.



대시보드 입니다.





쉬운설치도 잘 동작합니다.




이렇게 XE 를 설치해서 운용이 가능합니다.


차후에 속도 테스트 겸 제가 테스트 페이지를 하나 올리도록 하겠습니다.



3. php 를 통한 업로드 용량 제한 해결하기


기본적으로 php 업로드 용량이 2MB 로 제한이 되어 있습니다.


이 문제를 해결하기 위해서 아래의 설정을 진행합니다.


(실제로 3GB 도 업로드 해 보았습니다만 그 이상의 용량도 올락가는 지는 모르겠네요.)



php.ini 파일이 내용이 길기 때문에 F6 을 통해 검색 후 수정을 해 주시면 편리합니다.

(차후에 기초 쉘 사용법 강좌가 올라갈 예정입니다.)


아래와 같이 값을 수정하고 아파치 서버를 재시작하면 업로드 용량 제한이 16GB 로 바뀌었음을 볼 수 있습니다.

한편 업로드 관련하여 tmp 디렉터리가 내부 SD카드에 존재하면 


초기에 업로드 진행시 내장 SD카드로 업로드 되었다가 -> 지정한 디렉터리로 옮겨가기 때문에 이 오버헤드를 줄이기 위해서 아래와 같이 설정합니다.


root@u5pvr-debian:~# mkdir /mnt/sda/sda1/tmp

root@u5pvr-debian:~# chmod 777 /mnt/sda/sda1/tmp

root@u5pvr-debian:~# nano /etc/php5/apache2/php.ini


max_input_time = 86400

max_execution_time = 86400
post_max_size = 16384M
upload_max_filesize = 16384M
upload_tmp_dir = /mnt/sda/sda1/tmp

root@u5pvr-debian:~# service apache2 restart
[ ok ] Restarting web server: apache2.
root@u5pvr-debian:~#


XE 에서 게시판 업로드 용량 제한을 체크해 보겠습니다. 실제로는 16기가 까지 올라가는지는 모르겠지만 3기가는 성공했습니다.




4. wordpress 설치하기


2번과 동일하게 워드프레스에 사용될 DB 하나를 생성합니다.


저는 wordpress 라고 생성하였습니다.



그리고 설치파일을 내려받습니다.


https://ko.wordpress.org/


아래의 과정으로 설치를 진행합니다.


다운을 받고 압축을 풀고 권한을 www-data 에 주는 과정입니다.


root@u5pvr-debian:~# cd /mnt/sda/sda1/htdocs/

root@u5pvr-debian:/mnt/sda/sda1/htdocs# wget https://ko.wordpress.org/wordpress-4.7.3-ko_KR.zip

converted 'https://ko.wordpress.org/wordpress-4.7.3-ko_KR.zip' (ANSI_X3.4-1968) -> 'https://ko.wordpress.org/wordpress-4.7.3-ko_KR.zip' (UTF-8)

--2017-04-13 19:31:06--  https://ko.wordpress.org/wordpress-4.7.3-ko_KR.zip

Resolving ko.wordpress.org (ko.wordpress.org)... 66.155.40.250, 66.155.40.249

Connecting to ko.wordpress.org (ko.wordpress.org)|66.155.40.250|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 9218185 (8.8M) [application/zip]

Saving to: 'wordpress-4.7.3-ko_KR.zip'


wordpress-4.7.3-ko_ 100%[=====================>]   8.79M  3.44MB/s   in 2.6s


2017-04-13 19:31:10 (3.44 MB/s) - 'wordpress-4.7.3-ko_KR.zip' saved [9218185/9218185]


root@u5pvr-debian:/mnt/sda/sda1/htdocs# unzip wordpress-4.7.3-ko_KR.zip
root@u5pvr-debian:/mnt/sda/sda1/htdocs# chown www-data:www-data -R wordpress
root@u5pvr-debian:/mnt/sda/sda1/htdocs#


설치를 위해 http://u5pvr_ip_address/wordpress 로 접근합니다.



DB 설정을 진행합니다.


사용하실 DB 이름과 mysql 계정을 입력하세요.


(항상 저는 테스트용이기 때문에 root로 설정해 둡니다. 보안을 위해서라면 아니지요 ㅎㅎ)




사이트 설정을 진행합니다.




설치가 다 되면 아래처럼 로그인 창이 뜹니다.



로그인 후에는 대시보드가 뜨네요.



테스트로 게시글 하나 작성해 보았습니다. 


첨부파일로 피스파이스 9.1 을 첨부했네요..


잘 됩니다.





5. phpsysinfo 설치하기


phpsysinfo 는 시스템 정보를 웹으로 보여주는 웹 어플리케이션입니다.


http://phpsysinfo.github.io/phpsysinfo/


아래의 방법으로 설치를 진행합니다.


root@u5pvr-debian:/mnt/sda/sda1/htdocs# wget https://github.com/phpsysinfo/phpsysinfo/archive/v3.2.7.zip

converted 'https://github.com/phpsysinfo/phpsysinfo/archive/v3.2.7.zip' (ANSI_X3.4-1968) -> 'https://github.com/phpsysinfo/phpsysinfo/archive/v3.2.7.zip' (UTF-8)

--2017-04-13 19:42:57--  https://github.com/phpsysinfo/phpsysinfo/archive/v3.2.7.zip

Resolving github.com (github.com)... 192.30.255.112, 192.30.255.113

Connecting to github.com (github.com)|192.30.255.112|:443... connected.

HTTP request sent, awaiting response... 302 Found

Location: https://codeload.github.com/phpsysinfo/phpsysinfo/zip/v3.2.7 [following]

converted 'https://codeload.github.com/phpsysinfo/phpsysinfo/zip/v3.2.7' (ANSI_X3.4-1968) -> 'https://codeload.github.com/phpsysinfo/phpsysinfo/zip/v3.2.7' (UTF-8)

--2017-04-13 19:42:58--  https://codeload.github.com/phpsysinfo/phpsysinfo/zip/v3.2.7

Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120

Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: unspecified [application/zip]

Saving to: 'v3.2.7.zip'


v3.2.7.zip                          [            <=>                                         ]   1.24M   497KB/s   in 2.6s


2017-04-13 19:43:02 (497 KB/s) - 'v3.2.7.zip' saved [1298976]


root@u5pvr-debian:/mnt/sda/sda1/htdocs#


root@u5pvr-debian:/mnt/sda/sda1/htdocs# unzip v3.2.7.zip

Archive:  v3.2.7.zip

47a06bb5baa48c7a0d6d0b05eb6cd2a4724f4345

   creating: phpsysinfo-3.2.7/

 extracting: phpsysinfo-3.2.7/.gitignore

  inflating: phpsysinfo-3.2.7/.htaccess

  inflating: phpsysinfo-3.2.7/.travis.yml

  inflating: phpsysinfo-3.2.7/CHANGELOG.md

  inflating: phpsysinfo-3.2.7/COPYING

  inflating: phpsysinfo-3.2.7/Dockerfile

  inflating: phpsysinfo-3.2.7/README.md

........

# 제가 원하는 웹 URL 모양과 다르기 때문에 mv 명령으로 이름을 바꿉니다.
root@u5pvr-debian:/mnt/sda/sda1/htdocs# ls
22755789  phpsysinfo-3.2.7  v3.2.7.zip  wordpress  wordpress-4.7.3-ko_KR.zip  xe
root@u5pvr-debian:/mnt/sda/sda1/htdocs# mv phpsysinfo-3.2.7/ phpsysinfo
root@u5pvr-debian:/mnt/sda/sda1/htdocs# chown www-data:www-data -R phpsysinfo/
root@u5pvr-debian:/mnt/sda/sda1/htdocs#


http://u5pvr_ip_address/phpsysinfo 로 이동하여 확인해 봅니다.


아래처럼 에러가 발생합니다.


이 문제는 config 파일을 설정해 주지 않아서 발생하는 문제인데 저는 기본 셋팅값을 쓰도록 하겠습니다.



root@u5pvr-debian:/mnt/sda/sda1/htdocs# cd phpsysinfo/

root@u5pvr-debian:/mnt/sda/sda1/htdocs/phpsysinfo# ls

CHANGELOG.md  README.md         data      index.php  language            phpsysinfo3.xsd  sample     xml.php

COPYING       README_PLUGIN.md  gfx       js         phpsysinfo.ini.new  plugins          templates

Dockerfile    composer.json     includes  js.php     phpsysinfo.xslt     read_config.php  tools

root@u5pvr-debian:/mnt/sda/sda1/htdocs/phpsysinfo# mv phpsysinfo.ini.new phpsysinfo.ini

root@u5pvr-debian:/mnt/sda/sda1/htdocs/phpsysinfo#


다시한번 접근해 봅니다.


시스템 정보가 일목요연하게 뜹니다 ㅎㅎ




6. nextcloud 설치하기


nextcloud 는 설정할 것이 매우 많습니다만 이번 가이드는 아주 간단히만 작성합니다.


https://nextcloud.com/


아래처럼 설치를 진행합니다.


먼저 사용할 DB 를 만듭니다. 저는 nextcloud 로 만들었습니다.





root@u5pvr-debian:/mnt/sda/sda1/htdocs# wget https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip

converted 'https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip' (ANSI_X3.4-1968) -> 'https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip' (UTF-8)

--2017-04-13 19:52:20--  https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip

Resolving download.nextcloud.com (download.nextcloud.com)... 88.198.160.133

Connecting to download.nextcloud.com (download.nextcloud.com)|88.198.160.133|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 50553989 (48M) [application/zip]

Saving to: 'nextcloud-11.0.2.zip'


nextcloud-11.0.2.zip            100%[=======================================================>]  48.21M  3.51MB/s   in 16s


2017-04-13 19:52:38 (3.04 MB/s) - 'nextcloud-11.0.2.zip' saved [50553989/50553989]


root@u5pvr-debian:/mnt/sda/sda1/htdocs# chown www-data:www-data -R nextcloud

root@u5pvr-debian:/mnt/sda/sda1/htdocs#


http://u5pvr_ip_address/nextcloud 로 이동하여 설치를 진행합니다.


아래처럼 php5-curl 모듈이 설치되지 않았다고 설치가 진행되지 않네요. 



그래서 설치를 진행하고 다시 접근합니다.


root@u5pvr-debian:/mnt/sda/sda1/htdocs# apt-get install php5-curl

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following NEW packages will be installed:

  php5-curl

0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

Need to get 24.8 kB of archives.

After this operation, 64.5 kB of additional disk space will be used.

Get:1 http://ftp.debian.org/debian/ jessie/main php5-curl armhf 5.6.29+dfsg-0+deb8u1 [24.8 kB]

Fetched 24.8 kB in 1s (23.3 kB/s)

Selecting previously unselected package php5-curl.

(Reading database ... 29295 files and directories currently installed.)

Preparing to unpack .../php5-curl_5.6.29+dfsg-0+deb8u1_armhf.deb ...

Unpacking php5-curl (5.6.29+dfsg-0+deb8u1) ...

Processing triggers for libapache2-mod-php5 (5.6.29+dfsg-0+deb8u1) ...

Setting up php5-curl (5.6.29+dfsg-0+deb8u1) ...


Creating config file /etc/php5/mods-available/curl.ini with new version

php5_invoke: Enable module curl for apache2 SAPI

php5_invoke: Enable module curl for cli SAPI

Processing triggers for libapache2-mod-php5 (5.6.29+dfsg-0+deb8u1) ...


root@u5pvr-debian:/mnt/sda/sda1/htdocs# service apache2 restart

[ ok ] Restarting web server: apache2.

root@u5pvr-debian:/mnt/sda/sda1/htdocs#



설치가 잘 진행됩니다. 관리자 계정정보를 입력해 주세요.



DB 설정입니다. 



설치가 완료되면 아래와 같이 접근이 됩니다.





관리창에 가서 시스템 정보를 보았습니다. 



추가적으로 .htaccess 부분과 https SSL 설정 등을 해야하지만 이 가이드에서는 작성하지 않도록 하겠습니다.


파일 첨부가 잘 되는지 체크하기 위해서 아래의 아이오아이 영상과 AOA 영상을 업로드 해 보았습니다.


상단에 업로드 진행바가 보입니다.


업로드가 잘 되네요 ㅎㅎ..


올린 영상은 H264 AAC 로 브라우저에서 바로 재생이 가능한 코덱입니다.


(nextcloud 에서 트랜스코딩을 제공하진 않습니다. 웹에서 바로 재생가능한 코덱만 재생이 됩니다.)






7. h5ai 설치하기


h5ai 는 디렉터리를 리스팅하는 기능을 php 기반으로 예쁘게 만들어 주는 어플리케이션입니다.


https://larsjung.de/h5ai/


설정은 아래와 같이 진행합니다.


실은 DirectoryIndex 에 아래의 값을 추가해야합니다.


root@u5pvr-debian:~# nano /etc/apache2/mods-enabled/dir.conf


<IfModule mod_dir.c>

        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm /_h5ai/public/index.php

## 윗부분 추가

</IfModule>


# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


root@u5pvr-debian:~# service apache2 restart

[ ok ] Restarting web server: apache2.


# 저는 download 라는 폴더를 사용해 보도록 하겠습니다.

root@u5pvr-debian:~# cd /mnt/sda/sda1/htdocs/

root@u5pvr-debian:/mnt/sda/sda1/htdocs# mkdir download

root@u5pvr-debian:/mnt/sda/sda1/htdocs# cd download/

root@u5pvr-debian:/mnt/sda/sda1/htdocs/download#


root@u5pvr-debian:/mnt/sda/sda1/htdocswget https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

converted 'https://release.larsjung.de/h5ai/h5ai-0.29.0.zip' (ANSI_X3.4-1968) -> 'https://release.larsjung.de/h5ai/h5ai-0.29.0.zip' (UTF-8)

--2017-04-13 20:20:24--  https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

Resolving release.larsjung.de (release.larsjung.de)... 95.143.172.135, 2001:1a50:11:0:5f:8f:ac87:25a

Connecting to release.larsjung.de (release.larsjung.de)|95.143.172.135|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 118795 (116K) [application/zip]

Saving to: 'h5ai-0.29.0.zip'


h5ai-0.29.0.zip                 100%[=======================================================>] 116.01K  77.4KB/s   in 1.5s


2017-04-13 20:20:28 (77.4 KB/s) - 'h5ai-0.29.0.zip' saved [118795/118795]


root@u5pvr-debian:/mnt/sda/sda1/htdocsunzip h5ai-0.29.0.zip

Archive:  h5ai-0.29.0.zip

  inflating: _h5ai/.htaccess

  inflating: _h5ai/CHANGELOG.md

  inflating: _h5ai/README.md

  inflating: _h5ai/private/cache/README.md

  inflating: _h5ai/private/conf/l10n/af.json

  inflating: _h5ai/private/conf/l10n/bg.json

  inflating: _h5ai/private/conf/l10n/cs.json

  inflating: _h5ai/private/conf/l10n/da.json

  inflating: _h5ai/private/conf/l10n/de.json

  inflating: _h5ai/private/conf/l10n/el.json

  inflating: _h5ai/private/conf/l10n/en.json

  inflating: _h5ai/private/conf/l10n/es.json

  inflating: _h5ai/private/conf/l10n/et.json

  inflating: _h5ai/private/conf/l10n/fi.json

.............

# 파일이 제대로 배치가 되었는지 확인합니다.
# 아래와 같이 루트 최상위에 _h5ai 가 있어야 합니다.
root@u5pvr-debian:/mnt/sda/sda1/htdocsls
_h5ai  h5ai-0.29.0.zip

#권한을 할당해 줍니다.
# FTP 를 통해 해당 폴더에 파일도 올려야 함으로 권한을 777로 줍니다.
root@u5pvr-debian:/mnt/sda/sda1/htdocs# chown www-data:www-data -R download/
root@u5pvr-debian:/mnt/sda/sda1/htdocs# chmod 777 download/


테스트로 파일을 몇개 전송해 봅니다. 역시 AOA 영상과 IOI 영상입니다.


윈도우 파일탐색기를 통해 업로드 해 보았습니다.



윈도우 탐색기를 통한 업로드는 한글 깨짐이 발생되어 Filezilla 를 통해서 다시 업로드 합니다 ㅎㅎ..


(윈도우 탐색기의 언어셋 지원이 반쪽 짜리라서 해결이 불가능합니다. ㅠㅠ)



기본적으로 h5ai 도 영상이나 파일을 미리볼 수 있도록 하는 기능을 약간은 가지고 있습니다.





요정도로 APM 활용 가이드는 마치도록 하겠습니다.


감사합니다.


http://cafe.naver.com/mk802/20380





안녕하세요. 이번에는 U5PVR 에 APM 을 설치해 보도록 하겠습니다.


실제로는 apache2 + php5 + mysql 과 추가 의존성 패키지가 설치됩니다.


먼저 mysql 을 설치하고 apache2 와 php5 패키지를 설치하는 방향으로 가도록 하겠습니다.



1. mysql 설치하기


아래의 명령어를 통해 mysql 을 설치합니다.


root@u5pvr-debian:~# apt-get install mysql-server

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl mysql-client-5.5

  mysql-common mysql-server-5.5 mysql-server-core-5.5

Suggested packages:

  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx tinyca

The following NEW packages will be installed:

  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl mysql-client-5.5

  mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.

Need to get 0 B/8000 kB of archives.

After this operation, 85.0 MB of additional disk space will be used.

Do you want to continue? [Y/n]


설치과정중에 mysql root 비밀번호를 설정하는 창도 나옵니다만 저는 이미 한번 설치를 한 상태에서 가이드를 작성하고 있어서 그 부분은 빠져 있습니다. 보안 관련하여 비밀번호는 어려운 것으로 설정해 주시면 되겠습니다.


그런데 설치를 진행하게 되면 아래와 같이 에러가 발생합니다.


Preconfiguring packages ...

Selecting previously unselected package libaio1:armhf.

(Reading database ... 25829 files and directories currently installed.)

Preparing to unpack .../libaio1_0.3.110-1_armhf.deb ...

Unpacking libaio1:armhf (0.3.110-1) ...

Selecting previously unselected package mysql-common.

Preparing to unpack .../mysql-common_5.5.53-0+deb8u1_all.deb ...

Unpacking mysql-common (5.5.53-0+deb8u1) ...

Selecting previously unselected package libmysqlclient18:armhf.

Preparing to unpack .../libmysqlclient18_5.5.53-0+deb8u1_armhf.deb ...

Unpacking libmysqlclient18:armhf (5.5.53-0+deb8u1) ...

Selecting previously unselected package libdbi-perl.

Preparing to unpack .../libdbi-perl_1.631-3+b1_armhf.deb ...

Unpacking libdbi-perl (1.631-3+b1) ...

Selecting previously unselected package libdbd-mysql-perl.

Preparing to unpack .../libdbd-mysql-perl_4.028-2+deb8u2_armhf.deb ...

Unpacking libdbd-mysql-perl (4.028-2+deb8u2) ...

Selecting previously unselected package libterm-readkey-perl.

Preparing to unpack .../libterm-readkey-perl_2.32-1+b1_armhf.deb ...

Unpacking libterm-readkey-perl (2.32-1+b1) ...

Selecting previously unselected package mysql-client-5.5.

Preparing to unpack .../mysql-client-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-client-5.5 (5.5.53-0+deb8u1) ...

Selecting previously unselected package mysql-server-core-5.5.

Preparing to unpack .../mysql-server-core-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-server-core-5.5 (5.5.53-0+deb8u1) ...

Processing triggers for man-db (2.7.0.2-5) ...

Setting up mysql-common (5.5.53-0+deb8u1) ...

Selecting previously unselected package mysql-server-5.5.

(Reading database ... 26192 files and directories currently installed.)

Preparing to unpack .../mysql-server-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-server-5.5 (5.5.53-0+deb8u1) ...

Selecting previously unselected package libhtml-template-perl.

Preparing to unpack .../libhtml-template-perl_2.95-1_all.deb ...

Unpacking libhtml-template-perl (2.95-1) ...

Selecting previously unselected package mysql-server.

Preparing to unpack .../mysql-server_5.5.53-0+deb8u1_all.deb ...

Unpacking mysql-server (5.5.53-0+deb8u1) ...

Processing triggers for systemd (215-17+deb8u6) ...

Processing triggers for man-db (2.7.0.2-5) ...

Setting up libaio1:armhf (0.3.110-1) ...

Setting up libmysqlclient18:armhf (5.5.53-0+deb8u1) ...

Setting up libdbi-perl (1.631-3+b1) ...

Setting up libdbd-mysql-perl (4.028-2+deb8u2) ...

Setting up libterm-readkey-perl (2.32-1+b1) ...

Setting up mysql-client-5.5 (5.5.53-0+deb8u1) ...

Setting up mysql-server-core-5.5 (5.5.53-0+deb8u1) ...

Setting up mysql-server-5.5 (5.5.53-0+deb8u1) ...

[ ok ] Stopping MySQL database server: mysqld.

[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!

invoke-rc.d: initscript mysql, action "start" failed.

dpkg: error processing package mysql-server-5.5 (--configure):

 subprocess installed post-installation script returned error exit status 1

Setting up libhtml-template-perl (2.95-1) ...

dpkg: dependency problems prevent configuration of mysql-server:

 mysql-server depends on mysql-server-5.5; however:

  Package mysql-server-5.5 is not configured yet.


dpkg: error processing package mysql-server (--configure):

 dependency problems - leaving unconfigured

Processing triggers for libc-bin (2.19-18+deb8u7) ...

Errors were encountered while processing:

 mysql-server-5.5

 mysql-server

E: Sub-process /usr/bin/dpkg returned an error code (1)

root@u5pvr-debian:~#


이 에러를 해결하기 위해서 mysql 계정을 aid_inet 그룹에 추가를 합니다.

(안드로이드와 커널을 공유하기 때문에 소켓 권한을 주기 위해서 aid_inet 그룹에 추가를 해야합니다.


root@u5pvr-debian:~# adduser mysql aid_inet

Adding user `mysql' to group `aid_inet' ...

Adding user mysql to group aid_inet

Done.

root@u5pvr-debian:~#


추가를 하고 나서 다시 설치 명령어를 입력하여 진행합니다.


root@u5pvr-debian:~# apt-get install mysql-server

Reading package lists... Done

Building dependency tree

Reading state information... Done

mysql-server is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

2 not fully installed or removed.

After this operation, 0 B of additional disk space will be used.

Do you want to continue? [Y/n]

Setting up mysql-server-5.5 (5.5.53-0+deb8u1) ...

[ ok ] Stopping MySQL database server: mysqld.

[ ok ] Starting MySQL database server: mysqld . ..

[info] Checking for tables which need an upgrade, are corrupt or were

not closed cleanly..

Setting up mysql-server (5.5.53-0+deb8u1) ...

root@u5pvr-debian:~#


정상적으로 설치가 완료 되었습니다.


추가적으로 이 mysql 서버를 kodi 라이브러리 sharing 용도로 사용하는 분들이 계십니다. 


공식 가이드는 이렇습니다만 제가 직접 해보지 않아서 잘 모르겠습니다.


http://kodi.wiki/view/MySQL/Setting_up_Kodi



이 부분을 하기 위해서는 mysql 바인드 설정을 127.0.0.1 이 아니라 0.0.0.0 으로 외부에서도 접근이 가능하도록 수정해 주셔야 합니다.

(여기서 말하는 외부 접속은 127.0.0.1 대역이 아닌 다른 대역에서도 접근이 가능하게 설정하는 것을 의미합니다. 공유기 포트포워딩이 되는 것이 아닙니다.)


아래의 설정파일 수정을 통해서 외부에서도 접속을 할 수 있도록 설정합니다.


root@u5pvr-debian:~# nano /etc/mysql/my.cnf


[mysqld]

#

# * Basic Settings

#

user            = mysql

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

port            = 3306

basedir         = /usr

datadir         = /var/lib/mysql

tmpdir          = /tmp

lc-messages-dir = /usr/share/mysql

skip-external-locking

#

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

bind-address            = 0.0.0.0    <-- 이 부분을 수정합니다.

#

# * Fine Tuning

#

key_buffer              = 16M

max_allowed_packet      = 16M

thread_stack            = 192K

thread_cache_size       = 8

# This replaces the startup script and checks MyISAM tables if needed

# the first time they are touched

myisam-recover         = BACKUP

#max_connections        = 100


수정 후 재시작 해 보면 아래와 같이 모든 주소에 대해서 바인딩 되어서 구동되는 mysql 데몬을 보실 수 있습니다.


root@u5pvr-debian:~# netstat -nlp | grep mysql

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      11448/mysqld

unix  2      [ ACC ]     STREAM     LISTENING     1574065  11448/mysqld        /var/run/mysqld/mysqld.sock

root@u5pvr-debian:~#



2. apache2 + php5 및 의존성 패키지 설치하기


패키지를 하나하나 수동으로 설치하기 보다 한방에 설치하기 위해서 아래의 phpmyadmin 설치 명령어를 넣습니다.

(아쉽게도 phpmyadmin 패키지는 사용이 되지 않습니다만, 지우셔도 무방합니다.)


root@u5pvr-debian:~# apt-get install phpmyadmin

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apache2 apache2-bin apache2-data apache2-utils dbconfig-common javascript-common libapache2-mod-php5 libapr1 libaprutil1

  libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjs-jquery libjs-sphinxdoc libjs-underscore libmcrypt4 libonig2

  libperl4-corelibs-perl libqdbm14 libvpx1 libxpm4 lsof php-gettext php-tcpdf php5-cli php5-common php5-gd php5-json

  php5-mcrypt php5-mysql php5-readline ssl-cert

Suggested packages:

  www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom php-pear libgd-tools libmcrypt-dev mcrypt

  php5-imagick php5-user-cache openssl-blacklist

The following NEW packages will be installed:

  apache2 apache2-bin apache2-data apache2-utils dbconfig-common javascript-common libapache2-mod-php5 libapr1 libaprutil1

  libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjs-jquery libjs-sphinxdoc libjs-underscore libmcrypt4 libonig2

  libperl4-corelibs-perl libqdbm14 libvpx1 libxpm4 lsof php-gettext php-tcpdf php5-cli php5-common php5-gd php5-json

  php5-mcrypt php5-mysql php5-readline phpmyadmin ssl-cert

0 upgraded, 33 newly installed, 0 to remove and 0 not upgraded.

Need to get 0 B/20.6 MB of archives.

After this operation, 70.8 MB of additional disk space will be used.

Do you want to continue? [Y/n]


중간에 apache2 를 사용할지 lighttpd 를 사용할지 물어보는 창이 뜹니다. apache2 를 선택하고 mysql root 비밀번호와 phpmyadmin db 의 root 계정 비밀번호를 설정하는 것이 나옵니다. 설정하신대로 입력해 주시면 됩니다.


설치가 완료 되었으면 http://u5pvr_ip_address/ 를 입력하여 브라우저에서 아래의 창이 열리는지 확인합니다.



다음으로 php 도 정상적으로 동작하는지 확인하기 위해서 아래의 코드로 파일을 하나 생성합니다.


웹서버 실행 계정 www-data 가 읽어야 함으로 www-data 에게 권한을 줍니다.


root@u5pvr-debian:~# nano /var/www/html/phpinfo.php


<?php phpinfo(); ?>


root@u5pvr-debian:~# chown www-data:www-data /var/www/html/phpinfo.php


다시 http://u5pvr_ip_address/phpinfo.php 를 입력하여 웹페이지에서 아래의 내용이 보이는지 확인합니다.




3. phpmyadmin 설치하기


실제로는 패키지로써 설치를 하였습니다만, 설정이 되어 있지 않은 상태입니다.


따라서 아래의 설정을 진행해야 합니다.


phpmyadmin 설정을 추가해 주는 과정입니다. 추가적으로 apache2 서비스를 재시작할 때마다 에러가 나기 때문에 ServerName 을 localhost 로 설정합니다.


root@u5pvr-debian:~# nano /etc/apache2/apache2.conf


ServerName localhost

Include /etc/phpmyadmin/apache.conf


root@u5pvr-debian:~# service apache2 restart

[ ok ] Restarting web server: apache


이후 http://u5pvr_ip_address/phpmyadmin 으로 접속하면 아래의 phpmyadmin 페이지가 열립니다.



이후 로그인을 하면 아래와 같이 관리창이 뜹니다.





차후에는 설치한 웹서버에 게시판 프로그램, NextCloud, pydio, h5ai 등등을 설치하는 방법을 작성하도록 하겠습니다.


감사합니다.

http://cafe.naver.com/mk802/20363





안녕하세요. 이번에는 U5PVR 에서 WebDAV 공유를 만드는 방법에 대해서 알아보겠습니다.


기본적으로 apache2 웹서버 패키지로 구동이 됩니다.


그럼 시작하겠습니다.


1. apache2 설치 및 설정하기


먼저 apache2 패키지를 설치합니다.


root@u5pvr-debian:~# apt-get install apache2

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap

  liblua5.1-0 ssl-cert

Suggested packages:

  www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom openssl-blacklist

The following NEW packages will be installed:

  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3

  libaprutil1-ldap liblua5.1-0 ssl-cert

0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.

Need to get 1785 kB of archives.

After this operation, 4778 kB of additional disk space will be used.

Do you want to continue? [Y/n]


다음 설치가 완료되고 나면 webdav 관련 모듈을 활성화 해 줍니다.


root@u5pvr-debian:~# a2enmod dav dav_fs auth_digest

Enabling module dav.

Considering dependency dav for dav_fs:

Module dav already enabled

Enabling module dav_fs.

Considering dependency authn_core for auth_digest:

Module authn_core already enabled

Enabling module auth_digest.

To activate the new configuration, you need to run:

  service apache2 restart


여기서 다이제스트 인증을 하는 이유는 윈도우와 호환성을 높이기 위함입니다.


윈도우 8 이전까지는 레지스트리 수정을 해야 했으나 윈도우 8.1 이후 부터는 할 필요가 없습니다.


다음으로 기본적으로 활성화 되어 있는 000-default.conf 가상호스트를 disable 합니다.


(차후에 웹서버 기능까지 사용하실 분들은 아마도 고수분들이라 생각하고 코멘트를 남기지 않겠습니다 ㅎㅎ 본 가이드는 WebDAV 만 활용할 목적으로 작성이 되었습니다.)


root@u5pvr-debian:~# a2dissite 000-default

Site 000-default disabled.

To activate the new configuration, you need to run:

  service apache2 reload


webdav 전용으로 가상호스트 설정파일을 만듭니다.


아래의 설정파일은 /mnt 를 webdav 루트로 하는 설정파일입니다.


root@u5pvr-debian:~# nano /etc/apache2/sites-available/webdav.conf


<VirtualHost *:80>
    DocumentRoot /mnt
    <Directory /mnt>
        Options Indexes MultiViews FollowSymLinks
        AllowOverride none
        Require all granted
    </Directory>
    <Location />
        DAV On
        AuthType Digest
        AuthName "WebDAV"    <-- realm 값입니다. 
        AuthDigestDomain /
        AuthDigestProvider file
        AuthUserFile /etc/apache2/passwd.dav    <-- 패스워드 파일 위치
        Require valid-user
    </Location>
</VirtualHost>


설정을 완료 하였으면 가상호스트 파일을 활성화 해 줍니다.


root@u5pvr-debian:~# a2ensite webdav.conf

Enabling site webdav.

To activate the new configuration, you need to run:

  service apache2 reload


계정에 대해서 설정을 진행합니다.


djj9405 라는 계정을 추가할 예정입니다. 패스워드를 두번 입력합니다.


root@u5pvr-debian:~# htdigest -c /etc/apache2/passwd.dav WebDAV djj9405

# -c 패스워드파일위치 realm값 추가계정이름

Adding password for djj9405 in realm WebDAV.

New password:

Re-type new password:


설정이 완료 되었음으로 웹서버를 재시작 합니다.


아래처럼 에러가 뜨기는 하나 문제는 없습니다.


에러가 거슬리시는 분은 /etc/apache2/apache2.conf 에 ServerName localhost 라고 한 줄 추가해 주시면 됩니다.


root@u5pvr-debian:~# service apache2 restart

[....] Restarting web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

. ok

root@u5pvr-debian:~#


추가적으로 안드로이드 권한과 맞춰야 함으로 www-data 계정을 aid_media_rw 와 aid_sdcard_r 에 추가해 줍니다.


root@u5pvr-debian:~# adduser www-data aid_sdcard_r

Adding user `www-data' to group `aid_sdcard_r' ...

Adding user www-data to group aid_sdcard_r

Done.

root@u5pvr-debian:~# adduser www-data aid_media_rw

Adding user `www-data' to group `aid_media_rw' ...

Adding user www-data to group aid_media_rw

Done.



2. WebDAV 에 연결하기


먼저 기초적으로 작동을 하는지 알아보기 위해서 브라우저로 접근을 시도해 봅니다.



정상적으로 작동합니다.





다음은 파일 탐색기에 연결해 보도록 하겠습니다.


내컴퓨터 -> 오른쪽 -> 네트워크 위치 추가 -> 아이피 입력 -> 설정한 아이디 비밀번호 입력



정상적으로 연결이 되었습니다.



파일 구조가 잘 뜹니다만, 무슨 이유인지는 모르겠으나 심링크로 된 sdcard 나 USBDevice 내부의 파일이 보이지 않습니다. 크롬으로 접속하였을 때에는 정상적으로 보였는데 여기서는 보이지 않네요.


(덧글로 팁좀 부탁드립니다!!)



한편 파일탐색기로는 파일을 옮기려고 하면 아래의 에러가 발생하기 때문에 레지스트리 값을 수정해야하는 문제를 안고 있습니다.


파일 용량을 수정한다한들 더블클릭으로 재생이 되지 않습니다.



따라서 이번에는 넷드라이브를 이용하여 붙여 보도록 하겠습니다.


넷드라이브 구버전을 구하셔서 설치를 하시고, 아래와 같이 설정해 주시면 됩니다.



한편, 한글 파일이 깨지는 문제가 발생함으로 아래의 Advanced 를 눌러 언어셋을 UTF-8 로 맞춥니다.



연결을 하게 되면 아래와 같이 로컬디스크 처럼 뜹니다.




파일이 정상적으로 보이고 아래의 걸스데이 뮤비를 하나 재생해 보도록 하겠습니다.



큰 버퍼링 없이 잘 재생이 됩니다.



추가적으로 안드로이드 ES 파일탐색기에서 연결을 시도해 보겠습니다.


(아이폰의 경우에는 WebDAV 를 지원하는 플레이어를 사용하시면 됩니다.)







테스트로 영상 파일 하나 재생 해 보았습니다.


문제 없이 재생이 됩니다 ㅎㅎ




감사합니다. ㅎㅎ


http://cafe.naver.com/mk802/20251




안녕하세요. 이번에는 U5PVR 의 토렌트 클라이언트에 대해서 알아보도록 하겠습니다.


데몬 정보는 아래와 같습니다.


데몬 : transmission-daemon

포트 : 9091

아이디 : u5pvr

비밀번호 : u5pvr


아래의 순서대로 알아보도록 하겠습니다.


1. 기본 접속방법

2. 아이디 비밀번호 및 세부 설정하기

3. Plex Media Server 와 연동



1. 토렌트 서버에 접근하기


웹 주소창에 아래의 주소를 입력합니다.



접근하게 되면 아이디 비밀번호를 물어보게 됩니다. 


초기 설정된 아이디 비밀번호는 u5pvr 입니다.


접근해 보시면 아래와 같이 UI 가 뜹니다.



기본적으로 웹 UI 에서 토렌트 파일 추가는 아래와 같이 하시면 됩니다.


왼쪽에 토렌트 추가를 누르면 아래의 UI 가 뜹니다.


자동 시작에 체크해 주셔야 바로 다운로드가 시작됩니다.



추가적으로 다운로드 위치를 설정하는 방법은 아래와 같습니다.


왼쪽에서 4번째 아이콘 설정 아이콘을 눌러 기본 경로를 입력해 주시고 저장을 누르시면 됩니다.


(경로를 지정해 줄 경우 내장 ES 파일탐색기나 혹은 SFTP 혹은 SSH 로 경로를 확인하신 다음에 설정해 주시면 됩니다.)



예로 걸스데이 뮤직비디오와 우분투 서버 이미지를 추가해 보았습니다. 정상적으로 다운로드가 잘 됩니다.



다음은 안드로이드 스마트폰에서 Remote Transmission 앱을 통해 접근을 해 보도록 하겠습니다.


마켓 주소로 이동하셔서 설치를 해 주시길 바랍니다.


https://play.google.com/store/apps/details?id=com.neogb.rtac&hl=ko



실행하시고 아이피 정보와 계정정보를 설정합니다.



연결이 정상적으로 완료 되었습니다.



예시로 토렌트 파일을 하나 추가해 보도록 하겠습니다.





정상적으로 추가가 되었습니다.



마지막으로 PC와 연동을 해 보도록 하겠습니다.


아래의 주소로 이동하여 설치 파일을 받아주시길 바랍니다.


https://sourceforge.net/projects/transgui/files/latest/download


처음 실행하게 되면 클라이언트를 설정하는 화면이 나옵니다. 아래와 같이 설정을 해 줍니다.



정상적으로 완료가 되었다면 아래와 같이 뜨게 되고 파일을 utorrent 사용하듯이 추가를 할 수 있습니다.







2. 토렌트 클라이언트 설정하기


설정파일의 경우 /mnt/sdcard/config_linux/transmission-daemon/settings.json 파일을 직접 수정하시면 됩니다. 설정파일을 수정하는 동안 transmission-daemon 이 동작중이면 설정이 반영되지 않음으로 중지하고 수정하셔야 합니다.


수정의 경우 쉘에서 직접적으로 nano 나 vi 에디터를 사용해도 되고 WinSCP 를 통해 SFTP 로 접근하여 수정하셔도 됩니다.


저는 쉘로 작업해 보도록 하겠습니다.


먼저 데몬을 중지한 다음, 설정파일을 수정하고 다시 실행시키면 됩니다.


root@u5pvr-debian:~# service transmission-daemon stop

[ ok ] Stopping bittorrent daemon: transmission-daemon.

root@u5pvr-debian:~#


root@u5pvr-debian:~# nano /mnt/sdcard/config_linux/transmission-daemon/settings.json

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/mnt/sda/sda1",
# 다운로드 경로 수정
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "prefetch-enabled": 1,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
# 시딩 비율 설정
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "{93edd1db9aa903c1b898a29d3eac2a803b9c60faj.8BbWco",
# 비밀 번호 설정
# 입력을 하고 저장을 한 다음 다시 들어와 보면 위 처럼 암호화 되어 저장이 되어 있습니다.
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "u5pvr",
# 아이디 설정
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 0,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true
}


root@u5pvr-debian:~# service transmission-daemon start
[ ok ] Starting bittorrent daemon: transmission-daemon.
root@u5pvr-debian:~#


실질적으로 U5PVR 에서는 UUID 현재로써는 UUID 마운트를 지원하지 않고 있습니다. (차후에 대응 업데이트가 있을 수도 있습니다.)


따라서, 연결되는 외부 장치에 따라서 sda sdb sdc 등 순서가 뒤바뀔 수 있습니다.




3. Plex Media Server 와 연동


기본적으로 플렉스 서버의 라이브러리에 토렌트 다운로드 폴더가 포함이 된다면 아래처럼 다운로드 완료 시, 미디어 스캔이 자동적으로 일어남으로 미디어가 추가가 됩니다.

(변경사항 발생 시 자동으로 미디어 스캔 옵션에 체크가 되어 있어야 합니다.)



테스트로 받은 영상을 웹에서 재생해 보도록 하겠습니다.




이상으로 토렌트 서버 사용 및 설정방법에 대한 게시글을 마치도록 하겠습니다.


감사합니다.



http://cafe.naver.com/mk802/20250




안녕하세요. 이번에는 FTP 서버를 설정하고 사용하는 방법에 대해서 알아보도록 하겠습니다.


기본적으로 FTP 서버의 정보는 아래와 같습니다.


데몬정보 : pure-ftpd

포트 : 21

패시브포트 : 49152 ~ 65534

언어셋 : utf8

인증방식 : 가상계정 (pure-db 이용)


파일질라 , WinSCP , 윈도우 탐색기 , 안드로이드의 ES 파일 탐색기 , 아이폰의 N플레이어 등등 호환이 가능합니다.


아래의 순서대로 진행 하도록 하겠습니다.


1. 접속방법

2. 서버 및 계정 설정방법

3. 포트포워딩 방법


그럼 시작하겠습니다.


1. FTP 서버 접근하기


(이 글을 작성할 때 원격지에서 작성을 하여 아이피가 iptime.org 도메인으로 되어 있는점 양해 부탁드립니다.)


접속 아이피 : U5PVR 아이피 주소

포트 : 21

아이디 : u5pvr

비밀번호 : u5pvr


u5pvr 은 기본적으로 생성되어 있는 계정으로 추후 설정시 제거하셔야 합니다! 


윈도우 탐색기의 경우 ftp://U5PVR아이피주소:21/ 을 탐색기 주소에 입력하시고 아이디 비밀번호를 입력하시면 아래와 같이 접근이 됩니다.


저의 경우에는 sda 로 SATA 2.5인치 하드디스크, sdb 로 USB 메모리가 장착되어 있는 상태입니다.



내장 SD카드도 정상적으로 접근이 됩니다.


다음으로 Filezilla 프로그램으로 접근을 해 보겠습니다.


빠른연결에서 호스트에 U5PVR 아이피주로를 입력하시고 사용자명에 u5pvr 그리고 비밀번호도 u5pvr 로 입력하고 포트는 21 을 넣으시면 정상적으로 접근이 됩니다.


(원격지에서 글을 작성중이라 사진에는 2211로 되어 있습니다.)



상세하게 보도록 하겠습니다.




다음은 크롬 브라우저를 통해서 접근을 해 본 사진입니다. 파일 업로드는 할 수 없지만 다운로드는 가능하게 되어 있습니다.


WinSCP 를 통해서 접근하여 보겠습니다.


(기본적으로 SSH 가 작동중이기 때문에 SFTP 로도 접근이 가능합니다.)





마지막으로 ES 파일탐색기에서 접근해 본 사진입니다.







2. FTP 서버 설정하기


먼저 패시브포트 범위를 바꾸는 방법에 대해서 알아보겠습니다.


기본적으로는 49152 ~ 65534 로 FTP 서버 기본 값으로 설정이 되어 있습니다.


아래처럼 설정을 해 주시고 재시작 하시면 설정이 적용됩니다.


root@u5pvr-debian:~# nano /etc/pure-ftpd/conf/PassivePortRange


49152 65534

# 요기서 범위를 수정해 주시면 됩니다.


root@u5pvr-debian:~# service pure-ftpd restart

Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -8 utf8 -J ALL:!aNULL:!SSLv3 -u 0 -b -E -A -O clf:/var/log/pure-ftpd/transfer.log -9 utf8 -H -U 000:000 -p 49152:65534 -B

root@u5pvr-debian:~#


다음은 계정 설정을 해 보겠습니다.


root@u5pvr-debian:~# pure-pw list

# 현재 설정된 계정 리스트 보기

u5pvr               /mnt/./

djj9405             /mnt/./

root@u5pvr-debian:~# pure-pw userdel u5pvr

# u5pvr 계정 삭제

root@u5pvr-debian:~# pure-pw list

djj9405             /mnt/./

root@u5pvr-debian:~# pure-pw userdel djj9405

# djj9405 계정 삭제

root@u5pvr-debian:~# pure-pw list

# 설정된 계정이 없음으로 리스트에 뜨지 않음

root@u5pvr-debian:~# pure-pw useradd djj9405 -u 1023 -g 1028 -d /mnt -m

# djj9405 계정 추가

# pure-pw useradd <추가할아이디> -u <유저지정> -g <그룹지정> -d <홈폴더 지정> -m (db에 바로 업그레이드 하는 옵션)

Password:

Enter it again:

# djj9405 계정에 사용할 비밀번호를 두번 입력합니다.

root@u5pvr-debian:~# pure-pw list

djj9405             /mnt/./

# 생성한 계정이 보입니다.

root@u5pvr-debian:~# pure-pw mkdb

# 혹시 모르니 db 를 갱신해 줍니다.


계정을 생성할 경우 U5PVR 리눅스는 안드로이드 커널을 공유하기 때문에 사용자는 1023 그룹은 1028 로 꼭 설정하셔야 권한 문제가 발생하지 않습니다. 


명령어 끝에 -m 을 넣는 이유는 바로 db 에 반영을 하기 위함입니다. -m 을 넣지 않고 작업하시면 db 에 반영이 되지 않기 때문에 삭제한 계정으로도 접속이 가능해지는 경우가 있습니다. pure-pw mkdb 를 통해 db를 업데이트 하시면 바로 반영이 됩니다.


홈폴더의 경우 /mnt 로 하시면 안드로이드에서 바라보는 /mnt 와 동일한 위치입니다. 즉, 내장 SD카드와 USB나 SATA 포트로 연결된 디스크가 모두 보이는 위치입니다.



여타 계정 설정으로 속도 제한이나 접근 허용 아이피 등등을 설정할 수 있습니다.


추가적으로 홈폴더 관련하여 가상 디렉터리를 사용할 수 있습니다. 예를 들어서 보여주고 싶은 것만 공유하고 싶다면 빈 폴더를 하나 생성하여 그 폴더를 홈폴더로 지정하고 그 폴더에 심링크로 폴더를 추가하는 것입니다.


예시로 mk802 라는 계정에 홈폴더를 /home/mk802 로 설정하고 /home/mk802 폴더에 /mnt/sda/sda1 을 심링크 걸어 보도록 하겠습니다.


root@u5pvr-debian:~# mkdir -p /home/mk802

# /home/mk802 디렉터리 생성

root@u5pvr-debian:~# pure-pw useradd mk802 -u 1023 -g 1028 -d /home/mk802 -m

# mk802 계정 생성

Password:

Enter it again:

root@u5pvr-debian:~# cd /home/mk802

root@u5pvr-debian:/home/mk802# ln -s /mnt/sda/sda1 disk1

# sda1 을 disk1 과 심링크

root@u5pvr-debian:/home/mk802# ls

disk1

root@u5pvr-debian:/home/mk802#


mk802 계정으로 접근을 해 보도록 하겠습니다.




설정한 구성대로 작동이 잘 됩니다. 이처럼 원하는 방식대로 폴더를 심링크하여 홈폴더를 구성하실 수 있습니다.


기본적으로는 /mnt 를 홈폴더로 잡으면 모든 디스크에 접근이 가능하게 되어 있습니다.


폴더를 여러번 진입하는 것이 귀찮으시면 /mnt/sdcard 등을 홈폴더로 지정하면 됩니다. 그러나 다른 디스크에 접근을 할 수가 없기 때문에 심링크를 통한 작업을 하시면 더욱 더 편하게 사용이 가능합니다.



3. 외부접속을 위한 포트포워딩 하기


포트포워딩의 정보는 아래와 같습니다.


TCP 21

TCP 49152 ~ 65534


아이피 타임 공유기 기준으로는 아래와 같이 포워딩을 합니다.



21 번 포트 말고 다른 포트를 사용하셔도 되고 저는 2211 포트를 사용합니다.


패시브 포트는 설정해 주신대로 해주시면 됩니다. 기본값으로 위의 사진으로 설정하시면 됩니다.


감사합니다.


http://cafe.naver.com/mk802/20231





안녕하십니까 ?  

2012년부터 미니PC관련 test리뷰를

1,2개씩 꾸준히 진행하고 있는 EddyLab입니다. ^^

(벌써 5년차가 되었네요 ^^;;)

 

이번에 test하고 있는 미니PC기기는

국내 개발사와 유저포럼에서 협업으로 개발된 

2개 ATSC 튜너(트윈튜너) 내장 안드로이드 TV U5PVR셋탑을 test 하면서

작성한 글들을 정리하여 올려 드립니다.



국내 개발사와 유저포럼에서 협업으로 개발한 

2개 ATSC 튜너(트윈튜너) 내장 안드로이드 TV U5PVR셋탑을 test 하면서

작성한 글들을 정리하여 올려 드립니다.



1. Kodi포럼 HW 세션에 U5PVR 제품 소개가 올라가 있고, 기술검증을 하고 있습니다. 
[Android] U5PVR Hybrid 4K UHD Broadcast Tuner Set-Top (2017) - UPDATED: 17/02/19 
http://forum.kodi.tv/showthread.php?tid=305097 


==> HW 제품 사진과 상세 SPEC은 상기 Kodi 포럼 링크를 참조 해 주시기 바랍니다. 




2. U5PVR 슬림형 4K UHD 안드로이드 TV 튜너셋탑 (1) - HW관련 정보 

http://cafe.naver.com/mk802/19767 




System Resources
CPUHi3798CV200(ARM Cortex A53, Quad core 64bit)
GPUHigh-performance multi-core Mail T720
Storage Memory16GByte, eMMC 5.0
System Memory2 GByte, SDRAM

 




U5PVR제품은 2개의 제품이 있습니다.

U5PVR 슬림형 / U5PVR 디럭스형 2가지가 있습니다.

 

2개 제품의 차이점은 (U5PVR디럭스형 기준)

- RAM : 2G DDR4

- Tuner : 수신율이 향상된 튜너 (안테나 Input & Pass 단자 구성)

==> 2개의 튜너가 내장되어 있습니다만, 안테나 Input 1개로 구성이 가능하며,

Pass단자를 추가하여 TV의 튜너 안테나 입력에 추가로 연결이 가능하도록 되어 있습니다.

- 내장 3.5 inch HDD 가능 (8T / NTFS 지원)

(U5PVR 슬림형은 USB 3.0 포트 2개를 통하여 외장 2.5Inch(무전원) 지원합니다.) 


내장 ATSC 튜너를 기반으로 지상파 방송 수신과 케이블 방송 (암호화채널 제외) 시청 및

녹화(외부에서 예약 녹화 가능)가 가능하게 되었습니다.



3 U5PVR 슬림형 4K UHD 안드로이드 TV 튜너셋탑 (2) - SW관련 정보 
http://cafe.naver.com/mk802/19767 


U5PVR 튜너셋탑 제품은 안드로이드 TV OS(ATV) 5.x  기반 셋탑입니다.


이 제품은 기본적으로 4K@60fps@HEVC@10bit@BT2020@HDR10 재생 출력이 가능하고,

오디오는 ATMOS HDMI 패스쓰루를 지원 할 예정입니다.


2개의 ATSC 튜너가 내장이 되어 있어서,

지상파 방송 시청과 녹화를 동시에 지원하고 있습니다.




4. 안드로이드 & 리눅스 동시 부팅


개발사와 포럼과 협업을 통하여

최초로 안드로이드 셋탑에서 리눅스가 동시에

동작이 되도록 SW개발을 함으로써 새로운 기능을 구현하게 되었습니다.


  

즉, 기본 안드로이드TV OS(ATV OS) 기반에서 동시에 리눅스가 구동되기 때문에, 
하기 내용의 리눅스(데비안기반) 서버를 내장 하고 있습니다. 
[U5PVR] U5PVR 리눅스 펌웨어 기본 패키지 (Plex, TVheadend, FTP, Torrent) 
http://muritzy.tistory.com/1289 



이렇게 U5PVR 제품이 개발되게 된 이유는,


안드로이드 부팅만으로는 개인화 기기로만 사용이 되기 때문에, 기능이 부족하다는 점과,

리눅스 부팅 기반으로는 4K UHD 재생에 필요한 HW디코딩 지원이 어렵다는 점이 있습니다.


이를 상호 보완적 기능을 구현하기 위하여서,

별도의 OS부팅 지원이 아닌, 동시 기능 구현을 위하여 

안드로이드 커널기반으로 리눅스가 동시에 동작이 가능하도록 개발하였습니다.


아직까지 이러한 형태의 제품은 전세계에 없는 것으로 알고 있습니다. ^^


이 리눅스 Shell 환경에서 유저가 원하는 기능을 자유롭게 구축해서

사용이 가능한 환경을 제공해 드릴 수 있게 되었습니다.


이를 통하여 U5PVR은 간이 NAS수준의 기능을 구현 가능하게 되었습니다.




5. TVHeadend Server


물리적 2개튜너 + TVHeadend Server 2개 (TVH#1, TVH#2) 가 내장 구축되어져 있습니다.

TVH#1은 물리적 2개튜너의 드라이버가 연동된 스탠드얼론 TVHeadend V3.2 커스텀입니다.

TVH#2는 리눅스 기반의 TVHeadend V4.1 버젼으로서 개인적으로 쉽게 TVH를 구축 하실 수 있습니다.


EPG는 본인이 사용하기 편리한 것을 선택적으로 설정을 하시고, TVH#2에 연결하여 사용하시면 됩니다.




6. 방송 시청


방송시청 방법은 크게 3가지 방법을 지원하고 있습니다.


- U5PVR 자체 eON런처를 통하여 TVH 방송시청 및 녹화가 가능하며, 원격 녹화 예약 지원이 됩니다. (별도 스마트폰 앱 지원)

- Kodi 나 Plex Server를 통한 TVH 방송 시청 및 녹화가 가능합니다. 

(기본적으로 트랜스코딩은 지원을 하지 않고, Bypass기능만 가능하다고 보시면 됩니다.)

- 안드로이드 TV OS 기반 Live Channel 앱을 통하여 방송 시청이 가능합니다. (녹화는 향후 지원 예정)


U5PVR TVHeadend Live Channel (Beta) 동작 확인 
http://muritzy.tistory.com/1295 


채널변환 속도와 채널선택 후 화면출력 반응속도가 탁월합니다. ^^

UHDTV(UMAX) 재생도 확인하였습니다.

올해(2017년) 새로운 안드로이드 TV OS O 버젼에서는
Live Channel 기능에 PIP기능(2채널 ??)이 추가 될 예정이라고 합니다.



U5PVR TVHeadend Live Channel  동영상 캡춰 - 유투브 



7. Plex Server 내장


기본적으로 트랜스코딩 지원은 없고, Bypass기능으로 

Plex Server를 구축하여 미디어 통합 관리가 가능하도록 되었습니다.


물론 Kodi에서 Plex add-on 0.9 버젼을 쓰면 Kodi에서도 동작이 가능합니다.


아시다시피, Plex는 풍부한 메타데이터를 지원해 주는 대신에,

비디오 오디오포멧에 따라서 HW부하(트랜스코딩)을 요구하게 됩니다.


비디오 : MP4 / HEVC

오디오 : AAC

자막 : SRT

제목 : 작성법에 의하여 제목이 만들어져 있어야 합니다.

상기 4가지 조건만 맞추면, 트랜스코딩은 불필요 하게 되면서,

동시에 여러개의 영상을 재생이 가능하게 됩니다.


Plex Server의 장점은 친구 계정을 만들어서 라이브러리를 공유 할 수 있기 때문에,

어르신들께서 보실 수 있는 영화 라이브러리를 구축하여 공유가 가능합니다.

Plex 클라이언트 앱은 ATV OS기반에서는 무료로 사용이 가능합니다.

스마트폰 Plex 클라이언트 UI보다 훨씬 좋은 UI를 가지고 있습니다만,

아쉽게도 외장 재생기 연결 기능은 지원하지 않고 있습니다.



8. 내장 플레이어 영상 재생 지원 기능


기본적으로  4K@60fps@HEVC@10bit@BT2020@HDR10을 지원합니다.

PQ 영상 화질 보정 엔진을 가지고 있어서, 어떤 영상에서도 화질 보정 엔진을 이용하여,

원하시는 색감을 맞출 수 있습니다. (HDR모드에서는 PQ엔진은 지원하지 않습니다.)


블루레이 재생관련으로 ISO파일과 폴더형태 파일을 원터치로 재생 지원이 가능합니다.


3D 블루레이 재생을 지원하고, 3D 자막 댑스를 지원합니다.


3D 블루레이 재생에서 외부 자막지원은 SRT만 지원하고 있습니다.

기본적으로 Kodi에서 재생하는 것 보다 훨씬 향상된 색감으로 영상 재생이 됩니다.



9. 네트워크 지원


기본적으로 DLNA / LAN(SAMBA) / NFS 등을 지원합니다.


내부 네트워크 NAS와 CIFS로 드라이버 연결이 지원됩니다.

(가끔 연결 링크가 깨지기도 합니다만, 미디어 센터에서 네트워크 연결 상태만 확인하면

자동으로 재 연결이 되어지게 됩니다.)


내부 HDD 또는 USB 외장HDD에 녹화가 가능하고,

네트워크 지원으로 외부 NAS에 녹화도 가능합니다.


클라우드 지원으로 구글 드라이버 커넥티비티를

리눅스 기반에 설정하여 네트워크 클라우드 연동 지원이 가능합니다.

외부에서 U5PVR의 TVH서버와 연동하여 지상파 재생 시청이 가능하고,

원격으로 토랭이 다운로드와 FTP서버, 스트리밍 재생(원본화질) 지원이 가능합니다.


10. 결론


더 많은 기능을 소개 (게임 등)을 해 드리고 싶습니다만,

아직 test를 하지 못한 분야 및 좀 더 관심을 가지고 리눅스 기능을 구현해 보고 싶은 기능은

많이 있습니다.  ^^


게임은 ATV OS기반에서 2개의 게임패드를 지원하기 떄문에

2인용 게임이 가능하다고 알고 있습니다. 그러나 아직 test는 해 보지 못하였습니다.


제일 문제가 되는 기능은 안드로이드 TV OS의 태생적 문제로

안드로이드 마켓이 ATV용 마켓이라는 점입니다. 이는 쉴드TV셋탑도 마찬가지 입니다만,

원하시는 앱을 쉽게 마켓에서 다운로드 받거나 자동 업그레이드 지원이 되지 않는다는 점입니다.


이는 스마트폰을 이용하여 사이드 로딩을 위한 작업이 필요합니다만,

Send Anywhere를 이용하여 앱을 쉽게 U5PVR에 업로드가 가능하기 때문에 크게 문제는 없네요..


별도로 3'rd 마켓앱도 지원을 할 예정이라고 합니다.

 


아직 몇가지 버그등은 보입니다만,

안정화 측면에서는 ATV OS가 워낙 견고(?)해서 시스템이 죽는 일은 거의 없네요 ^^;;



Widevine DRM은 지원이 되지 않기 때문에

Netflix는 480P까지만 지원이 됩니다만,

Youtube는 4K@30까지는 지원이 됩니다.

아직 4K@60fps는 재생중 끊김현상이 있습니다.



ARM기반 시놀로지 NAS급 + 4K UHD 안드로이드 셋탑 + 트윈튜너 기능이

일체화 되어 있는 제품은 아직까지 없는 것 같습니다.



중요한 것은 가성비라고 보여집니다만,

안드로이드 기반에서 리눅스를 이용하는 자율도에 있어서는

지금까지 누려보지 못한 자유가 느껴지고, 여러가지를 즐길 수 있다는 느낌이 팍팍 듭니다. ^^


  

많은 기능중에 내가 꼭 써 보고 싶은 기능을 최대한 최적화 시켜서

사용 빈도가 높게끔 하는 것이 제일 중요하다고 판단됩니다.  ^^



U5PVR 컨텐츠 관리 아카이빙 및 재생관련







자세한 사항은 "EddyLab - 미니PC포럼"에서 자료를 참조 하시기 바랍니다.

http://www.eddylab.co.kr  /  http://cafe.naver.com/mk802








+ Recent posts