FALinux 장길석 부장님의 세미나 내용에 덧붙이는 내용입니다.


임베디드 개발에 있어서 가장 무난한 조합은 윈도우 - 리눅스 - 타겟보드 입니다.

윈도우에서는 편리하고 익숙한 에디터를 가지고 부담감 없이 사용을 할 수 있고

리눅스에서는 비용에 부담없는 중앙집중식 빌드를 가능하게 해주며

타겟보드는 Ethernet이나 JTAG등을 통해서 제어를 할 수 있게 하는게 일반적인 구성입니다.


준비물

리눅스 돌릴 컴퓨터

리눅스 배포판


컴퓨터

모든 서버가 그러하듯, 사용자가 많으면 많을수록 고사양이 필요합니다.

개인적으로 쓸 경우 컴파일 시간을 조금 희생하면 펜티엄 4급 이상이라도 충분합니다.

단, 하드는 빠를수록 좋습니다. (컴파일시라던가, 여러 명이 사용중일 경우)


리눅스

과거에는 fedora를 주로 사용했으나, 우분투를 써보고는 편리함에 반해 갈아탄 경험이 있습니다.

개인적으로는 ubuntu LTS 를 추천드리며, LTS는  Long Term Service 라고 하여 2년간 업데이트를 제공하는 것입니다.

(Desktop 기준 2년, Server 기준 3년) 아직 12.04 LTS가 나오지 않았으므로 10.04 LTS 정도면 무난 합니다.

Ubuntu Desktop Edition 32/64bit 10.04 LTS


서비스

윈도우와 협업을 위해서 사용하는 서비스로는 윈도우 파일 공유(SAMBA/삼바)는 필수입니다.

samba

- 윈도우와 파일 공유를 하기 위한 서비스 입니다.

SSH

- putty나 여러가지 SSH Client를 통해 원격접속을 제공하는 서비스 입니다.

TFTP

- 타겟보드에서 kernel 이미지를 불러오기 위해 사용하는 서비스 입니다.

NFS

- root filesystem 붙이기 위해 사용하는 서비스 입니다.


서버 설치

$ sudo apt-get install samba system-config-samba
$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install ssh

$ sudo apt-get install tftpd 


서버 설정

삼바

$ system-config-samba 를 입력하거나 

시스템 - 관리 - samba 메뉴를 선택하여 설정합니다.

내부적으로만 사용하거나, 권한설정이 없이 사용하려면 접근에서 "모든 사용자에게 접근 허가"를 해줍니다.

smb_1.PNG

NFS

$ sudo vi /etc/exports

$ sudo vi /etc/services

[HOWTO] ubuntu 에서 nfs 서버 구동 및 설정하기

SSH

설정이 필요없습니다.

TFTPD

아래의 파일에서 가장 마지막 경로를 수정합니다.

$ sudo vi /etc/inetd.conf

tftp        dgram    udp    wait    nobody    /usr/sbin/tcpd    /usr/sbin/in.tftpd /srv/tftp


빌드 서버 설치

gcc 및 vi를 설치합니다.

$ sudo apt-get install vim build-essential


만약 arm-linux-gcc 등을 설치해야 한다면 별도로 압축을 해제하면 됩니다.


빌드 옵션

make를 통해서 컴파일시 -j 옵션을 주고 하면 여러개의 컴파일러를 구동하여 빠르게 컴파일 할 수 있습니다.

여러사람이 동시 사용중에는 자제하는 것이 좋은 옵션입니다. (하드를 많이 잡아먹어서 거의 다운직전이 될 수 도 있습니다)

-j [jobs], --jobs[=jobs]

Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given without an argument,make will not limit the number of jobs that can run simultaneously.


[링크 : http://linux.die.net/man/1/make]


윈도우


윈도우측 사용방법

윈도우에서는 별다르게 신경을 쓸 것은 없습니다.

단순히 탐색기에서 \\servername 으로 접속하셔서 필요한 파일을 수정하시면 됩니다.

귀찮을 경우 네트워크 드라이브 연결을 이용하여 드라이브 문자를 지정할 수 도 있습니다.

(탐색기 - 도구 - 네트워크 드라이브 연결)

win.PNG


SSH(PuTTY 사용하기)

개인적으로 추천하는 방법은 PuTTY + Xming 입니다.

Cygwin/X도 좋지만, 설치하기 쉽지가 않기 때문에 패키지화 되어 있는 Xming이 유리합니다.

[링크 : http://sourceforge.net/projects/xming/]

[링크 : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html]


우분투와 접속시에는 UTF-8로 설정을 변경해야 하며,

putty_1.PNG 


Xming을 이용한 X11 forwarding 사용시에는 아래의 항목에서 X Display location을 입력해주어야 합니다.

putty_2.PNG


Xming을 실행한뒤, PuTTY로 서버에 접속하고

$ xclock

이라고 입력을 하면 다음과 같이 윈도우 상에서 리눅스 프로그램의 "실행화면"을 끌어올 수 있습니다.

putty_3.PNG

단, 리눅스에서 출력되어야 할 내용만을 윈도우에서 끌어와 출력하는 것으로

드래그&드랍이 적용되지 않으며, 파일 다이얼로그에서 윈도우 경로가 아닌 리눅스 상의 경로를 사용해야 함을 유의해야 합니다.


또한, Xming의 경우 openGL 가속이 잘 되지 않는 경우가 있으므로, 주의해야 합니다.

[링크 : http://minimonk.net/2796]


winSCP

winSCP는 윈도우용 sFTP 클라이언트 입니다. SSH를 통해 FTP를 사용할 수 있으므로

보안에도 좋고, 서버에서는 22번 포트만 열어두어도 되는 편리한 방법입니다.

[링크 : http://winscp.net]


기본값으로는 winscp에서 UTF-8 한글이 나오지 않으므로 반드시 변경해주시기 바랍니다.

winscp UTF-8 한글 적용하기


winMerge

winMerge는 diff 및 merge를 할 수 있는 프로그램입니다.

소스의 변경점을 비교하기 위해서 사용하는 프로그램으로, Syntax highlight를 지원하는 것이 특징입니다.

[링크 : http://winmerge.org/]


winmerge를 편하게 사용할 수 있는 기본설정 방법입니다.

winmerge 사용환경 설정


tortoiseSVN / tortoiseCVS / tortoiseGIT

SVN/CVS/GIT 등은 버전관리 클라이언트 입니다.

버전관리는 소스코드 변경시 이전의 소스와의 비교라던가, 과거 버전으로 되돌릴때 매우 용이하게 사용되며,

Programatic programer 책의 말을 인용하면 버전관리 없는 개발은 백스페이스 없는 워드프로세서이다 라고 할 정도로

한번 사용해보시면 편리함에 반하실 것이라 생각됩니다.

개인적으로는 독립적으로 사용이 가능한 tortoiseSVN을 추천합니다.

[링크 : http://tortoisesvn.net/downloads.html]


혼자 사용하실 경우 아래의 링크를 참조하셔서 사용해 보시기 바랍니다.

혼자서도 잘쓰는 tortoiseSVN


[링크 : https://help.ubuntu.com/community/Servers]