Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
RaspberryPi 개발환경구축I 1
제02강
개발 환경 구축 I
Single board Computer
Wi-Fi망 구축(무선공유기)
개발 툴(PuTTY, NFS, FTP, samba, mstsc, DD for Win.)
Linux 명령
RaspberryPi 개발환경구축I 2
하드웨어 플랫폼
* 아두이노와 라즈베리파이 보드
RaspberryPi 개발환경구축I 3
하드웨어 플랫폼(계속)
* 라즈베리파이 모델 사양 비교
RaspberryPi 개발환경구축I 4
SBC
* SBC(single board computer)
: 모니터, 키보드, 마우스연결해 온전한 하나의 컴퓨터로 활용
: 아래 그림과 같이 구성
RaspberryPi 개발환경구축I 5
SBC(계속)
* Raspbian 이미지 다운로드
: https://www.raspberrypi.org/downloads/raspbian/
: Raspbian Stretch Lite 최신판 다운로드 후 압축 풀기
: 2018-11-18-raspbian-stretch-lite.zip
: 이미지 파일(2018-11-18-raspbian-stretch-lite.img)
: 혹은, 바탕화면 [IFC415] 폴더
2018-04-18-raspbian-stretch.img 활용
RaspberryPi 개발환경구축I 6
SBC(계속)
* micro SD 기록 툴 다운로드( Tools.zip에 포함 )
: Etcher 다운로드 및 설치 https://etcher.io/
: PC와 카드 리더기(SD 삽입) 연결
: Etcher 실행 및 기록할 이미지 파일 선택
: Flash! 클릭(기록 및 검증에 20여분 소요)
: 혹은, win32diskimager 툴 활용가능
https://sourceforge.net/projects/win32diskimager/
RaspberryPi 개발환경구축I 7
SBC(계속)
* 하드웨어 연결 ( 아래 그림 참조 )
: 라즈베리파이 보드에 이미지 기록된 micro SD 삽입
: 모니터(DVI-HDMI 케이블 활용), 키보드, 마우스 연결
: 라즈베리 파이 보드에 전원 인가
RaspberryPi 개발환경구축I 8
SBC(계속)
* 로그인
: 내정된 로그인 계정 및 암호 : pi / raspberry
* 터미널 실행
: 바탕화면 마우스우클릭 open terminal
: 리눅스 명령 활용하여 시스템 운영가능
* 로그아웃
: 산딸기 아이콘 - shutdown 선택
: 혹은, 터미널 창에서 logout, exit 등의 명령어
$ logout
RaspberryPi 개발환경구축I 9
SBC(계속)
* 유선망 연결
: Win. PC의 랜케이블 빼서 라즈베리파이 보드에 연결!!
RaspberryPi 개발환경구축I 10
SBC(계속)
* 현 IP 주소 확인
$ apt install net-tools // ifconfig명령에서 오류발생시 설치
$ ifconfig eth0 // IP 주소 확인
* IP 주소 설정( 172.18.14.xx 가정, Win. PC 용 )
: /etc/dhcpcd.conf 편집
$ sudo nano /etc/dhcpcd.conf
interface eth0
static ip_address=172.18.14.xx
static netmask=255.255.255.0
static routers=172.18.14.254
static domain_name_servers=168.126.63.1
$ sudo reboot // 재부팅
RaspberryPi 개발환경구축I 11
SBC(계속)
* IP 주소 확인
$ ifconfig eth0
* 연결가능 확인
: 라즈비안의 Firefox 웹브라우저 활용
: Windows의 명령행 창에서 ping
C:\> ping 172.18.14.xx
RaspberryPi 개발환경구축I 12
RaspberryPi 개발환경구축I 13
초기 환경설정
* pi 계정 패스워드 변경
: 라즈베리파이 환경 설정 명령인 raspi-config 사용
$ sudo raspi-config
: 1 Change User Password 선택
: embedded로 통일!!!!!!
: 이후 로그인시 pi / embedded 활용
RaspberryPi 개발환경구축I 14
초기 환경설정(계속)
* Wi-Fi 가능 위해
: 4 Localization Options -
Wi-Fi Country 항목이 GB Britain (UK) 으로 설정돼야 함
RaspberryPi 개발환경구축I 15
초기 환경설정(계속)
* micro SD 최대용량 사용
: 7 Advanced Options 선택
: 서브화면에서 A1 Expand Filesystem 선택
: 변경전후로 lsblk 명령으로 확인 가능
* 재부팅후 로그인
: 변경된 패스워드로 로그인
RaspberryPi 개발환경구축I 16
네트워크 구성
* 실습용 유무선망 구성도
RaspberryPi 개발환경구축I 17
Wi-Fi망 구축
* 공유기(ipTime A304 모델) 활용
: PC에 연결됐던 랜케이블을 최좌측(WAN) 잭에 연결
: 추가 랜케이블로 PC와 나머지 4잭중 하나간 연결
: 공유기 전원 인가
RaspberryPi 개발환경구축I 18
Wi-Fi망 구축(계속)
* 공유기 접속
: Win. PC에 동일 대역 IP 주소( 192.168.0.10 ) 할당 후,
: Windows 웹브라우저 주소창에 http://192.168.0.1/
참고) 연결오류 발생시 (Win. PC에 IP 미할당 시)
연결문제 진단 클릭 -
이 복구를 관리자 권한으로 실행 클릭 -
이 해결 방법을 적용합니다 클릭
RaspberryPi 개발환경구축I 19
Wi-Fi망 구축(계속)
* 망관리자 로그인 화면
: 망관리자 계정명 admin/admin(초기암호)/이미지문자로
로그인
: 접속 초기 화면에서 관리도구 클릭
RaspberryPi 개발환경구축I 20
Wi-Fi망 구축(계속)
* 기본설정-시스템 요약 정보
: 인터넷연결상태 : 인터넷 연결시도중... 확인 (다음 쪽 참조)
RaspberryPi 개발환경구축I 21
Wi-Fi망 구축(계속)
* 기본설정-인터넷 설정 정보
: 고정 IP 방식 체크
: IP정보(Windows의 IP 주소 정보) 설정후 적용버튼 클릭
RaspberryPi 개발환경구축I 22
Wi-Fi망 구축(계속)
* 기본설정-무선 설정/보안
: 5GHz 기본 무선 네트워크 Off 설정(라즈베리파이 지원않음)
: 2.4 GHz 기본 무선 네트워크 선택후 다음 정보 설정
네트워크 SSID : IFC415_xxxx 네트워크 이름 알림 체크
인증및암호화 : (권장)항목 선택
암호 : 000000xxxx 적용 버튼 클릭하여 반영
RaspberryPi 개발환경구축I 23
Wi-Fi망 구축(계속)
* 고급설정-네트워크관리-내부 네트워크 설정
: 사용중인 IP 주소 정보 확인가능
RaspberryPi 개발환경구축I 24
Wi-Fi망 구축(계속)
* 고급설정-네트워크관리-DHCP 서버 설정
: DHCP 서버 동작 ... 실행 체크
: 게이트웨이 주소 기억할 것!( 게이트웨이 주소 )
RaspberryPi 개발환경구축I 25
Wi-Fi망 구축(계속)
* 기본설정-시스템 요약 정보
: 인터넷연결상태 : 인터넷 정상적으로 연결됨 확인
RaspberryPi 개발환경구축I 26
Wi-Fi 망 접속
* 무선망(Wi-Fi) 접속
: 부팅후 우상단 화살표 아이콘 클릭하여 무선망 접속
: 접속하고자하는 망(IFC415_xxxx) 선택후,
암호(000000xxxx) 입력
RaspberryPi 개발환경구축I 27
Wi-Fi 망 접속(계속)
* 동적 IP 주소 확인
$ sudo ifconfig wlan0
* ping 혹은 웹 서핑
: 좌상단 웹브라우저 실행후 특정 사이트 접속
RaspberryPi 개발환경구축I 28
실습환경용 IP 주소 설정
* 현재는 DHCP 서버에 의해 동적 IP가 사용중임
* Windows의 IP 주소 설정 ( 192.168.0.10 )
: 이더넷-어댑터 옵션 변경에서
: 설정하고자하는 IP 주소, 서브넷마스크 설정
: 기본 게이트웨이를 192.168.0.1로 설정(앞서 기억하라고 한 것)
: 기본 설정 DNS 서버 : 168.126.63.1
: 시스템 다시 시작 클릭하여 재부팅
RaspberryPi 개발환경구축I 29
실습환경용 IP 주소 설정(계속)
* Windows의 IP 주소 확인
: 명령프롬프트 창에서 ipconfig로 ip 주소 확인
: 웹 브라우저 통해 특정 사이트 접속하여 확인 할 것!!
RaspberryPi 개발환경구축I 30
실습환경용 IP 주소 설정(계속)
* 라즈베리파이 보드
: 유선 IP( 192.168.0.30 ) 및 무선 IP ( 192.168.0.40 )
RaspberryPi 개발환경구축I 31
실습환경용 IP 주소 설정(계속)
* /etc/dhcpcd.conf 편집(추가)
$ sudo nano /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.0.30
static netmask=255.255.255.0
static routers=192.168.0.1
static domain_name_servers=168.126.63.1
interface wlan0
static ip_address=192.168.0.40
static netmask=255.255.255.0
static routers=192.168.0.1
static domain_name_servers=168.126.63.1
$ sudo reboot
RaspberryPi 개발환경구축I 32
Wi-Fi 망 접속(계속)
* 고정 IP 확인
$ ifconfig eth0
$ ifconfig wlan0
* 네트워킹 확인
: Windows 명령창에서 ping
C:\> ping 192.168.0.30
C:\> ping 192.168.0.40
: 혹은, 웹 서핑
RaspberryPi 개발환경구축I 33
IP 설정후
* 고급설정-네트워크관리-DHCP 서버설정
: 각 단말장치의 IP 주소가 수동설정인 것을 확인가능
RaspberryPi 개발환경구축I 34
RaspberryPi 개발환경구축I 35
개발 툴 설치
* 시스템관 자료 공유를 위한 도구
: Tools.zip 파일 참조
⦁PuTTY : CLI 제공
⦁nfs(network file system) : 동종간 공유 ( 다음 주 )
⦁FTP(file transfer protocol) : 파일전송
⦁samba : 이종간 공유
⦁mstsc : GUI 제공
⦁DD for Windows : SD카드 백업 및 복구
RaspberryPi 개발환경구축I 36
개발 툴 설치(계속)
* SSH(Secure SHell)
: 암호 통신을 이용해서 다른 컴퓨터에 접속한 다음,
명령을 실행하거나 파일 조작을 행하기 위한 프로토콜
: 접속 단말기에서 SSH 허용해야 함
* SSH 활성화
$ sudo raspi-config
: Interface - SSH
* 재부팅
$ sudo reboot // 재부팅
RaspberryPi 개발환경구축I 37
PuTTY 원격접속
* PuTTY
: SSH기반 원격접속 CLI(command line interface)
환경 제공
* PuTTY 다운로드 및 설치
: https://www.chiark.greenend.org.uk/~sgtatham/putty/
: 다운로드한 PuTTY.exe에 대해 바로가기 만든 후,
바로가기 아이콘을 사용편의를 위해 바탕화면에 옮겨놓자
RaspberryPi 개발환경구축I 38
PuTTY 원격접속(계속)
* PuTTY 실행 및 접속 정보 설정
: 좌측 Session을 클릭
: 우측의 Host Name 에 라즈베리파이의 IP 주소를 입력
: Connection type 에 SSH 체크
: Open을 클릭하여 접속
: 설정정보는 저장하였다 재사용 가능(Load 버튼 이용)
RaspberryPi 개발환경구축I 39
PuTTY 원격접속(계속)
* PuTTY 실행 및 접속 정보 설정
: 접속한 터미널 창에서 원격으로 명령어 활용
RaspberryPi 개발환경구축I 40
SFTP 서비스
* FTP 서비스
: 파일 송수신을 위한 서비스
* FileZilla FTP 클라이언트
: 다운로드 사이트 https://filezilla-project.org/
: FileZilla Client 다운로드 후 설치
RaspberryPi 개발환경구축I 41
SFTP 서비스(계속)
* FileZilla FTP 클라이언트 실행
: 좌측은 클라이언트(PC), 우측은 서버측(Pi)
RaspberryPi 개발환경구축I 42
SFTP 서비스(계속)
* FTP 서버 접속
: 메뉴의 ‘파일 - 사이트관리자’ 항목을 선택
: 호스트 항에 접속할 시스템의 IP 주소
입력
: 프로토콜 항에 SFTP(SSH FTP) 선택
: 로그온 유형 항에 비밀번호 묻기 선택
: 로그온 사용자 항에 pi 입력하고, 연결
버튼 클릭
* 좌측 항목선택에 새이름을 부여하여 등록하여 재활용
RaspberryPi 개발환경구축I 43
SFTP 서비스(계속)
* FTP 서버 접속
:패스워드 입력(embedded)후 확인 클릭
: pi 계정의 홈 디렉터리로 접속
: pi 계정의 홈 디렉터리 범주 내로 파일 송수신 가능
RaspberryPi 개발환경구축I 44
Samba 서비스
* Samba 서비스
: 이기종 간의 파일 공유 서비스
: Windows와 리눅스간 파일 공유
* Samba 서버 패키지 설치
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install samba
$ sudo apt-get install samba-common-bin
(선택적, 최신버전의 samba-common-bin 설치)
RaspberryPi 개발환경구축I 45
Samba 서비스(계속)
* Samba 서버 환경설정
$ sudo nano /etc/samba/smb.conf
[pi]
comment = PI SAMBA SERVER
path = /home/pi/
valid user = pi
create mask = 0777
read only = no # 혹은, writable = yes
browseable = yes
public = yes
* Samba사용자 계정 및 비밀번호(embedded 통일)
$ sudo smbpasswd -a pi
New SMB password:embedded
Retype new SMB password:embedded
RaspberryPi 개발환경구축I 46
Samba 서비스(계속)
* Samba 서버 재실행
$ sudo /etc/init.d/samba restart
* Samba 서버 접속
: Windows의 웹브라우저 주소창,
: 또는 윈도우즈의 실행 혹은 검색 창에
삼바 서버의 IP 주소를 \\192.168.0.40\와 같이 입력
RaspberryPi 개발환경구축I 47
Samba 서비스(계속)
* 공유 디렉터리의 접근권한 변경 필요시
: chmod 명령 사용
$ sudo cd /home/pi
$ sudo mkdir my
$ sudo chmod -R 777 ./my
// 현 작업디렉터리의 ./my 디렉터리 및 그 하부에 대해
// 접근권한을 777로 설정
// Windows에서 ./my 디렉터리 하부에 파일 생성/삭제 등등 가능
RaspberryPi 개발환경구축I 48
mstsc 원격접속
* mstsc
: Windows에서 기본 제공하는 서비스
: GUI(graphic user interface) 환경 제공
: SSH 서비스가 활성화 되어야 함
: 접속할 단말기에 xrdp 패키지가 설치되어야 함
* xrdp 패키지 설치 및 재부팅
$ sudo apt-get update // 패키지 업데그레....
$ sudo apt-get upgrade
$ sudo apt-get install xrdp // xrdp 패키지 설치
$ sudo reboot // 재부팅
RaspberryPi 개발환경구축I 49
mstsc 원격접속(계속)
* Windows의 원격접속
: 실행 혹은 검색에 mstsc 입력하여 탐색
: mstsc.exe 파일을 찾아 바탕화면에 바로가기 만들기
: mstsc 실행, IP주소 입력후 연결 클릭
: 로그인화면에 계정명 및 패스워드 입력하여 접속
RaspberryPi 개발환경구축I 50
mstsc 원격접속(계속)
* 접속화면(GUI)
RaspberryPi 개발환경구축I 51
DD for Win.
* DD for Windows
: Linux의 dd 명령 유사기능
: micro SD 카드의 백업 및 복구에 사용
: 다운로드 https://yeslab.tistory.com/37
: DDWin.exe 파일에 우클릭하여 관리자권한으로 필 실행
RaspberryPi 개발환경구축I 52
DD for Win.(계속)
* micro SD의 백업
: Choose disk버튼 눌러, SD 카드 선택
: Choose file 선택하여 경로 및 파일명 지정(.ddi확장자)
: Backup 버튼 눌러 파일로 백업
RaspberryPi 개발환경구축I 53
DD for Win.(계속)
* micro SD로 복구
: Choose file 선택하여 경로 및 파일명 지정(.ddi확장자)
: Choose disk버튼 눌러, SD 카드 선택
: Restore 버튼 눌러 복구
RaspberryPi 개발환경구축I 54
Linux 명령
* 다음 관련 명령
: 유용한 기능들
: 파일시스템 관련
: 검색 관련
: 네트워킹 및 기타 관련
* 실습을 진행하면서 추가 명령 숙지
RaspberryPi 개발환경구축I 55
Linux 명령(계속)
* 유용한 기능
: 히스토리 기능
// 기존 사용했던 명령을 유지, 자판의 상하키 활용
: 자동 완성기능
// 긴 파일명 혹은 디렉터리 명의 자동 완성 기능
// 선두 문자 입력후 <tab> 키 활용
: 파이프 기능
// 한 명령의 표준 출력을 다음 명령의 표준 입력으로 전달
// |로 명령간 구분
$ ls -al /usr/bin | more // /usr/bin의 파일목록을 페이지단위 출력
$ ls /usr/bin | sort | less // 파일목록을 소팅하여 페이지단위 출력
RaspberryPi 개발환경구축I 56
: 절대 경로 및 상대 경로
// 절대 경로는 /부터 명시
// 상대 경로는 . 혹은 .. 로 시작하여 지정
* 파일시스템 관련
: 파일 및 디렉터리 속성, ls –l로 확인
pi@raspberrypi:~ $ ls -l
drwxr-xr-x 2 pi pi 4096 Nov 13 2018 Desktop
// 첫 글자 : 파일 유형(d디렉터리, -일반파일, c문자장치, b블록장치, ...)
// 다음 3자리씩(rwx) : 접근권한 (owner, group, others 별 3자리)
: ls 명령
$ ls // 현재 디렉터리의 파일목록
$ ls -a // 모든파일(히든파일포함)
$ ls -l // 속성까지 상세하게
$ ls -al // 모든 파일(히든파일포함)을 자세하게
RaspberryPi 개발환경구축I 57
$ ls /usr/bin // /usr/bin/ 디렉터리의 파일목록
$ ls *.txt // 특정파일만(파일명이 .txt로 끝나는 모든 파일)
$ ls -l /usr/bin/a*
: pwd(present working directory) 명령
pi@raspberrypi:~ $ pwd
/home/pi
: mkdir(make directory) 명령
$ mkdir mydir
$ mkdir –p mydir/subdir/tmp // parents, 서브디렉토리까지 생성
: cd(change directory) 명령
$ cd // 사용자의 홈디렉터리로 이동
$ cd .. // ..은 현 디렉터리의 부모 디렉터리를 의미
$ cd mydir // 현 디렉터리내의 서브 디렉터리 mydir로
// $ cd ./mydir과 동일
RaspberryPi 개발환경구축I 58
$ cd /usr/bin // /usr/bin로 이동(절대경로)
$ cd ./../usr/bin // 홈 디렉터리에서 위 명령과 동일 효과(상대경로)
: rmdir(remove directory) 명령
$ rmdir mydir
$ rmdir –p mydir/subdir // 여러 계층의 디렉터리 삭제, 비어있어야 함
: touch 명령
// 빈파일의 생성 혹은 기존 파일의 생성일시를 현시점으로 통일
$ touch test1 test2 // 빈 파일들을 생성
$ touch * // 모든 파일의 생성일시를 현재일시로 변경
: nano 명령
// 파일 편집기, 가상머신에선 이외에 gedit 제공
$ nano test.c
: more/less 명령
RaspberryPi 개발환경구축I 59
// 파일의 내용을 한 화면씩(24라인) 보여줌, <space>, <b> 키활용
$ more test
$ less test // more 명령과 동일기능
: head 명령
$ head test // 기본 10라인 보기
$ head -20 test // 20라인 보기
: tail 명령
$ tail test // 기본 10라인 보기
$ tail -2 test // 끝의 2라인보기
: rm(remove) 명령
// 파일 및 디렉터리 삭제
$ rm test // test 파일 삭제
$ rm -i test // 삭제 확인 질의후
$ rm -r mydir // 디렉터리 삭제시
RaspberryPi 개발환경구축I 60
$ rm -rf mydir // mydir와 그 하부를 삭제
: cp(copy) 명령
$ cp test testcopy // 파일 복사
$ cp -r mydir yourdir // 디렉터리 복사
$ cp -a /home/sample/tests . // 파일의 속성 유지한 채 복사, archive
: mv(move) 명령
$ mv aaa bbb ./mydir // ./mydir은 디렉터리로 두파일 이동
$ mv /etc/* ./mydir // /etc/하부 모든파일을 ./mydir로 이동
$ mv test mytest // test를 mytest로 변경, 파일혹은 디렉터리
$ mv mydir yourdir // mydir 디렉터리명을 yourdir로 변경
: chmod(change mode) 명령
$ chmod go-w filedir // filedir에 group, others의 기록권한 삭제
$ chmod a+x filedir // filedir에모두에게 실행권한 설정
$ chmod 755 filedir // filedir에 octal 표현, -rwxr-xr-x 설정
RaspberryPi 개발환경구축I 61
$ chmod –R 777 ./filedir // 하부 디렉터리까지 설정
: chown/chgrp 명령
$ chown root /home/pi/test // owner를 root로
$ chgrp root /home/pi/test // group을 root로
$ chown root.root /home/pi/test // 소유자 및 그룹 함께 변경
: ln(link) 명령
$ ln aaa.txt atext // 하드링크, 두 파일내용 동일유지, 별도공간
$ ln -s ./mydir/subdir/test ltest // 심볼릭 링크
$ cat ltest // 다른 경로에 있는 파일을 쉽게 접근
$ ln -s /mnt/share/ share // 심볼릭 링크, 디렉터리 지정
$ ls share // 파일목록 보기
$ cd share // /mnt/share로 이동
RaspberryPi 개발환경구축I 62
: unzip 명령
$ unzip tools.zip
: tar(tape archive) 명령
// 옵션시 – 붙이지 않음
$ tar cvf my.tar ./my // ./my의 모든 파일을 my.tar파일로 묶음
$ tar tvf my.tar // 풀지않고 포함 목록만 확인
$ tar xvf my.tar // 풀기
$ tar cvfz my.tar.gz ./my // 묶기와 gzip 동시에, .gz 확장자
$ tar xvfz my.tar.gz // 압축복원과 풀기 동시에
* 검색 관련
: grep 명령
$ grep hello abc.txt // 파일내에 hello포함 라인 검색
$ ls -al | grep test // 파일목록중에 test 포함된 것 출력
RaspberryPi 개발환경구축I 63
: whereis 명령
pi@raspberrypi:~ $ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
: find 명령
// 지정 경로하부에서 특정 패턴의 파일 검색
pi@raspberrypi:~ $ find /usr -name wiringPi*
/usr/include/wiringPiI2C.h
/usr/include/wiringPi.h
/usr/include/wiringPiSPI.h
* 네트워킹 및 기타 관련
: ifconfig 명령
$ ifconfig // 현재 NIC의 설정정보 보기
$ ifconfig eth0 172.18.14.xx // IP 주소 변경
RaspberryPi 개발환경구축I 64
: ping 명령
$ ping 192.168.0.40
: hostname 명령
$ hostname
: uname 명령
// 프로세서, 커널버젼 등의 정보 확인
$ uname -a // 시스템의 모든 정보 보기
$ uname -p // 프로세서 확인
$ uname -r // 커널버젼 확인
RaspberryPi 개발환경구축I 65
실습종료시...(필)
* 매 실습시간 완료후 Windows의 IP 주소를
초기 IP 주소 설정상태로 반드시 재설정할 것!!
RaspberryPi 개발환경구축I 66
실습과제
[실습1] 개발환경 툴
: 제시된 개발 환경 툴의 설치 및 활용 숙지
⦁PuTTY : CLI 제공
⦁FTP(file transfer protocol) : 파일전송
⦁samba : 이종간 공유
⦁mstsc : GUI 제공
⦁DD for Windows : SD카드 백업 및 복구
[실습2] Linux 명령
: 제시된 기본 리눅스 명령을 충분히 숙지토록 실습
RaspberryPi 개발환경구축I 67