= 임베디드 리눅스 실전 가이드 = -- [김도집] [[DateTime(2005-08-24T02:41:25)]] [[TableOfContents]] == 개요 == == 저작권 == 본 내용에 대한 것은 자유롭게 배포 가능하다. 단, 출처는 명시해야 하며, 임의 수정 배포는 허용하지 않는다. == 용어 == == 툴체인 == === 라이브러리 === ==== zlib ==== zlib은 널리 사용되는 압축 라이브러리이다. zlib 1.2.2 버전 이하에서는 보안 문제가 있으므로 반드시 최신 버전을 사용하기 권한다. zlib는 다음의 사이트에서 구할 수 있다: [http://www.zlib.net] ===== 빌드 하기 ===== 다음은 zlibc 1.2.3의 빌드 과정이다. 1. ./configure 또는 ./configure --shared 를 실행한다. --shared 옵션은 zlib 라이브러리를 동적으로 만들라는 의미이다. {{{ ./configure --shared --prefix=/usr/local/arm/arm-uclibc-3.3.5 }}} 1. Makefile 을 다음과 같이 수정한다: {{{ CROSS=arm-linux- CC=$(CROSS)gcc LDSHARD=$(CROSS)gcc -shared -Wl,-soname,libz.so.1 CPP=$(CROSS)gcc -E AR=$(CROSS)ar rc RANLIB=$(CROSS)ranlib }}} 1. make install 를 실행하여 빌드된 것을 설치한다. == 부트로더 == == 커널 == === 모듈 프로그래밍 === ==== Makefile 만들기 ==== 커널 2.6에서는 외부 모듈의 빌드를 커널 소스 내의 빌드 시스템을 이용한다. 예를 들어 foobar.ko 라는 커널 모듈을 만든다고 하면 다음과 같이 Makefile 파일을 만든다. {{{ ifneq ($(KERNELRELEASE),) #call from kernel build system foobar-objs := foo_1.o foo_2.o obj-m := foobar.o else KERNELDIR ?= /YOUR/KERNEL/SOURCE/PATH PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif clean: rm -rf *.o *~ core .depend .*.cmd .*.o.d *.ko *.mod.c .tmp_versions }}} /!\ Makefile에서 실행 명령 행 첫 공백은 '''TAB'''으로 띄워야 한다. 공백 문자가 아니다 === 메모리 === == 응용 프로그램 == == 참고 ==