SAMBA Server 설치
1) 다음의 명령어를 차례로 입력한다.
$ sudo apt-get install samba samba-common-bin
$ sudo smbpasswd –a pi
$ sudo mkdir Media
$ sudo nano /etc/samba/smb.conf
[pi]
comment = Raspberry Samba Server
path = /home/pi/Media # 공유할 경로
valid user = pi
browseable = yes
writable = yes
create mask = 0777
2) SAMBA 서버를 재시작한다.
$ sudo service smbd restart
3) Windows 탐색기 창에 아래와 같이 주소를 입력한 후 접속한다.
\\192.168.0.x
Raspbian에 USB(저장 장소)를 마운트하기
1) 다음 명령어를 입력하여 연결된 장치들 목록을 확인한다.
$ sudo lsblk
2) Raspbian에서 'NTFS'를 인식할 수 있도록 모듈을 설치한다.
(최신 버전의 라즈비안에서는 기본적으로 설치되어 있음)
$ sudo apt-get install ntfs-3g
3) 연결되어 있는 디스크 정보를 확인한다.
$ sudo blkid
4) 저장소의 정보(PARTUUID = '......')를 잘 복사해서 메모장에 보관해놓는다.
5) 부팅 시 저장 장치의 자동 마운팅을 위해 다음의 명령어를 입력한다.
& mkdir Media
$ sudo nano /etc/fstab
6) 'fstab' 파일의 아래에 다음의 내용을 추가한다.
PARTUUID = '하드웨어 정보' 마운트할 폴더 경로 파일 시스템 defaults,noatime 0 0
PARTUUID = 'c3072e18-01' /home/pi/Media ntfs defaults,noatime 0 0
7) 재부팅한다.
$ reboot
Transmission 설치하기
1) 다음 명령어를 입력하여 Transmission-Daemon을 설치한다.
$ sudo apt-get install transmission-daemon
2) 설정을 위해 Transmission을 잠시 중지시킨다.
$ sudo service transmission-daemon stop
3) 아래와 같이 Transmission의 세부 설정을 해준다.
$ sudo nano /etc/transmission-daemon/settings.json
# "download-dir" : 저장될 경로
# "download-dir" : "/home/pi/Media/downloads"
# “incomplete-dir" : 다운로드 중인 파일을 임시로 보관할 폴더 경로, incomplete-enabled 옵션이 true일 때 동작
# "incomplete-dir" = "home/pi/Media/incomp"
# "rpc-port" : 웹 클라이언트에서 사용하는 포트
# "rpc-port" : 9091
# "rpc-password" : 웹 클라이언트 접속 시 사용할 패스워드
# "rpc-password" : 111111
# "rpc-username" : 웹 클라이언트 접속 시 사용할 아이디
# "rpc-username" : admin
# “rpc-whitelist-enable" : 웹 클라이언트 접속 시 화이트리스트를 사용할 것인지 선택
(true이면 화이트 리스트에 있는 호스트만 허용, false이면 모든 원격 호스트를 허용)
# "rpc-whitelist-enable" : false
# "upload-limit-enabled" : 업로드 속도 제한
# "upload-limit-enabled" : 1
4) 설정이 끝났으면 Transmission을 재시작한다.
$ sudo service transmission-daemon start
Transmission Remote GUI 설치하기
1) 스마트폰에 Transmission Remote GUI 설치
2) 컴퓨터에서는 'http://<ip 주소>:9091/' 에 접속하면 'Transmission Remote GUI' 를 볼 수 있다.
3) Transmission 연결 시 위에서 설정한 아이디와 비번을 입력하여 접속한다.
4) 토렌트 파일을 받아 실행하면 자동으로 라즈베리파이에 연결된 USB 메모리로 저장된다.
Kodi 설치
1) 다음의 명령어를 입력하여 'Raspbian' 에 'Kodi' 를 설치한다.
$ sudo apt-get update && sudo apt-get upgrade -y
$ sudo apt-get install kodi -y
2) 'Preference - Raspberry Pi Configuration' 의 'Performance' 항목에서 'GPU Memory' 를 256으로 변경해준다.
3) 라즈베리파이 부팅 시 자동실행을 위해 다음 명령어를 입력한다.
$ sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
4) 'autostart' 파일에 아래의 한 줄을 추가해준다.
@kodi
6) 라즈베리파이를 재부팅한다.
$ reboot
7) 라즈베리파이와 TV 또는 모니터를 HDMI 케이블로 연결하여 Kodi 화면이 정상적으로 출력되는지 확인한다.
Kodi 환경 설정
좌측 상단의 톱니바퀴 모양의 아이콘을 누른다.
'System - Interface' 를 선택한다.
'Skin - Skin' 을 선택한다.
'Get more...' 를 누른다.
'Confluence' 를 선택하여 설치한다.
'SYSTEM - Settings' 를 선택한다.
'Interface' 를 선택한다.
'Skin - Fonts' 를 선택한 후 'Arial Based' 로 변경한다.
폰트를 'Arial Based' 로 하지 않으면 한글이 깨져서 나온다.
Regional - Language' 메뉴에서 'Korean' 을 선택한다.
'서비스 - 컨트롤' 을 선택한 후 'HTTP를 통한 원격 제어 허용' 을 'on' 으로 바꾸어준다.
사용자명과 비밀번호를 설정해준다.
Kore APP 설치
1) 스마트폰으로 'Kodi' 를 원격 제어하기 위해 Kore 앱을 설치한다.
2) 'Kodi' 에서 설정한 사용자명과 비밀번호를 입력하면 스마트폰을 리모컨처럼 사용할 수 있다.
무선 공유기 설정
무선 공유기에 연결된 컴퓨터에서 웹브라우저를 실행한다.
'http://192.168.0.1' 로 접속하여 공유기 관리 모드로 들어간다.
'고급 설정 – 내부 네트워크 정보' 에서 접속된 라즈베리파이의 IP 주소를 확인한다.
'고급 설정 – NAT/라우터 관리 – 포트포워드 설정' 을 선택한다.
'내부 IP 주소', '규칙 이름', '외부 포트', '내부 포트' 를 아래와 같이 설정한 후 '추가' 해준다.
① 규칙 이름 : NAS HTTP (임의의 값)
- 내부 IP 주소 : 192.168.0.x (라즈베리파이의 IP 주소)
- 외부 포트 : 8880 (임의의 값)
- 내부 포트 : 80
② 규칙 이름 : NAS FTP (임의의 값)
- 내부 IP 주소 : 192.168.0.x (라즈베리파이의 IP 주소)
- 외부 포트 : 8821 (임의의 값)
- 내부 포트 : 21
③ 규칙 이름 : NAS Torrent (임의의 값)
- 내부 IP 주소 : 192.168.0.x (라즈베리파이의 IP 주소)
- 외부 포트 : 8891 (임의의 값)
- 내부 포트 : 9091
Transmission-Daemon - Ver 2
라즈베리파이에 USB 또는 외장 하드를 연결하면 자동 마운트가 되며 장치는 일반적으로 '/media/pi/<저장 장치 이름>' 경로에 연결된다.
'/etc/fstab' 안에 저장 장치의 PARTUUID 정보를 기록하는 방법은 자칫하면 부팅이 멈추는 불상사를 가지고 올 수 있기 때문에, 이번에는 라즈비안에 의해 기본적으로 할당되는 장치 경로를 이용해보려 한다.
1) 다음 명령어를 입력하여 Transmission-Daemon을 설치한다.
$ sudo apt-get install transmission-daemon
2) 설정을 위해 Transmission을 잠시 중지시킨다.
$ sudo service transmission-daemon stop
3) 아래와 같이 Transmission의 세부 설정을 해준다.
$ sudo nano /etc/transmission-daemon/settings.json
# "download-dir" : 저장될 경로
# "download-dir" : "/media/pi/<저장 장치 이름>/downloads"
# “incomplete-dir" : 다운로드 중인 파일을 임시로 보관할 폴더 경로, incomplete-enabled 옵션이 true일 때 동작
# "incomplete-dir" = "/media/pi/<저장 장치 이름>/incomp"
# "rpc-port" : 웹 클라이언트에서 사용하는 포트
# "rpc-port" : 9091
# "rpc-password" : 웹 클라이언트 접속 시 사용할 패스워드
# "rpc-password" : 111111
# "rpc-username" : 웹 클라이언트 접속 시 사용할 아이디
# "rpc-username" : admin
# “rpc-whitelist-enable" : 웹 클라이언트 접속 시 화이트리스트를 사용할 것인지 선택
# "rpc-whitelist-enable" : true
# "upload-limit-enabled" : 업로드 속도 제한
# "upload-limit-enabled" : 1
4) 설정이 끝났으면 Transmission을 재시작한다.
$ sudo service transmission-daemon start
5) 'Permission Denied' 문제 발생
라즈베리파이에 USB 또는 외장 하드를 연결하면 'Permission Denied' 가 발생한다.
# 문제의 원인 #
이 문제는 'transmission-daemon' 이 'debian-transmission' 이라는 유저명으로 실행되는데 이 유저가 외장 디스크에 대한 적절한 권한을 가지고 있지 않기 때문에 발생한다.
'debian-transmission' 이 권한이 없는 상태에서 처음 토렌트를 다운로드 하면, cache-size-mb 캐시에 설정된 4MB 만큼 다운로드가 되는데 이 용량을 넘으면 외장 디스크에 쓰기를 시도하게 된다.
그런데, 외장 디스크에 write 를 시도하다 외장 디스크 퍼미션 문제가 발생하여 쓰기가 되지 않고, 'Permission Denied' 상태가 되는 것이다.
4) Permission Denied 문제 해결 방법
'transmission-daemon' 를 중지한다.
$ sudo service transmission-daemon stop
'pi' 를 'debian-transmission' 그룹에 포함시킨다.
$ sudo usermod -a -G debian-transmission pi
'transmission-daemon' 의 서비스 파일 실행 유저인 'daemon-user' 를 'debian-transmission' 에서 'pi' 로 변경한다.
$ sudo nano /etc/init.d/transmission-daemon
[USER=pi]
파일의 소유권을 다음과 같이 변경한다.
$ sudo chown -R pi:pi /etc/transmission-daemon
$ sudo chown -R pi:pi /etc/init.d/transmission-daemon
$ sudo chown -R pi:pi /var/lib/transmission-daemon
'transmission-daemon' 의 시스템 파일 실행 유저를 'debian-transmission' 에서 'pi' 로 변경한다.
$ sudo nano /lib/systemd/system/transmission-daemon.service
[User=pi]
'transmission-daemon' 를 리로드한다.
$ sudo systemctl daemon-reload
'downloads' 및 'incomplete' 디렉토리의 권한을 변경한다.
$ chmod 770 /media/pi/<저장 장치 이름>/downloads
$ chmod 770 /media/pi/<저장 장치 이름>/incomp
'downloads' 및 'incomplete' 디렉토리의 소유권을 'pi' 로 변경한다.
$ sudo chown -R pi /media/pi/<저장 장치 이름>/downloads
$ sudo chown -R pi /media/pi/<저장 장치 이름>/incomp
'transmission-daemon' 의 'settings.json' 을 열고 아래 항목을 다음과 같이 재설정한다.
$ sudo nano /etc/transmission-daemon/settings.json
# "rpc-whitelist": "127.0.0.1, 192.168.*.*",
# "rpc-whitelist-enabled": true,
설정 파일을 pi 홈 디렉토리에 심볼릭 링크하고 권한을 부여한다.
$ sudo mkdir -p /home/pi/.config/transmission-daemon/
$ sudo ln -s /etc/transmission-daemon/settings.json /home/pi/.config/transmission-daemon/
$ sudo chown -R pi:pi /home/pi/.config/transmission-daemon/
'transmission-daemon' 을 재시작한다.
$ sudo service transmission-daemon start