450 likes | 654 Views
Embedded System Development Environment I. 리눅스 설치 및 명령어. Embedded System Development Environment I. 리눅스 설치 임베디드 시스템은 키보드와 모니터같은 표준 입출력장치를 기본적으로 채용하지 않음 . 호스트 시스템에서 개발한 다음 결과물을 툴체인을 통해 컴파일 한 다음 보드로 보내어져 보드에서 실행 -> 임베디드 시스템을 이용하기 위해서는 임베디드 시스템을 개발할 수 있는 기본 환경이 있어야 함 .
E N D
Embedded System Development Environment I 리눅스설치 및 명령어
Embedded System Development Environment I • 리눅스설치 임베디드 시스템은 키보드와 모니터같은 표준 입출력장치를 기본적으로채용하지 않음. 호스트 시스템에서 개발한 다음 결과물을 툴체인을 통해 컴파일 한 다음 보드로 보내어져 보드에서 실행 -> 임베디드 시스템을 이용하기 위해서는 임베디드 시스템을 개발할 수 있는 기본 환경이 있어야 함. • Virtual Machine • 기본 운영체제 위에 가상의 소프트웨어 머신을 이용하여 다양한 O/S를 설치 • 하드웨어와 가상 머신간의 하드웨어 자원 공유 • 하나 이상의 운영체제가 구동되므로, CPU나 메모리에 비례하여 구동속도가 차이남. • 기존에 리눅스가 설치된 호스트인 경우를 제외하고 개발을 위해서 가상머신등을 이용 • 일반적으로많이 사용되는 가상 머신 • Virtual PC – Microsoft • Virtual Box – Oracle • Virtual Machine - Vmware • 가상머신 소프트웨어를 사용할 경우 주의 사항 • 기본 운영체제의 종류와 운용 방식에 따라 설치할 수 있는 가상머신 소프트웨어가 다름 Windows, Linux, MacOS기반의 각각의 버추얼머신을확인후 사용 32bit 운영체제 혹은 64비트 운영체제에 따라서 설치 가능한 버추얼머신의 버전도 다를 수 있음 • 가상 머신의 이미지 크기에 따른 기본 시스템의 저장영역 확보가 필요 가상 머신의 이미지는 사용할 수록 커지기 때문에 그에 맞는 여분의 자료공간이 필요함
Embedded System Development Environment I • Vmware Download를 위한 운영체제 정보 확인 • 32비트이면 32Bit VM Player를 다운로드 • 64비트이면 64BitVM Player를 다운로드
Embedded System Development Environment I • Vmware Download
Embedded System Development Environment I • Vmware Install • License 시스템 상태에 따라 리부팅 될 수 있다. 사용 라이선스에 동의 하여야 한다
Embedded System Development Environment I • 호스트리눅스 설치 • Ubuntu 10.04 • 데비안계열의 오픈소스기반 운영체제 • 일반 데스크탑 운영체제로 안드로이드 개발에 편리한 환경 제공 • Ubuntu Download • 문서에서는 32비트 우분투 이용
Embedded System Development Environment I • Ubuntu지원 기간
Embedded System Development Environment I • Vmware Player에서 해당 이미지 파일을 가상 CD로 연결 • VMware Player에서 Create a New Virtual Machine를 선택 • New Virtual Machine Wizard에서 Installer disk나 Image file
Embedded System Development Environment I • Vmware정보 입력 • 가상머신의 이름을 입력하고, 설치될 장소를 결정 • 만들어질 가상머신의 이미지 파일크기를 결정하고, 단일 파일로 생성한다.
Embedded System Development Environment I • 하드웨어 설정 변경 • 메모리는 시스템 메모리에서 사용가능한 범위만큼 설정 • 네트워크는 외부포워딩시에는NAT, 내부 연결시에는Brdige로 설정
Embedded System Development Environment I • 시리얼포트 설정 • 시리얼 포트 추가 • 물리 포트를 선택하고, 시스템에 부착된 COM 포트를 선택후Finish
Embedded System Development Environment I • 하드웨어 설정 마무리 • 추가할 내용이 없으면 Finish를 눌러 설치를 시작
Embedded System Development Environment I • 리눅스 설치를 시작 • 앞서 설정한 사용자와 패스워드를 통해 자동 설치됨
Embedded System Development Environment I • root 사용자로그인 • 개발시에 불편함을 덜기 위해서 root 사용자로 로그인을 할 수 있도록 설정 • 터미널실행 (Application > 보조프로그램 > 터미널) • 패스워드를 입력 및 확인 • 메뉴의 로그아웃 버튼을 이용하여 root 사용자로 로그인
Embedded System Development Environment I • VMware tools 설치 • VMware툴을 설치하면, 좀더 편리하게 VMware를 이용할 수 있다. • 화면에 설치 메시지를 클릭하여 설치 • Vmware메뉴에서 선택하여 설치
Android Development Environment • 설치후마운트되면VMwareTools.tar.gz압축파일을 /root로 복사
Embedded System Development Environment I • 프로그램 설치에 관련된 설정 물음에 모두 엔터키를 입력
Embedded System Development Environment I • VMshare Folder 설정 • 연결된 디렉터리 확인
Embedded System Development Environment I • 설치 화면에서 장치 등록을 못한 경우
Embedded System Development Environment I • USB Serial Convertor를 사용하는 경우 • VMware의 호스트에서 시리얼 연결 상태확인
Embedded System Development Environment I • Linux 명령어 실습 • adduser / useradd 리눅스 시스템에 사용자를 추가할 경우 사용하는 명령 • passwd 용자 계정에 패스워드를 만들거나, 변경하는 명령 adduser [option] [id] passwd [option] 사용자ID
Embedded System Development Environment I • mkdir 디렉터리를 생성할 경우 사용 ex) mkdir test • cd 디렉터리를 변경할 때 사용 ex) # cd /root : 절대 경로를 통한 이동 # cd test : 상대 경로를 통한 이동 mkdir [Option] [Directory Name] 절대경로 : 리눅스 시스템의 최상위 디렉터리로 부터 표현하는 경로 ex) mkdir /root/test : 최상위 디렉터리에 있는 root디렉터리에 test라는 디렉터리를 생성 상대경로 : 사용자가 이동한 현재의 위치에서부터 표현하는 경로 ex) cd /etc mkdir ./../root/test : 현재 최상위 디렉터리 /etc 디렉터리로부터 상위 디렉터리(..)의 root 디렉터리에 test 디렉터리 생성 cd [Option] [Directory Name]
Embedded System Development Environment I • rmdir (remove directory) 디렉터리를 삭제 하는 명령, 파일이 있거나 서브 디렉터리가 존재하면 삭제되지 않음 ex) rmdir /root/test • alias 자주 사용하는 명령에 별명을 부여. 자주 사용하는 명령이 명령어 길이가 길어서 불편한 경우 alias를 설정해 주면 설정한 alias를 이용하여 해당 명령을 실행할 수 있다 ex) alias 현재 등록된 alias 확인 ex) alias cpf=‘cp –rf’ : cpf만 입력하면 cp –rf옵션이 적용되어 사용할 수 있다. mkdir [Option] [Directory Name] rmdir [Option] [Directory Name] alias [Option] [name=[value] …]
Embedded System Development Environment I • cat (conCATenate) 옵션인 리다이렉션을 이용하여 표준 출력 혹은 표준 입력기로부터 데이터를 입력 받거나 출력 할 수 있다. ex) # cat > test.txt : 키보드로 데이터를 입력받아 파일에 저장한다. (완료 : Ctrl + D) ex) # cat < test.txt : 위에서 저장한 test.txt 파일을 표준 출력을 통해 출력한다. ex) # cat test1.txt test2.txt > test12.txt : text1.txt의 내용과 test2.txt의 내용을 test12.txt로 병합 cat [option] [file(s)]
Embedded System Development Environment I • df 파일 시스템의 구조와 용량을 표시해주는 명령. 임베디드 시스템처럼 저장 공간이 적은 경우 수시 로 확인해 주어야 할 필요가 있다. • dmesg 리눅스 시스템에서 발생하는 디바이스 메시지를 보여주는 명령이다. 일반적인 디바이스 메시지 는 세부정보들 까지 모두 콘솔에 출력되지 않는 경우가 있는데, 이 경우 dmesg를 이용하여 확인 할 수 있다. ex) # dmesg # dmesg | grepusb : 디바이스 메시지중usb라는 단어가 포함된 것만 출력 df [옵션]... [파일] dmesg [-c] [-n level] [-s bufsize]
Embedded System Development Environment I • du 리눅스 시스템 내에 있는 디렉터리와 파일개수를 출력 ex) # du dmesg [-c] [-n level] [-s bufsize]
Embedded System Development Environment I • echo 인자(argument) 문장 혹은 시스템 환경 변수를 출력해주는 명령 ex) # echo Hello~ world ex) echo $PATH : 시스템에 설정된 패스 경로 확인 • free 시스템의 메모리, 사용된 물리적인 메모리와 스왑(swap)메모리의 상태를 출력 echo [-ne] [문자열 ...] free [-b | -k | -m] [-o] [-s delay] [-t] [-V]
Embedded System Development Environment I • grep 인자(argument) 문장 혹은 시스템 환경 변수를 출력해주는 명령 ex) grep PATH /root/.bash_profile : bash_profile을 열어서 PATH라는 문자열이 매치되는 라인 출력 grep [option] PATTERN [File..]
Embedded System Development Environment I • history 기존에 실행했던 명령어를 보여준다. ex) # history 5 : 최근 실행한 멸영부터 그 이전 5개 까지 실행했던 명령을 보여준다 ex) # history | grep cp • ps 현재 구동되고 있는 프로세스 리스트를 보여준다. 일반적으로 시그널 -9(SIGKILL)을 이용한다. ex) # ps history [-c] [-d offset] [n ps [options]
Embedded System Development Environment I ex) # ps –ax : 서비스및 백그라운드에 구동중인 프로세스를 확인할 수 있다. # ps –ax | less : 리스트가 한 페이지를 넘는경우한페이지 부분에서 정지, q는 종료 # ps –ax | grepxinet : 출력 리스트중xinet이 포함된 프로세스만 출력 • Kill 현재 구동되고 있는 프로세스를 종료(제거)한다. ex) # kill –9 8785 : 운용되는 프로세스중8785 프로세스를 강제종료 한다. kill -signal pid
Embedded System Development Environment I • pwd 현재 자신이 있는 디렉터리(위치)를 확인한다. ex) # pwd • rm remove 명령으로, 파일 및 디렉터리를 삭제할 경우 사용되나, 수퍼유저 권한이라면 사용에 있어 신중함을 기해야 한다. ex) rm test ex) ex_ rm –r mydirectory pwd [-LP] rm [options] file(s)
Embedded System Development Environment I • su 사용자를 전환하여 쉘을 실행한다. 일반적으로 일반계정의 사용자가 특정 권한을 얻기 위해서 사용하는 것이 일반적이다. ex) # su kittens : 수퍼유저에서 일반사용자로의 전환에는 해당 계정의 패스워드가 필요없다. ex) # su root : 일반 사용자에서 수퍼유저로 계정전환을 하려면, 수퍼유저의 패스워드가 필요. 사용이 완료되면 exit 명령을 통해서 변경된 계정의 사용을 종료할 수 있다. • tar 리눅스에서 압축 혹은 패키징을 할 경우 사용되는 명령이다. su [UserID] tar [option] [archive-file] [files or directories]
Embedded System Development Environment I ex) # tar zxvftest.tar.gz : 압축파일인 test.tar.gz의 압축을 해제 한다. ex) # tar jxvf test.tar.bz2 : bz2 필터를 사용한 압축파일인 test.tar.bz2의 압축을 해제 ex) # tar cvzftest_dir.tar.gzmydirectory : 디렉터리를 gzip필터를 이용하여 압축
Embedded System Development Environment I • w 리눅스는 멀티유저 시스템이므로, 하나의 시스템여어러 사용자가 접속할 수 있다. 그 경우 각 사용자가 어떤 작업을 하고 있는지 확인한다. ex) # w : 전체 보기 ex) # w kittens : 특정 사용자만 확인 • ln 특정 명령어를 다른 이름으로 접근할 수 있도록 해준다.(단축 이름) ex) ln –s /usr/bin/dir ls_dir : /usr/bin의 dir명령을 현재디렉터리에서 ls_dir이름으로 링크 • ping (packet internet gopher) 자신의 네트워크 혹은 외부 네트워크와 통신이 정상적으로 이루어져 있는지 확인한다. ex) # ping 168.126.63.1 w - [husfV] [user] ln [Option] [Source file] [Target file] ping [hostname or ip]
Embedded System Development Environment I • ping (packet internet gopher) 자신의 네트워크 혹은 외부 네트워크와 통신이 정상적으로 이루어져 있는지 확인한다. ex) # ping 168.126.63.1 ping [hostname or ip]
Embedded System Development Environment I • ifconfig 시스템에 부착된 이더넷 디바이스의 ip를 확인 및 변경한다. ex) ifconfig eth0 192.168.1.100 : 시스템의 이더넷IP를 192.168.1.100으로 변경한다. ex) ifconfig eth0 down : 이더넷의 사용을 중지할 때 사용한다.
Embedded System Development Environment I • 호스트 우분투에서 시스템 아이피 설정 우분투의 경우 네트워크 설정은 윈도우에서 해주는 것이 일반적이다. .
Embedded System Development Environment I • iwconfig 무선 연결을 위해서 사용한다. 무선랜 장치가 장착된 경우 해당 장치를 ifconfig를 통해 ip를 설정 한 다음, iwconfig명령을 통해 무선 AP와 연결을 할 수 있다. ex) ifconfig rausb0 192.168.1.101 up ex) iwconfig rausb0 essidlinksys mode managed rate 54M channel 11 - rausb0 : 장착된 무선랜 장치 이름 - essid : 무선 AP의 ssid명 - managed : 연결공유 방식 - rate : 연결 통신 속도 - channel : 연결 채널 essid및 통신속도, 모드는 공유기에서 제공해주는 기본적인 설정을 통해서 확인이 가능 연결 하고자 하는 AP의 essid및 보안설정을 확인하려면, 아래의 명령을 이용한다. ex) # iwlistrausb scanning iwconfig interface [essid X] [nwid N] [mode M] [freq F] [channel C] [sens S] [nick NN] [rate R] [rts RT] [frag FT] [txpower T] [enc E] [ket K] [power P] [retry R] [commint]
Embedded System Development Environment I • VI / Vim Editor 리눅스 시스템에서 가장 오래된 텍스트 기반 에디터로서, 윈도우 기반의 에디터와 동일한 정도의 강력 한 편집기능을 제공한다. 또한, 별도의 툴을 이용하여 소스트리 추적, 코드 영역등을 쉽게 추적 또는 표시할 수 있다. 일반적으로 공용 개발 시스템에서 소스의 일부수정 및 환경 설정등에 많이 이용된다. • vim 에디터의 모드 - 명령모드 : 키 입력을 통해 vi에게 명령을 하는 모드, 커서를 이동, 복사, 삭제, 붙이기등 - 입력모드 : 실제 편집을 하기 위한 모드로 명령모드에서 i, a, o, s키를 눌러서 진입한다. - EX모드 : 라인에디터 기능으로, 패턴을 찾거나, 문자열 대체, 파일 열기 및 닫기등에 사용
Embedded System Development Environment I • 파일 열기 파일명을 입력하여 해당 파일을 연다. 만약, 입력한 파일이 없는 경우에는 생성을 하게 된다. ex) # vim HelloWorld.c 기존에 있는 Helloworld.c파일을 열게되면 아래와 같이 해당 내용이 출력이된다. 이 상태는 명령모드 상태이다. • 파일을 열지 않고 실행 파일을 열지 않고 에디터를 실행하면, 간단한 설명과 함께 시작된다. 입력기능으로 전환하면 설명이 없어지고, 편집을 수행할 수 있다. 파일 이름이 없이 vi에디터를 시작한 경우에는 파일 - 내용 입력 후 저장을 위해서 w옵션과 함께 파일이름을 지정해서 저장할 수 있다. :w test.c - 기존 파일을 열기 위해서는 o 명령을 이용하여 열수 있다. :o ./test.c
Embedded System Development Environment I - 기존 파일을 열어서 다른 파일로 저장 해야할 경우도 w 명령을 이용한다. :w test.c - 수정을 종료하는 경우 q 명령을 이용한다. 만약 수정한 내용이 있으면 q명령 만으로는 종료 할 수 없다. 저장을 하지 않고 끝내야 한다면 강제 옵션인 !를 이용한다. :q (수정한 내용이 없을 경우) :wq (수정한 내용을 저장하고 종료할 경우) :q! (저장하지 않고 종료할 경우) • Ex 모드 명령어 위에서 언급한 내용중 저장, 파일 열기, 종료등은ex명령어이다. 일반적으로 많이 사용하는 ex 명령어는 다음과 같다.
Embedded System Development Environment I • 명령 모드 명령어 일반적인 vi에디터의 명령어는 다음과 같다. [입력 모드 진입] [커서이동]
Embedded System Development Environment I [삭제명령] [복사 및 붙이기]
Embedded System Development Environment I [블럭지정] : 명령모드에서 v명령 이용한 다음의 명령 [되살리기와 되 돌리기] [문자열 찾기] : EX모드에서 /{찾을 문자열}을 이용하여 원하는 내용을 찾을 수 있다.
Embedded System Development Environment I [문자열 치환] : EX명령을 이용하여 문자열 치환을 할 수 있다.