Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

Raspberry Pi 3

Raspberry Pi 3 스타터키트를 구매했다.

구성품 목록이다.
  • Memorette M2 MicroSD Reader
  • Raspberry Pi 3 Model B
  • Raspberry Pi 3 케이스
  • 사각 방열판 15x15x10, 10x10x10
  • HDMI 케이블
  • LAN 케이블
  • 2.5A 어댑터
  • 클리어 케이스
  • MicroSD 카드 16GB
  • MicroSD카드 USB 리더기
설치를 끈낸 후 모습이다. 아담하다.

Raspberry Pi 3 사양

라즈베리파이 3 모델 B의 주요 사양은 아래와 같다.
  • Quad core 1.2GHz Broadcom BCM2837 CPU (64-bit ARM Cortex A53)
  • 1GB RAM
  • BCM43143 WiFi (802.11n)
  • Bluetooth Low Energy (BLE)
  • 40 pin GPIO
  • 4x USB 2 ports
  • CSI camera port
  • DSI display port
  • MicroSD Card slot
  • HDMI
  • 4 pole stereo and composite video port
  • Upgraded Switched power source up to 2.4A
이전 라즈베리파이 모델과 다른 점은 쿼드코어 64비트 CPU를 지원하며, WiFi와 Bluetooth를 내장하고 있다는 점이다. 램은 1GB로 고정되며, USB와 이더넷 포트를 바꿀 수 없는 제한이 있다. 그렇기는 하지만 라즈베리파이의 목적에 비춰볼 때 큰 단점은 아닐 것이다.

Cortex-A53은 갤럭시 S6와, 갤럭시 그랜드 맥스등에서 사용하고 있다. 충분한 능력이라고 할 수 있는지는 잘 모르겠다. 내 사용목적은 IoT서비스 프로토타이핑쪽이라서 성능이 발목을 잡을일은 없을 것이다.

데스크탑 환경

  • Kubuntu 17.04 : 내 노트북에는 kubuntu가 설치돼 있다. KDE를 데스크탑 환경하는 우분투 리눅스 배포판이다.

인스톨

여기에서 raspberry pi 3를 위한 ubuntu-mate 리눅스를 다운로드 할 수 있다. 나는 ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img .xy를 다운로드 했다. unxy로 압축을 푼다. xy는 높은 압축률로 인기를 끌고 있는 압축포맷이다.
# unxz ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz 
이미지 파일은 dd로 설치할 수 있는데, dd대신에 ddrescue를 사용하기로 했다.
# apt-get install gddrescue xz-utils
# ddrescue -D --force ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img /dev/sdx
SD 카드에 이미지를 설치해야 하는데, 먼저 SD 카드 디바이스를 찾아야 한다. lsblk로 찾을 수 있다.
# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 238.5G  0 disk 
├─sda1        8:1    0 223.1G  0 part /
├─sda2        8:2    0     1K  0 part 
└─sda5        8:5    0  15.4G  0 part [SWAP]
mmcblk0     179:0    0  14.9G  0 disk 
└─mmcblk0p1 179:1    0  14.9G  0 part /media/yundream/3139-3934
ddrescue로 이미지를 복사한다.
# ddrescue -D --force ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img /dev/mmcblk0
GNU ddrescue 1.21
Press Ctrl-C to interrupt
     ipos:    4999 MB, non-trimmed:        0 B,  current rate:    193 kB/s
     opos:    4999 MB, non-scraped:        0 B,  average rate:  12106 kB/s
non-tried:        0 B,     errsize:        0 B,      run time:      6m 53s
  rescued:    5000 MB,      errors:        0,  remaining time:         n/a
percent rescued: 100.00%      time since last successful read:          0s
Finished                                     
이제 SD를 라즈베리파이에 삽입하고 전원 어뎁터를 꽂으면, 바로 실행된다. WiFi를 지원해서 여러모로 사용하기가 편하다.

라즈베리파이에 ssh 서버를 올리고 접속 한 후, 사양을 살펴봤다.
# cat /proc/cpuinfo 
processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 76.80
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 76.80
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 2
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 76.80
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 3
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 76.80
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2709
Revision	: a22082
Serial		: 00000000cf1b55cc

메모리
# free
              total        used        free      shared  buff/cache   available
Mem:         947732      436528      113792       53176      397412      392064
Swap:             0           0           0

저장공간. SD를 저장공간으로 사용하는 만큼, 딱 SD 크기만큼이다.
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  3.6G   11G  25% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           463M   28M  436M   6% /dev/shm
tmpfs           463M   13M  451M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           463M     0  463M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   21M   43M  34% /boot
tmpfs            93M   28K   93M   1% /run/user/1000

라즈베리파이 discovery

인스톨 할적에는 모니터를 연결했지만, 앞으로는 모니터를 연결하지 않을 것이다. 이 경우 라즈베리파이가 새로 시작 할때 IP를 찾을 수 있어야 한다. fping를 이용해서 arp 테이블을 만들기로 했다.
# fping -a -g 192.168.35.0/24
192.168.35.0 서브넷의 모든 IP에 대해서 icmp를 전송한다. 라즈베리파이가 떠 있다면, icmp 응답을 날릴 것이고 arp 테이블이 만들어질 것이다. arp로 확인을 해보자.
# arp -n | grep -v incomplete
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.35.247           ether   b8:27:eb:4e:00:99   C                     wlp4s0
192.168.35.41            ether   94:3b:b1:47:c6:1f   C                     wlp4s0
192.168.35.191           ether   3c:f7:a4:5c:de:19   C                     wlp4s0
192.168.35.1             ether   00:23:aa:48:57:b1   C                     wlp4s0
192.168.35.247 이녀석이 라즈베리 파이다. 이건 어디까지나 임시고, service discovery 프로토콜을 이용해야 할 것이다. 이건 나중에

라즈베리파이 기본 설정

raspi-config명령으로 라즈베리파일 설정을 변경할 수 있다.

  1. Change User Password : 패스워드를 변경 할 수 있다.
  2. Boot Options : CLI 환경으로 부팅 할 건지, GUI 환경으로 부팅 할 건지 선택할 수 있다. 나는 터미널만을 이용해서 작업한다. 굳이 무거운 GUI를 띄울 필요가 없으니 CLI 모드를 선택했다. 라즈베리파이를 교육용으로 사용 한다면, 스크레치와 같은 프로그램을 이용하기 위해서라도 GUI 모드로 실행해야 한다.
  3. Interfacing Options : 연결을 위한 설정을 할 수 있다. SSH, Camera, Serial, GPIO, I2C, 1-Wire 등 인터페이스 설정이 가능하다.
  4. Overclock : 라즈베리파이 3 는 오버클럭을 지원하지 않는다.
  5. Adbanced Options : 오디오, 해상도, GL 설정을 할 수 있다.
  6. Update : apt-get update를 실행한다.

라즈베리파이 연결

GUI 환경이 아닌 터미널 작업만 하려 한다. 해서 VNC 대신에 ssh로 연결하기로 했다.

ssh

ssh 서버는 기본으로 설치돼 있다. 라즈베리파이가 올라올 때, ssh 서비스가 자동으로 실행되도록 설정하면 된다.
# update-rc.d ssh default
# update-rc.d ssh enable 

보조 배터리 연결

사용하지 않고 있던 샤오미 10000 보조베터리를 전원공급장치로 달아봤다.

터미널만 떠 있는 거라서 꽤 오래 작동하지 않을까라고 생각하고 있다. 보조베터리를 직렬로 붙여서 사용 할 수도 있을려나 ?