[Raspberry Pi] 2. 라즈베리파이3 나스만들기 - OS(Raspbian) 설치/설정
OS 설치(Raspbian)
BerryBoot를 통한 설치
멀티부팅 환경과 OS 설치를 편하게(네트워크를 통해) 하기 위한 bootloader이다.
BerryBoot 로 설치하는 것은 너무나 간단하다.
NOOBS보다 BerryBoot를 추천하는 이유는 NOOBS는 멀티 운영체제에 대해 파티션으로 관리하고 BerryBoot는 파일시스템으로 관리한다. NOOBS는 한쪽 운영체제에서 용량이 부족해지면 파티션 용량을 변경해주어야 하는 번거로움이 있지만 BerryBoot는 설치된 각 운영체제가 파티션이 아닌 일반 파일시스템의 폴더로 구분되기 때문에 용량에 대해 별다른 신경을 쓰지 않아도 된다.
참고
http://www.berryterminal.com/doku.php/berryboot : BerryBoot
- BerryBoot 사이트(http://www.berryterminal.com/doku.php/berryboot )에서BerryBoot를 다운 받는다.
- 다운받은 파일을 압축해제한다.
- SD Card를 포맷한다. 이미 SD Card를 활용했었다면 SD formatter를 이용하여 깔끔히 지운다.
https://www.sdcard.org/downloads/formatter_4/ : sdformatter 다운로드 - FAT 로 포맷한 SD Card 로 압축해제 후 생성된 파일들을 복사한다.
- 라즈베리파이에 랜케이블을 연결한다.(Wifi로 할 것이라면 연결안해도 된다.)
- OS설치를 인터넷을 통해 다운받아 설치하기 위해서이다.
- SD Card를 라즈베리파이에 연결하고 부팅한다.
- Ubuntu Mate를 설치한다.( 다른 것도 설치된다.)
Kodi설치 후 실행 시 Failed get gamma…. 메세지와 세그먼트 오류가 발생한다. - Raspbian 을 설치한다.
라즈베리파이를 부팅하면
네트워크가 연결되어 있다면 Location 과 Timezone은 IP 주소를 기반으로 자동으로 설정된다.
OS를 설치 할 디스크를 선택하면 된다.(여기서는 mmcblk0 이다)
순서적으로
- mmcblk0 : SD Card 자신
- sda : 외부장치인 USB stick/disk 를 말한다.(SSD 있으면 이걸로도 가능하다.)
필자는 SD Card가 성능이 너무 떨어져서 남아돌고 있는 64기가 SSD를 사용했다.
- Networked storage(iSCSI SAN) : 네트워크 스토리지(네트워크 블록디바이스)를 말한다. 요즘 피씨방에서 많이 사용하는 방식이다.
설치할 OS를 선택한다.
Ubuntu mate를 설치했다가 지우고 Raspbian 을 설치했다.
Ubuntu mate의 경우 kodi 설치 후 실행에 문제가 발생했다. 또한 kodi 17.1(최신 버전)을 지원하지 않았다. Ubuntu 계열을 좋아하지만 비슷한 Debian계열인 Raspbian으로 만족했다.
Raspbian 설치시 초기 사용자와 비밀번호는
사용자 : pi 비밀번호 : respberry |
이다.
OS 설정
Nas 구축 전에 OS를 설정할 것이다.
nas 란 사용자와 그룹을 만들고 이를 nas 접속 유저로 관리할 것이다.
기본적으로 생성되어 있는 pi 란 계정은 root를 대리하는 계정으로 외부에서 쓰기 불안하기 때문이다.
raspi-config 를 이용한 기본설정 하기
아래의 명령을 실행하면 기본적인 설정을 간단히 진행할 수 잇다.
$ sudo raspi-config |
- Expand Filesystem : SD 카드의 전체용량을 사용할 수 있게 함.
- Change User Password : "pi" 계정의 비밀번호를 변경
- Enable Boot To Desktop/Scratch : 부팅시 Console 환경 혹은Desktop(GUI) 환경 혹은 Scratch(스크래치 프로그래밍) 환경으로 시작방법을 설정
- Internationalisation Options : Locale(언어, 문자 인코딩), 키보드 Timezone 국제화 관련 설정
- Enable Camera : Raspberry Pi 전용 카메라를 사용할 수 있도록 함
- Add to Rastrack : rastrack 서버에 Raspberry Pi를 등록하는 것이다. 가상의 렉이라고 생각하면 된다. rastrack에 등록된 모든 Raspberry Pi의 현황과 위치등을 확인할 수 있음. (http://rastrack.co.uk/ : rastrack 사이트)
- Over Clock : 700MHz 이상의 CPU Clock 으로 변경할 수 있음.(오버클럭시 cpu 열 발생과 수명 단축을 조심하자. 가급적 초기 설정 상태로 사용하는 것이 좋다.)
- Advanced Options : Hostname 변경, SSH on/off, SPI on/off, Audio HDMI/3.5mm jack 등 설정.
- Overscan : 고해상도 모니터에 라즈베리 파이의 화면을 출력할 경우 화면이 모니터에 맞지 않게 표시되거나 텍스트가 화면의 측면으로 몰려서 표시되는 현상이 나타날 수 잇다. 그러한 경우 화면에 맞게 디스플레이를 수정하려면 이 옵션을 사용하자.
- Hostname : 호스트 이름을 변경한다.
- Memory Split : CPU와 GPU에 분배하는 메모리 양을 변경할 수 있다. 그래픽 작업을 많이 하는 경우에는 GPU에 많은 메모리를 할당하는 편이 좋다.
- SSH : 보안 쉘(SSH) 서버를 활성화시키고 사용자가 네트워크를 통해 원격으로 라즈베리 파이에 로그인 할 수 있게 하는 옵션이다. 편리한 기능으로 활성화하자.
- Device Tree : 하드웨어 정보를 기술하는 일종의 데이터 구조이다.
- SPI : 시리얼 주변 장치 인터페이스(SPI)의 활성 여부를 설정한다.
- I2C : 직렬 버스의 하나인 I2C(Inter-Integrated Circuit)의 활성화 여부를 설정한다.
- Serial : 시리얼 핀을 통해 쉘에 로그인하고 메시지를 송수신하는 기능이다.
- Audio : 오디오 출력 단자를 설정한다. 3.5mm 오디오 잭이나 HDMI로 출력을 강제할 수 있으며 자동모드도 가능하다.
- Update : 인터넷이 ㅇ녀결되어 있다면 설정 유틸리티를 업데이트 할 수 있다.
- About raspi-config : 해당 툴의 안내문
PI 계정 비밀번호 변경하기
기본설정에는 pi의 비밀번호가 raspberry이다.
기본 비밀번호를 쓰는 것은 보안상 좋지 않다. 비밀번호를 바꾸자.
$ sudo passwd pi |
명령후 새로운 비밀번호를 입력하면 된다.
예. id:pi, password:pi
테스트에서는 id: pi, password: pi로 하였다.
나스용 아이디/그룹 만들기
pi란 사용자는 sudo 그룹에 포함되어있다. 즉 관리자의 권한을 위임 받아 행동할 수 있다. 따라서 로컬이나 관리용으로만 쓰는게 적당하다.
따라서 나스용 아이디를 만들자.
nas 란 사용자/그룹을 만들것이다. ( 자신이 원하는 이름으로 하자. )
사용자/그룹 만들기
$ sudo useradd nas -m -s /bin/bash |
-m : 홈 디렉토리가 생성된다.
-s /bin/bash : bash쉘로 쉘 환경이 설정된다.
사용자/그룹 정보 확인
$ cat /etc/passwd | grep nas |
nas:x:500:500::/home/nas:/bin/bash |
저기 번호(예. 500)를 기억하자. 외장하드 마운트시 소유자와 소유그룹을 저걸로 만들 것이다. (보통 많이 쓰는 NTFS, FAT는 계정에 따른 권한이 따로 없다. 따라서 리눅스에 마운트시 소유자와 소유그룹을 지정할 수 있다.)
패스워드 지정
$ sudo passwd nas Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
|
계정관리
추가적으로 계정을 관리하는 법이다.
비밀번호 변경하기
다른 계정의 비밀번호를 변경하고 싶다면 root 권한이 필요하다.
$ sudo passwd {target_username} |
{target_username} : 비밀번호를 바꿀 사용자 아이디
계정 아이디 변경하기(선택사항, 추천하지 않는다.)
기본으로 pi 계정이 자동으로 등록되어 있고 자동 로그인이 설정 되어 있다.
pi란 이름을 다른 이름으로 바꾸고 비밀번호도 등록할 것이다.
명령 형식
$ sudo usermod -md /home/{new_name} -l {new_name} {old_name} |
유저의 이름과 홈폴더의 이름을 바꾼다.
예를 들어 pi를 test로 바꾼다면
$ sudo usermod -md /home/test -l test pi |
실제는 위 명령시 아래와 같은 에러가 발생할 것이다.
$ sudo usermod -md /home/test -l test pi |
pi 가 현재 shell을 실행중이라 usermod 명령을 수행할 수 없다는 것이다.
기본 설치시 Xwindow 로 실행중인 상태이다. 이때는 우선 현재계정(pi)을 Logout 하고 Ctrl+Alt+F2 로 terminal session을 변경 후 아래의 명령을 실행해야한다.
$ exec sudo -s |
이때는 exec 명령을 통해 pi의 shell을 종료하고 root의 shell로 실행하여 usermod 명령을 실행한 것이다.
그룹 이름도 변경할 것이다.
명령 형식
$ sudo groupmod -n {new_name} {old_name} |
예를 들어 pi를 test로 바꾼다면:
$ sudo groupmod -n test pi |
자동 로그인 끄기(선택사항)
Raspbian 설치 시 pi란 계정이 자동 로그인으로 설정되어 있다.
pi란 계정의 자동 로그인을 끄는 방법이다.(pi를 다른 이름으로 바꾸었다면 해줘야 한다.)
혹은 자동 로그인 기능이 좋다면 pi계정 대신 위에서 변경한 이름으로 자동로그인 설정을 변경해야한다.
/etc/lightdm/lightdm.conf 파일에 자동 로그인 설정이 되어 있다.
$ sudo vi /etc/lightdm/lightdm.conf |
"autologin-user=pi" 를 주석 처리하거나 삭제하면 자동로그인이 되지 않는다.
만약 변경한 이름으로 자동로그인 설정하고 싶다면 pi 대신 변경한 이름으로 설정하면 된다.
$ sudo vi /etc/lightdm/lightdm.conf |
부팅 Runlevel(GUI<->CLI )변경 (선택사항)
기본 raspbian 을 설치하면 부팅시 desktop 환경(GUI)으로 실행된다.
이를 부팅시 CLI(terminal) 로 실행되게 하려면
$ sudo update-rc.d lightdm disable 2 |
반대로 부팅시 GUI 으로 실행되게 하려면
$ sudo update-rc.d lightdm enable 2 |
언어 변경
방법1. dpkg-reconfigure를 사용한 방법.
$ sudo dpkg-reconfigure locales |
여기서 추가할 언어를 선택한다.
이 화면에서 기본 언어로 쓸 언어를 선택한다.
한국의 경우 ko_KR.UTF-8 UTF-8 혹은 ko_KR.EUC-KR EUC-KR을 선택한다.
글쓴이는 ko_KR.UTF-8 UTF-8 을 선호한다.
방법2. raspi-config 로 언어 설정
raspi-config 는 raspbian 설정을 UI로 간편하게 할 수 있게 도움을 주는 유틸이다.
$ sudo raspi-config |
Internationalisation Options -> Change Locale
command line 으로 설정하기 힘든 분이나 간단한 설정은 이곳에서 하면 편하다.
Timezone 변경
timezone을 Asia->Seoul 로 바꾼다.
방법1. 수동 변경
타임존 변경 명령
$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime |
타임존 변경 확인
$ date Mon Dec 28 17:37:23 KST 2015 |
다른 타임존 확인
아래의 위래에 다른 타임존 들이 있다.
ls /usr/share/zoneinfo |
방법2. tzselect를 통한 변경
tzselect 명령을 통해 쉽게 변경 가능하다.
shh@shh-dev:/$ sudo tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean 10) coord - I want to use geographical coordinates. 11) TZ - I want to specify the time zone using the Posix TZ format. #? 4 Please select a country whose clocks agree with yours. 1) Afghanistan 18) Israel 35) Palestine 2) Armenia 19) Japan 36) Philippines 3) Azerbaijan 20) Jordan 37) Qatar 4) Bahrain 21) Kazakhstan 38) Russia 5) Bangladesh 22) Korea (North) 39) Saudi Arabia 6) Bhutan 23) Korea (South) 40) Singapore 7) Brunei 24) Kuwait 41) Sri Lanka 8) Cambodia 25) Kyrgyzstan 42) Syria 9) China 26) Laos 43) Taiwan 10) Cyprus 27) Lebanon 44) Tajikistan 11) East Timor 28) Macau 45) Thailand 12) Georgia 29) Malaysia 46) Turkmenistan 13) Hong Kong 30) Mongolia 47) United Arab Emirates 14) India 31) Myanmar (Burma) 48) Uzbekistan 15) Indonesia 32) Nepal 49) Vietnam 16) Iran 33) Oman 50) Yemen 17) Iraq 34) Pakistan #? 23
The following information has been given:
Korea (South)
Therefore TZ='Asia/Seoul' will be used. Local time is now: 2017. 11. 10. (금) 13:57:27 KST. Universal Time is now: 2017. 11. 10. (금) 04:57:27 UTC. Is the above information OK? 1) Yes 2) No #? 1
You can make this change permanent for yourself by appending the line TZ='Asia/Seoul'; export TZ to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Asia/Seoul shh@shh-dev:/$ date 2017. 11. 10. (금) 13:57:32 KST |
방법3. dpkg-reconfigure 를 통한 변경
gui를 통해 아주 쉽게 변경 가능하다.
$ sudo dpkg-reconfigure tzdata |
|
Asia->Seoul 선택
전력 관련 설정
외장하드는 전력을 많이 소비하기 때문에 더욱 안정적으로 외장하드를 사용하려면 라즈베리파이의 전력관련 옵션을 확인하고 변경해 주는 것이 필요하다. 다음의 파일을 열어 옵션을 확인하고 내용이 없으면 맨 윗줄에 아래의 내용을 추가해주고 재부팅 해 준다.
$ sudo vi /boot/config.txt |
위의 파일을 열어 다음의 내용을 추가해준다. 추가해주면 라즈베리파이의 허용전류를 2A까지 늘려준다고 한다.
max_usb_current=2
safe_mode_gpio=4 |
그후 리부팅
$ sudo reboot |