RTLinux 설치방법 (Ubuntu Breezy Version) Last update: by deathymn - Mechatrobotics Lab, Mechanical Eng.Dep. Yonsei Univ * 이작업은반드시 root 사용자로로그인해

Similar documents
지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5>

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - 03-Development-Environment-2.ppt

PowerPoint 프레젠테이션

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

슬라이드 제목 없음

PowerPoint 프레젠테이션

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

Abstract View of System Components

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [ 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

ISP and CodeVisionAVR C Compiler.hwp

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

5 장소프트웨어관리편 리눅스의패키지관리시스템패키지란? 수많은리눅스배포판과마찬가지로우분투와 DYNA LINUX 또한소프트웨어설치 / 제거에관해서는패키지관리시스템에의존하고있습니다. 모든우분투용프로그램은 패키지 의형태로배포되고있는데, 여러분이이스트소프트웹사이트에서다운받는 a

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Microsoft PowerPoint - 02_Installation

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Mango220 Android How to compile and Transfer image to Target

System Recovery 사용자 매뉴얼

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

CD 무결성체크는 SKIP 을해도좋습니다. Next 버튼을누릅니다. Next 버튼을누릅니다.

작성자 : 기술지원부 김 삼 수

Microsoft Word - CAE 클러스터 환경 구축-ABAQUS.doc

Microsoft PowerPoint - 11_(Linux)_(Fundamental)_Linux_Kernel

Microsoft PowerPoint - 10_(Linux)_(Fundamental)_Linux_Kernel

페도라 코어 5 설치 가이드

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft Word - Modelsim_QuartusII타이밍시뮬레이션.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft Word - Armjtag_문서1.doc

PowerPoint 프레젠테이션

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

슬라이드 1

Microsoft Word ARM_ver2_0a.docx

ICAS CADWorx SPLM License 평가판설치가이드

KEY 디바이스 드라이버

Install stm32cubemx and st-link utility

Microsoft PowerPoint - 06-CompSys-11-System.ppt

Microsoft Word - src.doc

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

RealDSP UT 프로그램 메뉴얼

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

Chapter. 5 Embedded System I Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee

Adobe Flash 취약점 분석 (CVE )

/chroot/lib/ /chroot/etc/

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

Tizen

Abstract View of System Components

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

PowerPoint 프레젠테이션

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Chap 10 안드로이드커널 (Kernel)

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

PowerPoint 프레젠테이션

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용

untitled

Microsoft PowerPoint - em8-리눅스설치.ppt

PowerPoint Presentation

문서 대제목

01장

PowerPoint 프레젠테이션

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Chap 5 루트파일시스템 (Root F/S)

슬라이드 1

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

<3032B0AD202D20B8AEB4AABDBA20BCB3C4A12D556E6978C0CEC5CDB3DDBAB8C3E6C7D0BDC02E687770>

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

PowerPoint 프레젠테이션

Ä¿³Î QnA

슬라이드 1

Windows CE 5.0 OS 올리는 방법[051123].hwp

Apache install guide

4S 1차년도 평가 발표자료

단계

강의 자료

망고100 보드로 놀아보자-4

Microsoft Word - Network Programming_01.docx

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Tablespace On-Offline 테이블스페이스 온라인/오프라인

RVC Robot Vaccum Cleaner

주제별로명령들이따로있는것을보면주제끼리의순서는상관없어도명령들의위치를지 켜야할지도모른다. 하지만실험은해보지않았으니심심하면체크해봐도된다. [CRAB] CRAB 을하기위한가장기본적인세팅이다. jobtype = cmssw scheduler = glite 등이있다. 보통 CRAB

PowerPoint Template

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Transcription:

RTLinux 설치방법 (Ubuntu Breezy Version) Last update: 2006.03.17 by deathymn - Mechatrobotics Lab, Mechanical Eng.Dep. Yonsei Univ * 이작업은반드시 root 사용자로로그인해서수행한다. * * 이문서는 Ubuntu linux 5.10 버전을기준으로설명된다 * * 이문서를작성할당시, 사용한커널은, 2.6.9 를사용했다. 사실, 2.6 버전대로오면서, 커널내부적으로모듈을다루는방식에많은변화가발생했다. 그러므로, 왠만하면 2.6.9 버전의커널을사용하자. * Ubuntu 에서패키지관리자는, 시냅틱패키지관리자 를사용해도되며, 만약 Kubuntu 환경일경우에는 Adept 패키지관리자 를사용해도상관없다. * 준비작업 : 커널을컴파일하기위해서는, gcc 와 ncurse library 등이미리깔려있어야한다. 처음 ubuntu 를설치하면개발환경이설치되어있지않기때문에, 다음과같은명령으로기본적인개발환경을설치한다. apt-get install build-essential apt-get install kernel-package 시스템 -> 관리 -> 시냅틱패키지관리자를실행시켜, Search 로 ncurse 를검색해본다. 결과창에서봤을때, libncurses5, libncurses5-dev, libncursesw5, ncurses-base, ncurses-bin 이설치되어있어야한다. 또한시냅틱패키지관리자에서, 이번에는 gcc 로검색해본다. 이경우, gcc, gcc-4.0, gcc-4.0-b ase 정도가설치되어있음을확일할수있을것이다. 여기에추가적으로검색창에서 gcc-2.95 란패키지를설치해준다. 테스트해본결과, gcc-4.0 을이용해서컴파일할경우, 에러가나는것을확인... 커널컴파일을위해서는 gcc-2.95 패키지가절대적으로필요하다.. 터미널을하나띄워서, ls -al /usr/bin/gcc 를확인해보자. 결과창에보면, gcc 라는화일이 gcc-4.0 을가르키는링크화일임을알수있다. 앞의과정에서 gcc-2.95 패키지가정상적으로설치되었으면, /usr /bin/ 폴더안에, gcc-2.95 화일이존재할것이다. (ls -al /usr/bin/gcc-2.95) 결국, 커널컴파일을위해서 gcc-2.95 를이용하기위해서는, gcc 의링크만바꾸어주면되는것이다. 다음과같은명령으로일단 gcc 를지운다. rm -rf /usr/bin/gcc 그리고, gcc-2.95 화일을가르키는링크를다음과같이건다. ln -s /usr/bin/gcc-2.95 /usr/bin/gcc 링크가제대로걸렸는지확인해본다. ls -al /usr/bin/gcc result) /usr/bin/gcc->/usr/bin/gcc-2.95-1-

리눅스커널및, RTLinux 구하기. 1. RTLinux 를설치하기위해서는, 일반적인리눅스커널과 RTLinux 모듈이들어있는화일이필요하다. 일반적인리눅스커널 : linux-2.4.29.tgz or linux-2.6.9.tgz RTLinux 모듈화일 : rtlinux-3.1.tgz or rtlinux-3.1-2.6_kernel.tgz 2. 두화일을다운받는경로는다음과같다. 일반적인리눅스커널 : ftp.kernel.org RTLinux 모듈화일 : www.rtlinuxfree.com ( 회원가입필요 ) 참고 ) www.rtlinuxfree.com 사이트에들어가면, 다운받을수있는곳에 rtlinux 에대한문서화일이있다. ex) rtldoc-3.2-pre1.tar.bz2 이문서화일에는설치방법과튜토리얼이들어있다. 3. 설치의모든작업은 /usr/src 폴더에서진행하기때문에이쪽으로다운받은화일들을카피한다. ex) cp linux-2.4.29.tgz /usr/src/linux-2.4.29.tgz cp rtlinux-3.1.tgz /usr/src/rtlinux-3.1.tgz 카피가끝난후, 이폴더로이동한다. ex) cd /usr/src 리눅스커널컴파일. ( 참고 ) www.rtlinuxfree.com 사이트에보면, prepatched 커널이라는게있다. (ex) prepatched_linux_ker nel-2.4.29-rtl.tgz 즉, 이화일을다운받으면, RT 커널로변환된리눅스커널을얻을수있다. 즉, 10 과정이필요없다는말이다. 하지만이화일안에모든것이포함되어있는게아니라, 일반적인리눅스커널 + RT 패치만들어있기때문에, RT 모듈이들어있는화일도반드시받아주어야한다. 4. 먼저리눅스커널을압축을푼다. ex) tar xvzf linux-2.4.29.tgz 만약 prepatch 커널일경우, tar xvzf prepatched_linux_kernel-2.4.29-rtl 압축을푼후에, /usr/src/ 폴더밑에새로운폴더가하나생겼음을볼수있다. ex) /usr/src/linux-2.4.29/, or /usr/src/linux-2.6.9/ 5. 작업을편하게하기위해이폴더를 'linux' 라고링크를걸어둔다. ex) ln -s /usr/src/linux-2.4.29 linux or, ln -s /usr/src/linux-2.6.9 linux 링크가걸렸는지확인 ls -al result) lwxrwxrwx linux -> linux-2.4.29 or lwxrwxrwx linux -> linux-2.6.9 * 커널컴파일을진행하기전에, 이커널을 RT 커널로만들어주는과정이필요하다. 이는앞에서언급했듯이, RTLinux 모듈화일에들어있는패치화일로패치해주는과정이필요하다는의미이다. (Prepatch kernel 을받은경우에는이과정이필요없다.. 패치가되어있는걸받았기때문... 즉, 7 -> 11 까지의과정이필요없다. ) 6. 커널을패치하기위해, RTLinux 모듈화일을압축을푼다. -2-

ex) tar xvzf rtlinux-3.1.tgz 압축을푼후에, /usr/src/ 폴더밑에새로운폴더가하나생겼음을볼수있다. ex) /usr/src/rtlinux-3.1/ 나중에작업이끝나고나면, RTLinux 에관련된화일들이, /usr/rtlinux-3.1 이라는폴더로자동생성되어저장된다. 즉, 이두폴더가이름이똑같이때문에 ( 물론경로는틀리지만 ) 혼동될수있으므로, /usr/src/rtlinu x-3.1 폴더를 rtlinux-3.1_source 이런식으로이름을바꾸어주자. 결국작업을할폴더들의구조는다음과같다. (kernel 2.4.29 일경우 ) /-------/usr--------/src------/linux-2.4.29 ------/rtlinux-3.1_source --------/rtlinux-3.1 ( 작업이끝난후, 자동으로생성되는폴더 ) (kernel 2.6.9 일경우 ) /-------/usr--------/src------/linux-2.6.9 ------/rtlinux-3.1_source --------/rtlinux-3.1 ( 작업이끝난후, 자동으로생성되는폴더 ) 7. 이폴더로이동후 (cd /rtlinux-3.1_source), 폴더안을보면 (ls -al) 'patches' 라는폴더가보일것이다. 이폴더로이동한다. (cd patches) 8. 그럼현재폴더는 /usr/src/rtlinux-3.1_source/patches 이어야한다. 이폴더안에내용을보면 (ls -al), kernel_patch-2.4.20-rtl kernel_patch-2.4.29-rtl kernel_patch-2.6.9rtlfree 등의화일이보일것이다. 이중다운받은리눅스커널, 예를들어 linux-2.4.29 에맞는패치화일은 kernel _patch_2.4.29-rtl 이다. 9. 이제패치를진행하기위해 linux 폴더로이동한다. ex) cd /usr/src/linux 10. 다음의명령으로커널패치를진행한다. patch -p1 < /usr/src/rtlinux-3.1_source/patches/kernel_patch-2.4.29-rtl 또는 patch -p1 < /usr/src/rtlinux-3.1_source/patches/kernel_patch-2.6.9rtlfree 11. 여기까지해서, 일반적인리눅스커널의소스를 RT 커널의소스로변환하였다. 12. 이제부터커널컴파일을시작한다. 커널컴파일을하기위해커널소스가있는폴더로이동한다. ex) cd /usr/src/linux 13. 커널컴파일을크게세가지과정으로진행된다. -3-

1) 자신의컴퓨터에달려있는장치들에적합한커널옵션설정 2) 커널컴파일 3) 여러장치디바이스드라이버들의컴파일 14. 커널컴파일을하기전에먼저, 기존환경설정값을없애기위해, make mrproper 15. 또한한번이상커널컴파일을수행한경우, 여러쓰레기화일들이남아있을수있으므로, make clean 16. 다음으로, 커널의옵션을설정하기위해, make menuconfig 또는, make xconfig 주의 ) 가장어려운부분이이부분이아닐까싶다. 가장쉬운방법은커널옵션세팅이되어있는기존배포판의 config 화일을 load 해서, 필요없는부분을지워가는것이라할수있다. 커널옵션중에다음사항은반드시체크하자. ( 단, 2.6.9 버전의커널옵션에대해설명 ) Power management setup -> APM(Advanced Power Management) BIOS Support -> APM(Advanced Power Management) BIOS Support 는 n 으로설정 Power management setup -> CPU Frequency Scaling -> CPU Frequency Scaling 는 n 으로설정 Processor Type and Features-> Processor Family-> 에서자신의 CPU 에맞는 Processor 설정 Processor Type and Features-> Local APIC Support on uniprocessors 는 n 으로설정 ( 선택안함 ) 현재, Ubuntu 5.10 (Breezy) 에대한, 커널옵션설정화일 (UbuntuSetting.config) 을같이첨부한다. 이를로드하기위해서는, 일단이화일을 /usr/src/linux 에복사해놓고, make menuconfig 설정창에서, Load an Alternative Configuration File 으로불러오면된다. 이렇게불러온후, 위에서언급한 processor 부분은반드시해당컴퓨터의 processor 에맞게변경하자. 주의 ) 혹, 이설정이해당컴퓨터환경과안맞을수도있다. 이경우, 현재부팅되어있는커널설정의환경을불러와서필요한것만바꿀수있다. 현재부팅되어있는커널이 2.6.10 이라하자. 그러면 /boot 폴더에 config-2.6.10 이라는화일을볼수있다. 그러면일단현재커널컴파일하는폴더로이동후 (cd /usr/src /linux), 위화일을다음과같이카피한다. (cp /boot/config-2.6.10./.config) 그런후에, 다음과같은명령을수행한다. (make oldconfig). 그러면 config-2.6.10 에설정되어있는환경설정파라미터가, 현재컴파일하려는커널의환경설정파라미터에있으면자동으로설정하고, 그렇지않은것은사용자에게물어보게된다. 이경우, 왠만한건, no, 즉, n 을치고넘어가고록하자. 그러면 make oldconfig 이끝난후에, 다시 ma ke menuconfig 등을실행해서다시한번검토해볼수있다. 17. 커널옵션을다설정한후에는, make dep 명령을수행해서, 옵션들사이의의존관계가제대로되어있는지체크한다. (2.6.9 커널인경우, 이과정이필요없음 ) 18. 커널을컴파일하여, 바이너리화일로만들기위해, make-kpkg initrd stem linux -append-to-version=.01 kernel_image kernel_headers : 여기서 -append-to-version 다음의.01 은임의값을설정해도된다. 즉, 말그대로자신만의버전명을임의로붙이는것이다. 위의명령으로컴파일하게되면화일이름이 linux-headers-2.6.9rtlfree.01_10.00.c ustom_i386.deb 와같은방식으로생성되게된다. 커널을컴파일한후, 20 번과정으로설치를하게되면, 커널과관련된모듈들이 /lib/modules/ 커널버전 폴더에설치되게된다. 즉, 위의옵션없이하나의커널소스를여러번컴파일하게되면, 모듈들이 /lib/modules/ 커널버전 폴더에계속 overwrite 되게되는것이다. 그러므로, 위의옵션을주어같은커널이라도버젼을달리해서컴파일하게되면, 서로다른폴더에모듈 -4-

들이설치되므로모듈들이중복되지않고, 커널을관리하는것도쉬워진다. 19. 약간의시간이지난후, 커널컴파일이정상적으로수행됐다면, /usr/src 폴더를보면, 다음과같이두화일이생성된것을볼수있다. : linux-headers-2.6.9rtlfree.01_10.00.custom_i386.deb linux-image-2.6.9rtlfree.01_10.00.custom_i386.deb 20. 이를시스템에 install 하는것은다음과같은명령을사용한다. ( 현재폴더 : /usr/src) dpkg -i linux-headers-2.6.9rtlfree.01_10.00.custom_i386.deb dpkg -i linux-image-2.6.9rtlfree.01_10.00.custom_i386.deb : 이렇게설치된커널이미지는시냅틱패키지관리자를통해서제거가능하다. 21. 지금컴파일한커널이부트로더에등록되어있는지확인해보자. vi /boot/grub/menu.lst 22. 여기까지해서, 커널컴파일하는과정은모두끝났다. 23. 만약, 커널컴파일이잘못됐거나, 옵션설정을다시해서다시컴파일해줘야하는경우, 일단다른커널로부팅한다. 24. 부팅후에, 시냅틱패키지관리자 를실행해서, 지우려는커널을찾는다. 즉, search 버튼을눌러서, 20 과정에서설치한이름을이용해서찾는다. 찾은후에, 삭제를하면된다. ( 만약지우지않고, 같은커널을다른옵션을주어서추가로설치할경우는, 이과정은생략 ) 25. 그리고나서, /usr/src/linux 폴더로이동. cd /usr/src/linux 26. 여기서, 기존컴파일했던, 중간생성화일들과결과물들을삭제하기위해다음명령을실행한다. make-kpkg clean 27. 이명령을실행한후에, 16 과정부터다시실행한다. RT 모듈컴파일. 28. 컴퓨터를재부팅하고, Boot Loader 에 21 과정에서확인한타이틀이뜨는지확인하고, 그걸선택해부팅한다. 29. 부팅과정에서 Kernel panic 하고멈추는경우가발생할수있다. 이경우, 기존커널로다시부팅해서 1 2 과정부터다시수행한다. 30. 정상적으로부팅에성공하면, 커널컴파일은성공적으로이루어진것이다. 이제 RT 모듈을컴파일하기위해, 터미널을하나띄우고, RTLinux 폴더로이동한다. ex) cd /usr/src/rtlinux-3.1_source 31. 이폴더아래에, 리눅스커널을가르키는링크를하나만든다. ex) ln -s /usr/src/linux-2.6.9 linux -5-

그러면, /usr/src/rtlinux-3.1_source 폴더안에, linux 라는링크화일을볼수있다. 32. RT 모듈들에대한옵션을설정하기위해 (ex, RTFifo 의개수등..) make menuconfig 또는 make xconfi g 을수행한다. 33. 이를수행하면, 라이센스관련텍스트화일이나오는데, q 키를치고빠져나오면라이센스에동의하는지물어본다. 여기서 y 키를누른다. 옵션은그냥기본적인설정을사용하고저장을하고나온다. 34. 모듈을컴파일하기전에, make dep 명령으로의존관계를설정한다. ( 주의 ) 이명령을수행하고나면, /usr/src/rtlinux-3.1_source/scripts 라는폴더안에, rtlinux 와 rtl-con fig 이라는링크화일이만들어진다. 그러나, Makefile 의버그인지는몰라도, 이링크가깨져있다. 이를수정하기위해 scripts 란폴더로이동후 ( cd./scripts) rm -rf rtlinux rm -rf rtl-config 으로두링크화일을지워준다. 다음으로현재 RTLinux 를사용하는커널버전에따라서다음과같이링크를걸어둔다. ln -s rtlinux-2.6 rtlinux ln -s rtl-config-2.6 rtl-config ls -al 명령으로두화일의링크가제대로걸렸는지확인한후, 상위폴더로이동한다. cd.. 또는 cd /usr/src/rtlinux-3.1_source 35. 다음으로 make 를입력하여, 모듈들을컴파일하여생성한다. 36. 컴파일하는도중, warning 이많이뜨는데, 컴파일만정상적으로끝나면이는상관없다. 다음으로 /dev 폴더안에, Rtlinux 와관련된장치화일들을만들기위해다음명령을수행한다. make devices 37. 적절한위치에화일들을옮기기위해, make install 명령을수행한다. 이명령의결과로, 6 번과정에서언급했던, /usr/rtlinux-3.1 이라는폴더가자동생성되며, 또한 /usr 폴더아래에 rtlinux 라는링크화일이생성된다. 38. 모든과정은끝났다. 마지막으로제대로모든것들이설치되었는지를확인하기위해서, 임의의폴더에서 rtlinux start 를실행해보자. 그러면결과는다음과같다. -6-

Scheme: (-) not loaded, (+) loaded (+) rtl (+) rtl_fifo (+) rtl_posixio (+) rtl_sched (+) rtl_time 만약, 이중하나라도 (-) 가뜨면, 이는어딘가잘못되었다는것이다. 보통두가지문제를지적한다. 첫번째는, 16 과정에서제시된옵션설정이제대로안되어있을경우이고, 두번째는 31 과정을하지않아, /dev/ 밑에디바이스화일들이제대로생성되지않은경우이다. 이를체크해본다. 39. kernel 2.6.9 인경우, rtlinux 모듈을위해사용하는 rtlinux stop 명령에약간의오류가있다. rtlinux st op 은내부적으로 rmmod 명령을사용하여모듈을내리는데, rtlinux stop 명령에서는 rmmod -r 을수행한다. 그러나 rmmod 의버전이바뀌면서, -r 이란옵션이없어진것같다. 그래서모듈을내리기위해 rtlin ux stop 명령을치면, 오류가출력되며모듈이안내려간다. 이는다음과같이수정할수있다. 일단 /etc/r c.d/init.d/rtlinux 화일을편집기로불러들인다. ( ex: vi /etc/rc.d/init.d/rtlinux ) 그러면, 66 번째줄과, 68 번째줄에서, RMMOD= /sbin/rmmod -r 과 RMMOD= which rmmod -r 이있을것이다. 여기서 -r 옵션을모두지우고저장을한다. 40. 다음, rtlinux stop 명령을내린다. 그러면, 실행결과는다음과같을것이다. Scheme: (-) not loaded, (+) loaded (+) rtl (-) rtl_fifo (-) rtl_posixio (-) rtl_sched (-) rtl_time 여기서도, 아직오류가있다. 즉, 모든모듈이내려가야하는데, rtl 은안내려간다. 이는내부적으로모듈을다른모듈들을내린다음에, rtl 을마지막으로내려야하는데, 그순서가잘못되어있는것같다. rtlinux stop 명령을한번더치면 rtl 모듈마저도내려가지만, 깔끔하지가않다. ( 참고 :) 이를해결하기위한한가지편법으로, 다시편집기로 /etc/rc.d/init.d/rtlinux 화일을연다. 그리고 1 43 번째줄정도에다음과같은코드를삽입한다. for modules in ${RTL_MODULES_LIST} do MODINS= ${LSMOD} ${GREP} ^$modules if [ $MODINS ]; then ${RMMOD} $modules fi done ${RMMOD} rtl <- 삽입한코드 즉, 정말편법으로 rmmod 명령을한번더실행시켜서, rmmod rtl 을실행한거와똑같다.. 이로써 RTLinux 를사용하기위한준비는다아끝났다. 제대로되는지확인해보기위해서, /usr/src/rtlinux-3.1_source/examples/frank 폴더에있는내용을실행해보자. 폴더안을보면, 다음과같은두화일을볼수있다. frank_app & frank_module.ko 실행순서는먼저모듈을올린다. 즉, rtlinux start frank_module.ko :.ko 를반드시붙인다. -7-

다음으로 frank_app 을실행시킨다. 즉,./frank_app 그러면화면에 frank, zappa 가교대로뜨는걸볼수있다. 응용프로그램이종료하면, rtlinux stop frank_module 명령을내려서모듈을내려준다... 41. 만약리눅스커널을재컴파일한경우에는 RTLinux 도다시컴파일해주어야한다. 일단 30 번과정으로해당폴더로이동한다. 42. 다음명령을실행하여, 재컴파일을위한준비를한다. make clean 43. 다음으로 34 과정을수행한다. 하지만이번에는 rtlinux 와 rtl-config 링크화일이안깨져있을것이다. 44. 그리고 35 38 과정을수행한다. 이번에도역시 rtlinux 관련스크립트에오류가있으므로, 38 과정처럼수정해준다. 마지막으로, 40 번과정에서언급된예제를실행해보고제대로되는지확인하자.. -8-