RaspberryPi 개발환경구축 II 1 제 03 강 개발환경구축 II 가상머신환경구축 (VMware Player, VM(Ubuntu), VMTools, 폴더공유 ) 필수패키지설치 Tool Chain( 크로스컴파일러 ) 설치크로스컴파일및호스트컴파일 NFS 서비스한글사용환경구축
VMware Player * VMware Player 다운로드 RaspberryPi 개발환경구축 II 2 : Windows가 32/64bit인지파악후해당툴다운로드 : 사이트 https://www.vmware.com/kr/products/workstation-player.html : 혹은, 바탕화면 [IFC415] 폴더내 (64 비트용 ) VMware-player-14.1.3-9474260.exe : https://www.vmware.com/go/getplayer-win 다운로드
VMware Player( 계속 ) * VMware Player 설치 RaspberryPi 개발환경구축 II 3 : 바탕화면 [IFC415] 폴더내다음파일클릭하여설치 VMware-player-14.1.3-9474260.exe : I accept the... 체크후 Next 클릭
가상머신 (Ubuntu) RaspberryPi 개발환경구축 II 4 * 가상머신이미지다운로드 ( 20 여분소요 ) : ubuntu-18.04 이후판권고 : 사이트 http://releases.ubuntu.com/bionic/ : Ubuntu 18.04.1 LTS ( ubuntu-18.04.1-desktop-amd64.iso )
가상머신 ( 계속 ) * VMware Player 실행한후, * Create a New VM 클릭 RaspberryPi 개발환경구축 II 5 : Installer disk image file 체크, 이미지파일지정
RaspberryPi 개발환경구축 II 6 가상머신 ( 계속 ) * Easy install Information 지정 : 다음과같이통일 Full name : User_ifc415 // user full name User name : ifc415 // 가상머신기본계정명 Password : embedded // 통일!!! Confirm : embedded
RaspberryPi 개발환경구축 II 7 가상머신 ( 계속 ) * VM 이름및위치지정 : 다음과같이통일 VM name : VM_IFC415 Ubuntu 64-bit 18.04 // 라이브러리이름 Location : D:\VM_IFC415 ( 필히 D: 드라이브에두자 )
RaspberryPi 개발환경구축 II 8 가상머신 ( 계속 ) * 디스크용량지정 : 다음과같이 Maximum disk size : 100G Store VM as a single file (NTFS 포맷경우가능 ) 체크
가상머신 ( 계속 ) * VM 기본설정정보보기 RaspberryPi 개발환경구축 II 9 : 추가지정을위해서는 Customize H/W 클릭하여가능 ( 추후 ) * 설치완료 (20 여분소요 ) 후, 자동재부팅
가상머신 ( 계속 ) * 로그인화면및초기화면 RaspberryPi 개발환경구축 II 10 : 기본계정인 User_ifc415 클릭 ( 계정의암호요구 ) : 패스워드 embedded 입력
가상머신 ( 계속 ) * 로그인후초기화면 RaspberryPi 개발환경구축 II 11 * 로그아웃및종료 : Player -> exit 클릭 -> power off 선택
가상머신환경설정 * VMware Player 재실행 : 좌측창에설치된가상머신확인 RaspberryPi 개발환경구축 II 12 : 좌측창의가상머신선택
가상머신환경설정 ( 계속 ) * Edit virtual machine settings 클릭 : Hardware 탭에서 RaspberryPi 개발환경구축 II 13
가상머신환경설정 ( 계속 ) * 메모리및프로세서코어설정 RaspberryPi 개발환경구축 II 14 : Memory.. 4GB ( 전체메모리의 1/2정도 ) : Processors.. 4 (Core 수 ) 참고 ) Windows에서 msinfo32 명령으로확인가능
가상머신환경설정 ( 계속 ) * Network Adapter 설정 RaspberryPi 개발환경구축 II 15 : Bridged 선택, Replicate... 체크 ( 호스트 IP 주소와다른 IP 주소설정, 개발시 ) : NAT 선택 ( 호스트 IP 주소와동일한 IP 주소사용시, 설치초기 )
가상머신환경설정 ( 계속 ) RaspberryPi 개발환경구축 II 16 * 목록에없는 H/W 추가 ( 시리얼포트를예로 ) : 좌측하단 Add... 버튼클릭후, : 새화면에서 Serial Port 선택, Finish 클릭
RaspberryPi 개발환경구축 II 17 : Use physical serial port 체크및 Auto detect 선택 : 시리얼포트는 - Windows 환경에서 COMn - 가상머신의 Serial Port 2는 /dev/ttys1 로사용 (COM1, COM2, COM3과무관하게 )
가상머신활용 * 가상머신실행 RaspberryPi 개발환경구축 II 18 : VMware의좌측화면에서가상머신선택후, Play virtual machine 클릭 : 로그인창에서패스워드입력하여 ifc415 계정으로로그인
가상머신활용 ( 계속 ) * 화면해상도변경 RaspberryPi 개발환경구축 II 19 : 앱아이콘 - Settings - Devices - Displays : Resolution에서 1440x900(16:10) 선택후 Apply 클릭 : 적절한해상도로설정 * 저전력모드해제 : 앱아이콘 - Settings - Power : Power Saving 에서 Never 선택
가상머신활용 ( 계속 ) * 터미널실행 RaspberryPi 개발환경구축 II 20 : 바탕화면에서마우스우클릭하여 open terminal 선택혹은, Ctrl-Alt-T 단축키입력 : Windows의명령프롬프트창유사 ( Linux 명령사용 )
RaspberryPi 개발환경구축 II 21 가상머신활용 ( 계속 ) * 슈퍼유저 (root) 의암호설정 (embedded 통일 ) ifc415@ubuntu:~$ sudo passwd root Enter new UNIX password: embedded Retype new UNIX password: embedded * 슈퍼유저로전환 ( 교과실습때사용계정!!! ) : 프롬프트가 $ 에서 # 으로변경 ifc415@ubuntu:~$ sudo su [sudo] password for ifc415: embedded root@ubuntu:/home/ifc415# // su 로그인상태 root@ubuntu:/home/ifc415# cd root@ubuntu:~# pwd /root/
RaspberryPi 개발환경구축 II 22 가상머신활용 ( 계속 ) * 슈퍼유저의로그아웃 ( 일반유저로그인상태 ) : exit 명령사용, 일반유저로그인상태로전환 root@ubuntu:~# exit // 슈퍼유저 logout ifc415@ubuntu:~$ // 일반유저 ifs415 로그인상태
RaspberryPi 개발환경구축 II 23
가상머신의 IP 주소설정 RaspberryPi 개발환경구축 II 24 * VMware Player 의 network adapter 설정에서 : 반드시 Bridged, Replicate... 로선택 * 설정할 IP 주소 : 192.168.0.20 * 가상머신의 IP 주소설정 ( 방법1) : 앱아이콘 - Settings - Network - Wired 해 ( ) 클릭후,
가상머신의 IP 주소설정 ( 계속 ) * 가상머신의 IP 주소설정 ( 계속 ) RaspberryPi 개발환경구축 II 25 : ipv4탭 manual 선택하여 : IP 주소정보및 DNS 설정후, Apply 클릭 : DNS는 168.126.63.1 혹은 220.68.64.1로...
가상머신의 IP 주소설정 ( 계속 ) * 가상머신의 IP 주소확인 RaspberryPi 개발환경구축 II 26 : 앱아이콘 - Settings - Network - Wired 해 ( ) 클릭후, : Details 탭에서확인
가상머신의 IP 주소설정 ( 계속 ) * 가상머신의 IP 주소확인 : 터미널창에서 ifconfig로 ip 주소확인 : 디바이스명 ens33 유의 RaspberryPi 개발환경구축 II 27 root@ubuntu:~# apt install net-tools // 미설치시 root@ubuntu:~# ifconfig ens33: flags=4163<up,broadcast,running,multicast> mtu 1500 inet 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::2c4:b745:7608:3d0a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:af:fc:38 tx...
가상머신의 IP 주소설정 ( 계속 ) * 가상머신 (Ubuntu) 의네트워킹확인 : Firefox 웹브라우저통해특정사이트접속 RaspberryPi 개발환경구축 II 28
RaspberryPi 개발환경구축 II 29
VMware Tools * WMware Tools 의편의기능 RaspberryPi 개발환경구축 II 30 : 마우스이동으로제어권전환 (OS 전환시 Ctrl-Alt 비사용 ) : 디스플레이옵션확장 (Windows환경의디스플레이와동일 ) : 드래그앤드롭파일이동 ( 작은크기의파일권고 ) : 클립보드공유 : OS간공유폴더사용
VMware Tools( 계속 ) * WMware Tools 다운로드 RaspberryPi 개발환경구축 II 31 : 일반유저 ifc415으로로그인한상태에서 : Player > Manage > (Re)Install VMware Tools 클릭
VMware Tools( 계속 ) * 다운로드확인 : /media/ifc415/vmware Tools/ 에위치 ( ifc415은로그인계정의 ID임 ) RaspberryPi 개발환경구축 II 32
RaspberryPi 개발환경구축 II 33 VMware Tools( 계속 ) * WMware Tools 설치 :.tar 파일복사후풀기 ( 참고 : 자동완성기능활용, Tab 키 ) ifc415@ubuntu:~$ sudo su [sudo] password for ifc415: embedded root@ubuntu:/home/ifc415# cd root@ubuntu:~# ls root@ubuntu:~# ls /media/ifc415/vmware\ Tools/ manifest.txt VMwareTools-10.2.5-8068393.tar.gz vmware-tools-upgrader-64 run_upgrader.sh vmware-tools-upgrader-32 root@ubuntu:~# cp /media/ifc415/vmware\ Tools/VMwareTools-10.2.5-8068393.tar.gz./ root@ubuntu:~# ls VMwareTools-10.2.5-8068393.tar.gz root@ubuntu:~# tar xvfz VMwareTools-10.2.5-8068393.tar.gz
RaspberryPi 개발환경구축 II 34 : VMware Tools 설치및재부팅 root@ubuntu:~# ls VMwareTools-10.2.5-8068393.tar.gz vmware-tools-distrib root@ubuntu:~# cd vmware-tools-distrib/ root@ubuntu:~/vmware-tools-distrib# ls bin caf doc etc FILES INSTALL installer lib vgauth vmware-install.pl root@ubuntu:~/vmware-tools-distrib#./vmware-install.pl ( 십여차례의질의에대해 enter키입력하여내정상태로설정!) root@ubuntu:~/vmware-tools-distrib# reboot
공유폴더 RaspberryPi 개발환경구축 II 35 * Windows 의바탕화면에 Shared 공유폴더생성 : Windows 와가상머신간의자료공유를위해 * 공유폴더설정 : Virtual Machine settings 화면의 Options 탭클릭 : Shared Folders 클릭, Always enabled 체크
공유폴더 ( 계속 ) * 공유폴더설정 ( 계속 ) RaspberryPi 개발환경구축 II 36 : 공유폴더경로지정 ( 바탕화면에 Shared 폴더 ) 등 : 공유폴더는가상머신에서 /mnt/hgfs/shared 로마운트
공유폴더 ( 계속 ) * 공유폴더테스트 RaspberryPi 개발환경구축 II 37 : Windows 의 Shared 폴더에서, test.txt 파일생성 : test.txt 파일편집 Hello...
RaspberryPi 개발환경구축 II 38 공유폴더 ( 계속 ) * 공유폴더테스트 (VM 에서 ) ifc415@ubuntu:~$ sudo su [sudo] password for ifc415: embedded root@ubuntu:/home/ifc415# cd root@ubuntu:~# root@ubuntu:~# ls /mnt/hgfs/ Shared root@ubuntu:~# cd /mnt/hgfs/shared/ root@ubuntu:/mnt/hgfs/shared# ls test.txt root@ubuntu:/mnt/hgfs/shared# cat test.txt Hello... // su(root 계정 ) 로전환 // root의홈디렉터리이동 // 공유디렉터리로이동 // 파일내용보기 root@ubuntu:/mnt/hgfs/shared# nano test.txt // 파일편집 Hello...KOREATECH // 추가후저장
공유폴더 ( 계속 ) * 공유폴더테스트 (Windows 에서 ) RaspberryPi 개발환경구축 II 39 : Windows 의 Shared 폴더에서, test.txt 더블클릭 : test.txt 파일내용 Hello...KOREATECH
RaspberryPi 개발환경구축 II 40
RaspberryPi 개발환경구축 II 41 툴체인 (tool-chain) * 필수패키지설치 root@ubuntu:~# apt-get update // 설치된패키지를최신버젼으로업데이트 ( 다운로드 ) root@ubuntu:~# apt-get upgrade // 다운로드된최신버젼패키지설치 ( 업그레이드 ) : 32 비트호환라이브러리패키지 root@ubuntu:~# dpkg --add-architecture i386 root@ubuntu:~# apt-get install lib32z1 // 숫자 1임 root@ubuntu:~# apt-get install lib32ncurses5 root@ubuntu:~# apt-get install lib32ncurses5-dev : 개발을위한패키지설치 root@ubuntu:~# apt-get install build-essential
RaspberryPi 개발환경구축 II 42 툴체인 ( 계속 ) * 툴체인 ( 크로스컴파일러 ) 설치 root@ubuntu:~# apt-get install gcc-arm-linux-gnueabihf Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libqpdf13... : /usr/arm-linux-gnueabihf 디렉터리에설치됨 * 설치확인 ( 버전정보출력옵션 ) root@ubuntu:~# arm-linux-gnueabihf-gcc --version arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
RaspberryPi 개발환경구축 II 43 툴체인 ( 계속 ) * 크로스컴파일러경로설정 (.bashrc 파일편집 ) root@ubuntu:~# gedit.bashrc # 파일의끝에다음을추가 # Arm Cross Compiler... raspberry pi export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- *.bashrc 파일변경반영 root@ubuntu:~# source.bashrc root@ubuntu:~#
RaspberryPi 개발환경구축 II 44 툴체인 ( 계속 ) * 간단한 C 소스작성하여툴체인테스트 : 간단한메시지출력기능 root@ubuntu:~# gedit hello.c #include <stdio.h> int main(void) { printf("hello...\n\n"); } return 0;
RaspberryPi 개발환경구축 II 45 툴체인 ( 계속 ) * 타깃용 ( 라즈베리파이 ) 크로스컴파일 root@ubuntu:~# arm-linux-gnueabihf-gcc o t_hello hello.c root@ubuntu:~# ls t_hello hello.c * 실행 root@ubuntu:~#./t_hello bash:./hello: cannot execute binary file: Exec format error root@ubuntu:~# file./t_hello // 라즈베리파이용./hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=605ab13e2935cea088c3bc9d91fd43718e8d02a2, not stripped
RaspberryPi 개발환경구축 II 46 툴체인 ( 계속 ) * 호스트용 ( 가상머신 ) 컴파일 ( gcc ) root@ubuntu:~# gcc -o h_hello hello.c root@ubuntu:~# ls h_hello t_hello hello.c * 호스트용을실행 root@ubuntu:~#./h_hello Hello... root@ubuntu:~# file./h_hello // 가상머신용./h_hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=6f55ff519eceb3a255ebcb3eb29620dad454ece9, not stripped
RaspberryPi 개발환경구축 II 47
RaspberryPi 개발환경구축 II 48 NFS 서비스 * NFS(network file system) : 네트워크상의동종시스템의 FS 자원을공유하는서비스 : NFS 패키지설치 root@ubuntu:~# apt-get install nfs-kernel-server Reading package lists... Done... : NFS 환경설정 ( /etc/exports 파일편집 ) root@ubuntu:~# gedit /etc/exports /nfs *(rw,sync,no_root_squash,no_subtree_check) // 괄호속공백문자없이작성할것, * : 동일망내모든시스템 : 외부에서공유할디렉터리 ( /nfs ) 생성 root@ubuntu:~# mkdir /nfs : 재부팅 root@ubuntu:~# reboot
RaspberryPi 개발환경구축 II 49 NFS 서비스 ( 계속 ) * NFS 서버측에서 ( 계속 ) : 파일을 NFS 서비스위한디렉터리 ( /nfs ) 로복사 root@ubuntu:~# cp *_hello /nfs root@ubuntu:~# ls /nfs
RaspberryPi 개발환경구축 II 50 NFS 서비스 ( 계속 ) * NFS 클라이언트측에서 : target 보드로 putty 접속후 : 마운팅포인트생성 $ sudo mkdir /share ; 마운트포인트 : 마운팅 $ sudo mount -t nfs 192.168.0.20:/nfs /share ;192.168.0.20(VM) /nfs 를타깃보드의 /share 에마운트 : 공유공간내용확인 $ sudo ls /share ; 호스트영역공유확인
RaspberryPi 개발환경구축 II 51 NFS 서비스 ( 계속 ) * NFS 클라이언트측에서 ( 계속 ) : 공유자원활용 ( 파일실행 ) $ sudo cd /share $./t_hello ; 정상적으로실행 $./h_hello ; 실행불가
실습과제 [ 실습 1] 개발환경구축 : 개발환경구축과정에따라실습진행 : 관련리눅스명령어숙지 RaspberryPi 개발환경구축 II 52 [ 실습 2] 한글표시및입력가능환경 : 라즈베리파이보드에서한글표시및입력가능하게 : 관련리눅스명령어숙지 : 아래내용참조
RaspberryPi 개발환경구축 II 53 한글관련패키지설치 * 기존패키지업데이트및업그레이드 $ sudo apt-get update $ sudo apt-get upgrade * 한글폰트 ( 한글표시 ) 패키지설치 $ sudo apt-get install fonts-unfonts-core * 한글입력패키지설치 $ sudo apt-get install ibus-hangul * 재부팅 $ sudo reboot
한글관련패키지설치 ( 계속 ) * 한글패키지설치확인 RaspberryPi 개발환경구축 II 54 : 산딸기 - Preferences - ibus preferencs 항목확인 : 우상단삼태극아이콘등록확인 : 웹서핑통해한글깨짐현상없어짐을확인!!
한글관련패키지설치 ( 계속 ) * 한글입력기등록등설정 RaspberryPi 개발환경구축 II 55 : 삼태극아이콘을우클릭후, Preferences 선택 : 혹은, 산딸기 Preferences-iBUS preferencs 항목을선택 : 창의 Input Method 탭에서 Add 버튼클릭 Korean- Hangul 항목선택후, Add 버튼클릭 : 내정된한영전환키는 Shift+Space
시스템환경에서한글표시 * 시스템의메뉴항목등을한글로보이게 $ sudo raspi-config : 4 localisation Options 항목을선택 : 서브화면에서 I1 Change Locale 항목을선택 RaspberryPi 개발환경구축 II 56 : ko_kr.utf-8 UTF-8 을스페이스바눌러선택후, Ok : 등록된언어들중시스템환경에사용할언어선택후, Ok
시스템환경에서한글표시 ( 계속 ) * 기타항목 ( 타임존, 키보드등 ) RaspberryPi 개발환경구축 II 57 : I2 Change Timezone 항목 : Area에 Asia를, Location에 Seoul을선택 : I3 Change Keyboard Layout 항목 : 자판설정 : I4 Change Wi-Fi Country 항목 : 디폴트로영국설정되어있음 ( 그대로둘것 ) : 변경시 Wi-Fi를사용할수없게되므로유의
시스템환경에서한글표시 ( 계속 ) * 재부팅 $ sudo reboot RaspberryPi 개발환경구축 II 58 : 시스템메뉴에한글표시확인!!
이하제거!!!! RaspberryPi 개발환경구축 II 59
가상머신의 IP 주소설정 ( 계속 ) RaspberryPi 개발환경구축 II 60 * 가상머신 (Ubuntu) 의 IP 주소설정 ( 방법 2,OK, 비권고 ) : 터미널창에서 ifconfig 로 ip 주소확인 ( 디바이스명 ens33 유의 ) : 이방법의경우, 조치후방법 1 의 Wired 항목이나타나지않음!!! root@ubuntu:~# gedit /etc/network/interfaces auto lo iface lo inet loopback auto ens33 iface ens33 inet static address 192.168.0.20 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 220.68.64.1 root@ubuntu:~# gedit /etc/resolv.conf nameserver 127.0.0.53 // 재부팅시원상복구됨
nameserver 220.68.64.1 root@ubuntu:~# systemctl restart networking.service root@ubuntu:~# reboot RaspberryPi 개발환경구축 II 61 참고 ) 웹서핑불가시아래와같이편집하여저장후웹서핑시도할것!! root@ubuntu:~# gedit /etc/resolv.conf nameserver 127.0.0.53 nameserver 220.68.64.1 // 재부팅시원상복구됨
RaspberryPi 개발환경구축 II 62 가상머신 (Ubuntu) 의 IP 주소설정 ( 계속 ) * 가상머신 (Ubuntu) 의 IP 주소설정 ( 방법 2) : 터미널창에서 ifconfig 로 ip 주소확인 ( 디바이스명 ens33 유의 ) root@ubuntu:~# apt install net-tools // 미설치시 root@ubuntu:~# ls /etc/netplan/ 01-network-manager-all.yaml root@ubuntu:~# gedit /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: ens33: # 드라이버명 addresses: - 192.168.0.20/24 # 설정할 IP 주소
gateway4: 192.168.0.1 nameservers: addresses: [220.68.64.1] RaspberryPi 개발환경구축 II 63 root@ubuntu:~# netplan apply // 변경정보반영 root@ubuntu:~# ifconfig // 설정 IP 주소확인 : security 탭에서 ON 선택후, 망관리자계정명 / 암호설정
RaspberryPi 개발환경구축 II 64