IT/라즈베리파이2

★◆▲● 라즈비안, samba,vstfpd, 토렌트서버, kodi 설치

단디1969 2015. 6. 19. 21:29

  원문 : http://herlim.tistory.com/83


라즈비안, 외장하드 마운트, samba서버, ftp서버, 토렌트 서버, xbmc(kodi) 설치 과정


준비물 

- 마이크로SD카드(리더기), HDMI 케이블, 전원어댑터, 외장스토리지, 키보드, 모니터, 다른 PC

- USB 전원어댑터는 마이크로 usb(스마트폰용)로 왠만하면 2A 이상, 외장하드는 1TB로 붙임

- 마이크로 SD카드는 8기가면 충분


1. 마이크로 SD카드에 라즈비안 포팅


1-1. 공식사이트에서 라즈비안(RASPBIAN)을 받음- 토렌트로 받으면 빠르다.

- http://www.raspberrypi.org/downloads/


* OSMC는 XBMC OS인데 라즈비안보다 가볍다. 미디어센터만 쓸꺼면 OSMC가 가볍다.


1-2.  라즈비안을 USB메모리에포팅.

- http://sourceforge.net/projects/win32diskimager/에서 Win32 Disk Imager 다운


- Image File에 라즈비안 이미지, Device가 대상 마이크로 SD 카드, Write 클릭


1-3. 라즈베리파이 HDMI케이블로 모니터와 연결, 키보드, 전원, 랜 연결, 파워 온.



2. 라즈비안 초기설정

2-1. 시작하면 아래와 같이 초기설정이 나온다.

- 필요시 나중에 프롬프트 상에서 들어 갈 수 있다


        $ raspi-config


* 선택 : 스페이스 바, 아래줄 이동 : 탭키

1) 1. Expand Filesystem을 선택, 마이크로 SD카드의 나머지 빈 공간을 확장(엔터, 엔터)

→ 마이크로 SD카드의 미지정된 파티션을 활성화시켜서 사용 가능하게 함

2) 2. Change User Password를 선택 PI 계정 비밀번호를 바꿔준다

3) 4. Internationalisation Options 선택 

→ I1 Change Locale 선택, ko_KR.UTF-8 UTF-8 선택, 엔터, 엔터

→ I2 Change Timezone 선택, Asia 선택, Seoul 선택

→ I3 Change Keyboard Layout 선택, Generic 105-key (Intl) PC 선택, Other, Korean 선택, 

Korean - Korean (101/104 key compatible) 선택, 엔터, 엔터

4) Advanced Options 선택, A4 SSH 선택해서 SSH 활성화(디폴트로 활성회 되어 있어 안해줘도 SSH 접속됨)

- 나중에 언제든지 다시 선택할 수있으니 대충해도 된다

탭키로 finish로 나가고 자동으로 재부팅


2-2. IP주소 확인 (ssh 접속을 위해서)


    $ ifconfig



2-3. 여기서 부터는 ssh로 작업(윈도우에서 접속) puttyhttps://www.putty.org/

장점은 ClipBoard에 복사된 내용을 터미널의 커서위에 두고 우클릭만하면 내용이 자동으로 복사 되어 일일이 타자 안해도 되는것이다.


가끔 apt-get install 한는 경우 permission error 가 나는 경우가 있어 나는 install 만은 본체로 실시한다.

- putty 설정은 아래와 함께 IP주소 넣고 Open, font 설정을 해도 좋음.



- log-in : pi,     password : 아까 바꿔준 걸로   (추후 변경 가능)



* ID넣고 Passwd기다리는데 6~7초 정도 딜레이 해결방법(기다리려면 안해도 됨)

        

1. $ sudo nano /etc/pam.d/sshd 

#session    optional     pam_motd.so # [1]  ==> 주석처리


2. $ sudo nano /etc/ssh/sshd_config

GSSAPIAuthentication no  ==> 해당 옵션을 no 로 설정

UseDNS no (해당 옵션을 추가=>이것만 하면 됨.(재확인 완료)  


3. $ sudo service ssh restart


오류 발생시 ssh 접속 안되니 주의해서 작업할 것.


2-4. root 계정 비밀번호 변경


   $ sudo passwd root



2-5. 최신 업데이트 체크 및 실행


   $ sudo apt-get update

   $ sudo apt-get upgrade



3. 외장하드 연결


3-1. 초기에는 전력 제한으로, 외장하드 연결시 작게 삑삑거리고 HDD 인식 불가.

(R-Pi2 USB 500mA 공급하나, 요즘 나오는 SATA3 HDD는 700mA 필요.)


    $ sudo nano /boot/config.txt

       아래 옵션 두 개를 가장 상단에 추가(전력을 2A로 올린다)

      max_usb_current=2

      safe_mode_gpio=4


* nano 저장하고 나갈때 : Cont'l+O, Enter, Cont'l+X 


3-2. 재부팅 후 확인

- 재부팅

재부팅 : sudo reboot 또는 sudo shutdown -r now

셧다운 : sudo shutdown -h now


   $ sudo shutdown -r now


- 이제 외장하드를 연결해도 무리가 없다 (물론 어댑터는 2A 이상 필요)

- 2개의 외장하드를 사용하는 경우 유전원 허브를 이용한다.


- HDD 연결 확인


   $ sudo blkid


    * 아래와 같이 sda에 뭔가 추가되었다면 연결된 것이다.


   /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="15CD-3B79" TYPE="vfat"


   /dev/mmcblk0p2: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"


   /dev/sda1: LABEL="M-lM-^CM--3M-<M-kM-%M-(" UUID="0AFE67C5F263A6F3" TYPE="ntfs"



3-3. 외장하드가 ntfs로 설정된 경우 ntfs 인식을 위해 ntfs-3g 설치


   $ sudo apt-get install ntfs-3g  


* 참고로 파일시스템을 exfat을 쓰려면 아래와 같이 설치


    $ sudo apt-get install exfat-fuse



3-4. 마운트할 폴더를 만듭니다(원하는 곳에).


   $ sudo mkdir /home/pi/exHDD


 

3-5. 누구나 읽고 쓰고 지울 수 있게 권한 설정


   $ sudo chmod -R 777 /home/pi/exHDD



3-6. 자동 마운트 설정. (외장하드가 하나인 경우)


    $ sudo nano /etc/fstab


- 마지막줄 추가 : /dev/sda1  /home/pi/exHDD     ntfs    defaults          0       0

 proc                    /proc           proc   defaults          0       0


 /dev/mmcblk0p1  /boot           vfat    defaults          0       2

 /dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

 # a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile

 swap[on|off]  for that

 /dev/sda1       /home/pi/exHDD       ntfs    defaults        0       0



3-7. 재부팅


   $ sudo shutdown -r now



4. samba 설정


4-1. samba 설치     


   $ sudo apt-get install samba samba-common-bin



4-2. samba 계정설정


    $ sudo smbpasswd -a 삼바계정(RPI2에 설정된 계정 중 하나로 선택해야 한다.)


* samba의 경우 사용자를 자체 관리하지만 linux 기본 사용자를 기반으로 사용자를 만들수 있다.

다시 말해 linux 에 등록된 사용자만이 삼바 사용자로 추가될 수 있다. 


만약 linux 사용자에 없는 사용자를 삼바에 추가하려 한다면 아래의 오류가 출력된다.


   pi@raspberrypi ~ $ sudo smbpasswd -a test

   New SMB password:

   Retype new SMB password:

   Failed to add entry for user test.



* 정상 사용자를 선택한 경우 아래와 같이 smb 사용자가 추가된다.




* 만약 현 라즈베리파이2의 사용자가 아닌 새로운 smb 사용자를 등록하려면 라즈베리파이2 사용자로 먼저 등록 후에 해야 한다.


라즈베리파이2의 사용자 등록은 아래와 같다.



그런 연후 smb계정을 추가한다. 




4-3. samba 서버 정지(안꺼면 안된단다)


   $ sudo /etc/init.d/samba stop



4-4. samba 서버 설정


   $ sudo nano /etc/samba/smb.conf


   * 푸른색 설명은 제외해야 함.


   [global]

   workgroup=WORKGROUP

   dos charset = CP949

   display charset = UTF8

   unix charset = UTF8


    #랜섬웨어 등 보안관련 SMB v1을 제외하기위해


   min protocol = SMB2  

   max protocol = SMB2  현 samba 3.6.6은 SMB v2.0까지 지워한다고함.


    #client가 윈도우10 버전 1803 이상인 겨우, 확인 http://blog.daum.net/hevyflat/303



   #아래 그냥 이거 복사해서 갖다 붙이세요.


   [Raspberry]                               ##윈도우에서 표시되는 이름

   comment = [유저설정 맘대로]

   valid users = [위에서 설정한 계정]

   path = /home/pi/exHDD

   guest ok = no

   writable = yes

   browseable = yes

   create mask = 0777

   directory mask = 0777



* 저장하고, 나온다(콘트롤 O, 엔터, 콘트롤X).


4-5. samba 시작


   $ sudo /etc/init.d/samba start


* 정  지 : sudoservice smbd stop

  재시작 : sudo service smbd restart

  현재 접속자확인 및 공유항목 확인: smbstatus

  현재 접속자확인 : smbstatus --shares

  samba 정보확인 : testparm (smb.conf의 내용을 간추려 보여줌)


windows PC에서 아래와 같이 확인




4-6. 윈도우 탐색기에 드라이버로 연결하면 내 PC의 HDD처럼 편리하게 사용할 수 있다.


1) 윈도우 탐색이에서 네트워크의 RASPBERRYPI를 클릭, 확장한다.



2) 위 4-4(smb.conf)에서 설정한 폴더(Raspberry)와 기본폴더(Pi)가 보이는데우리가 연결하여 사용할

   Raspberry 폴더에 마우스 우클릭하여 네트워크 드라이브 연결을 클릭한다.


3) 아래와 같이 드라이브 이름을 설정하고 로그온할 때 다시 연결을 체크한다.


4) 윈도우 탐색기에 Raspberry 드라이브가 새로운 드라이브로 설치 된 것을 볼 수 있다.



5. ftp 설정


5-1. vsftpd 설치


   $ sudo apt-get install vsftpd


5-2. vsftpd 설정


   $ sudo nano /etc/vsftpd.conf


   그냥 아래와 중복되는 거 다 주석 처리하고 맨 밑에 갖다 붙이세요. (검색: Ctrl + w)

   listen=YES

   anonymous_enable=NO

   local_enable=YES

   write_enable=YES

   ascii_upload_enable=YES

   ascii_download_enable=YES

   chroot_local_user=YES


   ## ftp 접속시 vsftpd.chroot_list에 있는 계정 외에는 상위 폴더로 이동 금지

   chroot_list_enable=YES

   chroot_list_file=/etc/vsftpd.chroot_list


   ## ftp 접속포트 변경. 기본 포트 21

   listen_port=1234(포트를 1234로 변경하는 경우에만)


- 저장



5-3. ftp 계정 생성


   $ sudo nano /etc/vsftpd.chroot_list


- fpd에 사용할 계정이름을 아래와 같이 그냥 나열하면 됩니다.


- 저장



5-4. ftp 재시작


   $ sudo service vsftpd restart



5-5. ftp 확인


- 안드로이드폰에서는 es 파일 탐색기, windows에선 파일질라 클라이언트, 기타 등등등으로 접속 확인


그런데 알ftp로 전송하니 Server쪽에 있는 한글이름으로 된 화일은 깨져서 보이고 이쪽으로 전송도 안된다. 파일질라로 하니 잘 된다.



6. transmission (토렌트 서버 구성)


6-1. transmission-daemon 설치


   $ sudo apt-get install transmission-daemon



6-2. transmission-daemon 정지 (정지 안하면 아예 수정이 안된다)


   $ sudo /etc/init.d/transmission-daemon stop



6-3. 토렌트 폴더 생성


   $ sudo mkdir /home/exHDD/torrent_down



6-4. 토렌트 시드파일 폴더 생성


   $ sudo mkdir /home/exHDD/torrent_seeds



6-5. transmission 설정 수정(transmission-daemon 정지해야 수정 됨.)


- 설정 내에서는 주석처리가 안된다.

- { (대괄호)와 " (따옴표) 주의


    $ sudo nano /etc/transmission-daemon/settings.json



"download-dir": "/home/exHDD/torrent_down",     ## 다운 완료 된 파일 폴더

"incomplete-dir": "/home/exHDD/torrent_down",    ## 다운 중인 폴더 설정

"rpc-password": "계정비번",              ## 입력하면 다음 접속시 자동으로 해쉬값으로 바뀐다.

"rpc-port": 9091,                          ## (원하는 포트로)

"rpc-username": "계정명",                ## transmission 접속시 필요계정

"rpc-whitelist-enabled": false,           ## true 설정 시 rpc-whitelist의 IP접속가능, 아무데서나 붙어야죠

"script-torrent-done-enabled": true,

"script-torrent-done-filename": "/home/pi/Scripts/AutoDelete.sh",#다운완료시 토렌트목록 자동삭제

#디렉토리와 파일이름은 임의적임.알아서 변경

"trash-original-torrent-files": true,  ##다운시작시 시드파일 자동삭제 (출처)

"watch-dir": "/home/exHDD/torrent_seeds",  ## 이 폴더에 시드파일 넣으면 자동으로 토렌트 다운

"watch-dir-enabled": true


* 콤마 안찍거나 더 찍으면 몇번째줄 잘못되었다고 표시해 주니 다시한번 확인해보면 됨.

* ,(콤마) 주의. 각 줄마다 ,가 들어가고 마지막엔 ,를 안찍는다.


6-5-1 다운완료시 토렌트 목록삭제 스크립트 폴더 만들기

   pi@raspberrypi ~ $ sudo su  (매번 sudo 를 사용하기 귀찮으니 슈퍼유저 권한으로 변경)

   root@raspberrypi:~# mkdir /home/pi/Scripts

   root@raspberrypi:~# chmod 777 /home/pi/Scripts

   root@raspberrypi:~# chown -R pi /home/pi/Scripts


6-5-2 스크립트 제작

   root@raspberrypi:~# nano /home/pi/Scripts/AutoDelete.sh


* 밑에 복사하고 나서 빨강글자는 모두 삭제해야 함.

#!/bin/sh

SERVER="포트번호 --auth 아이디:비번"

: /etc/transmission-daemon/settings.json에 설정하였던 포트번호, 아이디, 비번을 정확하게 입력하도록 주의.


TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1`

for TORRENTID in $TORRENTLIST

do

    DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`

    STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`

    if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then

        transmission-remote $SERVER --torrent $TORRENTID --remove

    fi

done 


6-5-3 실행 가능하게 

   root@raspberrypi:~# chmod +x /home/pi/Scripts/AutoDelete.sh


6-6. transmission-daemon 시작


   $ sudo /etc/init.d/transmission-daemon start



6-7. 웹에서 확인 


- 웹브라우저 주소줄에 192.168.1.4:9091 넣는다(라즈베리파이 IP:트랜스미션 Port No.)



안드로이드 폰, 윈도우, 맥 등에서 Remote Transmission 깔아서 설정해 주면, uTorrent 처럼 쓸 수 있다.

- https://code.google.com/p/transmisson-remote-gui/



7. xbmc(kodi) 설치


7-1. 소스 리스트 추가 


   $ sudo nano /etc/apt/sources.list



deb http://archive.mene.za.net/raspbian wheezy contrib  추가함.




7-2. 위의 키 값 업데이트


    $ sudo apt-get update



7-3. 설치 


   $ sudo apt-get install kodi


 

7-4. 추가 리포


   $ sudo aptitude update 

   $ sudo aptitude install kodi



7-5. 일단 한번 실행. (원격이 아닌 로컬에서 직접 실행)


   $ sudo kodi



- Reboot



ssh로 작업 진행 


7-6. 설정 추가


   $ sudo nano /etc/udev/rules.d/99-input.rules


SUBSYSTEM=="input", GROUP="input", MODE="0660"

KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"    




7-7. 비디오메모리 추가설정 : 기본값으로 하면 재생시 많이 느림 


   $ sudo nano /boot/config.txt


gpu_mem=256        ## 넉넉하게


 


7-8. 부팅시 kodi 자동실행시킬 경우만


- 아래 설정에서 ENABLED=1 로 놓으면 라즈베리파이를 켜면 자동으로 kodi 가 실행됨

==> kodi만 쓸 바에야 OSMC 설치가 백번 좋다


   $ sudo nano /etc/default/kodi


7-9. 아래 그룹에 kodi 계정을 추가해 줍니다.


    $ sudo adduser kodi adm

    $ sudo adduser kodi input



7-10. 재부팅 후 kodi 실행


- 7-8설정했으면 kodi 자동실행,  아닌 경우 kodi 입력 후 엔터



7-11. kodi 한글설정


1) System → Settings → Appearance  → Skin → Fonts 설정에서 Arial based로 변경


2) 그 밑에 International에서 language → korean 으로 변경


3) 한글나옴.



7-12. 스마트폰으로 kodi 컨트롤 하기(Yatse 등 스마트폰용 어플 이용시)

- 시스템 → 설정 → 서비스 → 원격제어  "이시스템의 프로그램에 의한 원격제어 허용" 선택



7-13. 웹브라우저에서 Kodi 컨트롤(웹브라우저 주소창에 kodi의 해당 IP 192.168.0.4:8080접속으로 제어)

- 시스템 → 설정 → 서비스 → 웹서버  "HTTP를 통한 원격제어 허용" 선택



7-14. 다른 설치방법


HOW-TO:Install Kodi on Raspberry Pi

- 라즈베리파이 - KODI 설치