안녕하세요. 이번에는 리눅스 펌웨어가 설치된 상태에서 루팅을 간단하게 하는 방법을 알아보겠습니다.


(deb 파일 만들기 별로 어렵지 않네요 ㅎㅎ)


일단 u5pvr 쉘로 접근합니다. 아래의 명령을 실행해 줍니다.


혹시 모를 서버 장애에 대비해서 루팅 파일도 올려 둡니다.


u5pvr-root_1.0.deb



root@u5pvr-debian:~# wget http://u5pvr.djjproject.com/u5pvr-root-android.deb

converted 'http://download.djjproject.com/u5pvr/u5pvr-root-android.deb' (ANSI_X3.4-1968) -> 'http://download.djjproject.com/u5pvr/u5pvr-root-android.deb' (UTF-8)

--2017-05-12 06:53:43--  http://download.djjproject.com/u5pvr/u5pvr-root-android.deb

Resolving download.djjproject.com (download.djjproject.com)... 1.226.113.222

Connecting to download.djjproject.com (download.djjproject.com)|1.226.113.222|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 2450168 (2.3M) [application/x-debian-package]

Saving to: 'u5pvr-root-android.deb'


u5pvr-root-android.deb    100%[======================================>]   2.34M  5.74MB/s   in 0.4s   


2017-05-12 06:53:44 (5.74 MB/s) - 'u5pvr-root-android.deb' saved [2450168/2450168]


root@u5pvr-debian:~# dpkg -i u5pvr-root-android.deb 

Selecting previously unselected package u5pvr-root-android.

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

Preparing to unpack u5pvr-root-android.deb ...

Unpacking u5pvr-root-android (1.0-djjproject) ...

Setting up u5pvr-root-android (1.0-djjproject) ...

* daemon not running. starting it now on port 5038 *

* daemon started successfully *

root@u5pvr-debian:~# reboot


다운받고 -> 설치하고 -> 리부팅


끝입니다.


루팅이 잘 되었을까요?


잘 되었습니다.


바이너리 업데이트는 일반으로 해 주시면 됩니다.







감사합니다.


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






저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG U5PVR



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


http://www.subsonic.org/



음악을 웹 혹은 모바일 장치로 스트리밍할 수 있습니다.



그럼 바로 설치해 보겠습니다.



1. JAVA 설치하기


아래의 JAVA 홈페이지로 이동하여 바이너리를 직접 받거나 아니면 download.djjproject.com 을 통해서 바이너리를 받아주시길 바랍니다.


http://www.oracle.com/technetwork/java/embedded/overview/index.html




그 다음 원하는 위치에 풀어주시길 바랍니다. 저는 /opt/ 에 풀어 보겠습니다.


root@u5pvr-debian:~# wget http://u5pvr.djjproject.com/jdk-8u131-linux-arm32-vfp-hflt.tar.gz

converted 'http://download.djjproject.com/u5pvr/jdk-8u131-linux-arm32-vfp-hflt.tar.gz' (ANSI_X3.4-1968) -> 'http://download.djjproject.com/u5pvr/jdk-8u131-linux-arm32-vfp-hflt.tar.gz' (UTF-8)

--2017-05-18 22:06:03--  http://download.djjproject.com/u5pvr/jdk-8u131-linux-arm32-vfp-hflt.tar.gz

Resolving download.djjproject.com (download.djjproject.com)... 1.226.113.222

Connecting to download.djjproject.com (download.djjproject.com)|1.226.113.222|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 81648626 (78M) [application/x-gzip]

Saving to: 'jdk-8u131-linux-arm32-vfp-hflt.tar.gz'


jdk-8u131-linux-arm32-vfp-hflt.tar.gz           100%[=======================================================================================================>]  77.87M  10.9MB/s   in 7.5s


2017-05-18 22:06:11 (10.4 MB/s) - 'jdk-8u131-linux-arm32-vfp-hflt.tar.gz' saved [81648626/81648626]


# jdk 압축파일을 opt 폴더로 옮김

root@u5pvr-debian:~# mv jdk-8u131-linux-arm32-vfp-hflt.tar.gz /opt


root@u5pvr-debian:~# cd /opt/

root@u5pvr-debian:/opt# ls

jdk-8u131-linux-arm32-vfp-hflt.tar.gz


# jdk 압축파일 압축을 품

root@u5pvr-debian:/opt# tar xf jdk-8u131-linux-arm32-vfp-hflt.tar.gz

root@u5pvr-debian:/opt# ls

jdk-8u131-linux-arm32-vfp-hflt.tar.gz  jdk1.8.0_131


# 폴더이름을 java 로 바꿈

root@u5pvr-debian:/opt# mv jdk1.8.0_131/ java

root@u5pvr-debian:/opt# rm jdk-8u131-linux-arm32-vfp-hflt.tar.gz


결론적으로 파일 구조는 아래와 같이 구성되었습니다.


root@u5pvr-debian:/opt# ls

java




2. 서브소닉 설치하기


게시글 상단 subsonic 공식 홈페이지에서 debian/ubuntu 용 설치파일 .deb 를 받습니다. 그리고 설치합니다.


root@u5pvr-debian:~# wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.0.deb

converted 'https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.0.deb' (ANSI_X3.4-1968) -> 'https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.0.deb' (UTF-8)

--2017-05-18 22:19:00--  https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.0.deb

Resolving s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)... 52.218.64.92

Connecting to s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)|52.218.64.92|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 58514186 (56M) [application/x-debian-package]

Saving to: 'subsonic-6.0.deb'


subsonic-6.0.deb                                     100%[=======================================================================================================================>]  55.80M  82.1KB/s   in 5m 19s


2017-05-18 22:24:21 (179 KB/s) - 'subsonic-6.0.deb' saved [58514186/58514186]


root@u5pvr-debian:~# dpkg -i subsonic-6.0.deb

Selecting previously unselected package subsonic.

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

Preparing to unpack subsonic-6.0.deb ...

Unpacking subsonic (6.0) ...

Setting up subsonic (6.0) ...

Started Subsonic [PID 9816, /var/subsonic/subsonic_sh.log]

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


JAVA_HOME 을 정의하지 않고 스크립트에 바로 반영을 해 보겠습니다.


root@u5pvr-debian:~# nano /usr/share/subsonic/subsonic.sh



# Use JAVA_HOME if set, otherwise assume java is in the path.

JAVA=java

if [ -e "${JAVA_HOME}" ]

    then

    JAVA=${JAVA_HOME}/bin/java

fi


# 위부분을 아래 부분으로 대체합니다.


# Use JAVA_HOME if set, otherwise assume java is in the path.

JAVA=/opt/java/bin/java


# subsonic 을 재시작합니다.

root@u5pvr-debian:~# service subsonic restart

[....] Restarting Subsonic Daemon: subsonicStarted Subsonic [PID 6298, /var/subsonic/subsonic_sh.log]

. ok

root@u5pvr-debian:~#


대략 15초 정도 기다리면 정상적으로 실행이 되어 있습니다.


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

tcp6       0      0 :::4040                 :::*                    LISTEN      9816/java

root@u5pvr-debian:~#


설치가 끝났습니다.



3. 기본설정 진행하기


웹 UI 로 접근하여 기본설정을 진행합니다.


http://u5pvr_ipaddress:4040/


처음 로그인은 admin / admin 입니다.



설정으로 이동합니다.



Media Folders 설정에서 음악이 있는 위치를 설정합니다. 여러개 설정이 가능합니다.


그리고 SAVE 버튼을 한번 누른 후, Scan Media Folders Now 를 누릅니다. 그럼 음악들이 검색이 됩니다.



그리고 USERS 탭으로 이동하여 admin 계정에 대해서 비밀번호를 수정합니다.



새 사용자는 아래와 같이 권한을 세부적으로 설정하여 생성할 수 있습니다.



본 카페에 음감 열풍이 올 조짐이 보임에 따라 원음 재생을 지원하는 스마트폰을 대상으로 아래 설정을 변경하여 원음 재생이 되도록 할 수 있습니다.


그러나 FLAC 이나 WAV 파일의 경우 파일을 원본으로 내려 재생을 하기 때문에 데이터 요금이 많이 발생될 것입니다.


아래의 트랜스코딩 옵션을 삭제하고 다운샘플 설정을 삭제하면 원음으로 재생이 가능해 집니다. 


(지원되지 않는 기기가 클라이언트로 연결될 경우 재생이 불가할  수 있습니다.)



기본적인 설정을 끝내고 음악이 스캔된 대시보드 사진입니다.



인덱스를 누르게 되면 폴더명 기준으로 나열해 줍니다.



대략적으로 아래의 방법으로 현 재생목록에 추가가 가능합니다.



한편, 재생중일 때 팝업을 지원하는 브라우저에서는 우측 하단에 지금 재생중인 음악 정보도 같이 뜹니다.



하단 플레이 바에 마우스를 올리면 아래처럼 현재 재생 목록이 서랍처럼 열립니다.



요정도로 웹 UI 를 통해 기초 설정을 하는 것과 간단 사용방법을 마칩니다.



4. Subsonic Music Streamer 공식 안드로이드 앱과 연동하기


아래의 사이트에 가시면 각종 운영체제에 맞게 만들어진 클라이언트 목록이 있습니다.


마음에 드는 것으로 사용을 하시면 됩니다.


http://www.subsonic.org/pages/apps.jsp


안드로이드에서 추천드리는 클라이언트는 아래의 두가지 입니다.


1. 공식 Subsonic Music Streamer

https://play.google.com/store/apps/details?id=net.sourceforge.subsonic.androidapp


2. 서드파티 Dsub for Subsonic

https://play.google.com/store/apps/details?id=github.daneren2005.dsub

(깃허브 릴리즈 버전 다운로드 - https://github.com/daneren2005/Subsonic/releases)


이번 글에서는 Subsonic 공식 앱과 연동을 해 보도록 하겠습니다. 


추가적으로 외부에서 사용하실 예정이시라면 포트포워딩은 아래와 같이 하시면 됩니다.



처음 키면 아래와 같이 되어 있습니다. 우측 메뉴모양을 누르고 설정으로 진입합니다.




아래에 SERVERS 탭에 있는 서버 목록을 수정하거나 새로 추가합니다.



아래처럼 사용환경에 맞게 설정을 합니다.



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





5. 한글 태그 깨짐 문제 일괄 해결하기.


U5PVR 리눅스 펌웨어에는 python-mutagen 패키지를 통한 태그 변환 명령어가 들어 있습니다.


작업 폴더에서 하위 폴더 모조리 mp3 / flac / ogg 파일에 대해서 태그를 cp949 로 바꿔 줍니다. 그 후 Subsonic 에서 다시 미디어 스캔을 돌리시면 태그가 깨지지 않습니다.




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

('Updating', './001 TWICE (\xed\x8a\xb8\xec\x99\x80\xec\x9d\xb4\xec\x8a\xa4)-01-KNOCK KNOCK.mp3')

('Updating', './001 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xed\x8c\x94\xeb\xa0\x88\xed\x8a\xb8 (Feat. G-DRAGON)_Naver81.mp3')

('Updating', './002 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xec\x9d\xb4 \xec\xa7\x80\xea\xb8\x88_Naver81.mp3')

('Updating', './002 \xec\xa0\x95\xed\x82\xa4-01-\xeb\xb6\x80\xeb\x8b\xb4\xec\x9d\xb4 \xeb\x8f\xbc (Feat. \xed\x9c\x98\xec\x9d\xb8 Of \xeb\xa7\x88\xeb\xa7\x88\xeb\xac\xb4).mp3')

('Updating', './003 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xec\x9d\xb4\xeb\x9f\xb0 \xec\x97\x94\xeb\x94\xa9_Naver81.mp3')

('Updating', './003 \xec\x97\x90\xec\x9d\xbc\xeb\xa6\xac-01-\xec\xb2\xab\xeb\x88\x88\xec\xb2\x98\xeb\x9f\xbc \xeb\x84\x88\xec\x97\x90\xea\xb2\x8c \xea\xb0\x80\xea\xb2\xa0\xeb\x8b\xa4.mp3')

('Updating', './004 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xec\x9e\xbc\xec\x9e\xbc_Naver81.mp3')

('Updating', './004 \xed\x83\x9c\xec\x97\xb0 (TAEYEON)-01-Fine.mp3')

('Updating', './005 Red Velvet (\xeb\xa0\x88\xeb\x93\x9c\xeb\xb2\xa8\xeb\xb2\xb3)-01-Rookie.mp3')

('Updating', './005 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xec\x9d\xb4\xeb\xa6\x84\xec\x97\x90\xea\xb2\x8c_Naver81.mp3')

('Updating', './006 \xeb\xb3\xbc\xeb\xb9\xa8\xea\xb0\x84\xec\x82\xac\xec\xb6\x98\xea\xb8\xb0-01-\xec\xa2\x8b\xeb\x8b\xa4\xea\xb3\xa0 \xeb\xa7\x90\xed\x95\xb4.mp3')

('Updating', './006 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-Black Out_Naver81.mp3')

('Updating', './007 \xeb\xa7\x88\xed\x81\xac\xed\x88\xbd (MAKTUB)-01-Marry Me.mp3')

('Updating', './007 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xec\x82\xac\xeb\x9e\x91\xec\x9d\xb4 \xec\x9e\x98 (With \xec\x98\xa4\xed\x98\x81)_Naver81.mp3')

('Updating', './008 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xeb\xa7\x88\xec\xb9\xa8\xed\x91\x9c_Naver81.mp3')

('Updating', './008 \xec\x95\x85\xeb\x8f\x99\xeb\xae\xa4\xec\xa7\x80\xec\x85\x98-03-\xec\x98\xa4\xeb\x9e\x9c \xeb\x82\xa0 \xec\x98\xa4\xeb\x9e\x9c \xeb\xb0\xa4.mp3')

('Updating', './009 \xeb\xb0\xa9\xed\x83\x84\xec\x86\x8c\xeb\x85\x84\xeb\x8b\xa8-15-\xeb\xb4\x84\xeb\x82\xa0.mp3')

('Updating', './009 \xec\x95\x84\xec\x9d\xb4\xec\x9c\xa0-01-\xea\xb7\xb8\xeb\xa0\x87\xea\xb2\x8c \xec\x82\xac\xeb\x9e\x91\xec\x9d\x80_Naver81.mp3')

('Updating', './010 \xeb\xb8\x94\xeb\x9d\xbd\xeb\xb9\x84 (Block B)-01-YESTERDAY.mp3')

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




이로써 Subsonic 게시글을 마치도록 하겠습니다 ㅎㅎ..


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





U5PVR Supporter Team




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG U5PVR

리눅스에서 SD 카드를 포맷하는 방법

OS/Debian 2017.05.13 03:21 Posted by 뮤리찌



cio

글: Swapnil Bhartiya | CIO | 2017.03.03



최근에는 많은 사람이 라즈베리 파이 3에 관심을 보이고 있다. 그런데 이 기기에 라즈비안(Raspbian)을 설치하려면 먼저 마이크로SD 카드를 fat32 파티션으로 포맷해야 한다. 여기서는 이 포맷 방법에 대해 살펴본다.

데스크톱 환경에 따라 포맷 작업을 하는 다양한 툴이 있으므로, 여기서는 데스크톱 환경과 무관하게 쓸 수 있는 방법, 즉 커맨드 라인을 이용한 방법을 살펴보자. 리눅스 커맨드 라인에서 SD 카드나 USB 드라이버, 마이크로SD 등을 fat32 파일 시스템으로 포맷하려면 다음과 같이 하면 된다.

1. 플래시 드라이브를 데스크톱에 삽입하고 이를 인식하기 위해 'lsblk' 명령을 실행한다. 다음과 같은 결과가 나타날 것이다. 여기서 'sdb'가 플래시 스토리지이다.

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 3.8G 0 disk
├─sdb2 8:18 1 2.4M 0 part
└─sdb1 8:17 1 1.5G 0 part /media/sandisk

2. 커맨드 라인을 이용한 포맷 툴은 여러 가지가 있지만 여기서는 필자가 최근 자주 사용하는 'parted' 유틸리티를 이용한다. 포맷하고자 하는 블록 기기 이름과 함께 'parted' 명령을 실행한다. 여기서는 'sdb'이다. 블록 이름을 잘못 사용하면 다른 드라이브가 포맷될 수도 있으므로 특히 주의해야 한다.

3. 기본 명령 형식은 다음과 같다. 포맷하려는 블록 기기 이름이 다르다면 'sdb' 부분을 바꾸면 된다.

sudo parted /dev/sdb

4. 이제 사용자 암호를 입력하라는 표시가 나오고 parted가 사용자 이름과 $ 기호를 대체한다는 알림이 등장할 것이다. parted 유틸리티가 실행됐다는 의미이다. 이제 파티션 테이블을 만들자. 여기서는 MBR(Master Boot Record)을 이용한다.

(parted) mklabel msdos

5. 일단 파티션 테이블이 만들어지면, 드라이브에 파티션을 만들 수 있다. 여기서는 파티션을 1개만 만든다.

(parted) mkpart primary fat32 1MiB 100%

6. 이제 여기에 부트 플래그를 설정하자.

(parted) set 1 boot on

7. 이제 parted 툴에서 빠져나온다.

(parted) quit

8. 이제 만든 파티션을 fat32로 포맷해야 한다. 먼저 이 파티션이 잘 만들어졌는지 확인하기 위해 'lsblk' 명령을 실행한다. 정상적으로 진행됐다면 'sdb'의 새 파티션이 볼 수 있을 것이다.

9. 이제 이를 fat32로 포맷하자.

sudo mkfs.vfat /dev/sdb1

'sdb1' 부분을 사용하는 드라이브의 파티션으로 바꾸면 된다. 다시한번 강조하지만 'sdb' 자체가 아니라 'sdb'의 파티션을 포맷해야 한다는 것을 주의하자. 지금까지 리눅스에서 외장 스토리지 기기를 포맷하는 방법을 살펴봤다. 이제 이 이동식 드라이브를 잘 사용하기만 하면 된다.



※ 본 내용은 한국IDG(주)(http://www.ciokorea.com)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒ CIO Korea. 무단전재 및 재배포 금지


[원문출처 : http://www.ciokorea.com/news/33296]




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


 

티스토리 툴바

Google+