ARM보드 - 세부 커널셋팅
프로그래밍/Embedded System 2009. 3. 17. 15:03 |
컴파일 설정(쉘 스크립트 작성)
Makefile 파일수정(경로 : /home/test/linux-2.6.15.7/)
ARCH ?= arm CROSS_COMPILE ?= arm-linux- |
PATH 활성화(실행 : source path.sh)
#!/bin/bash export PATH=/home/test/cdt_2007-07-20/bin:$PATH export LD_LIBRARY_PATH=/home/test/cdt_2007-07-20/i686-pc-linux-gnu/arm-linux/lib:$LD_LIBRARY_PATH export ARCH=arm export CROSS_COMPILE=arm-linux- |
커널 소스 셋팅(Memory Size, I/O 맵, 머신 타입)
setup.c 파일수정(경로 : /home/test/linux-2.6.15.7/arch/arm/kernel)
|
메모리 사이즈를 16Mbyte가 아니라 128Mbyte를 사용할 것이므로 주석처리(//)를 하고 메모리 사이즈를 128Mbye로 하여 추가하도록 한다.
mach-types 파일수정(경로 : /home/test/linux-2.6.15.7/arch/arm/tools)
#av7200 ARCH_AV7200 AV7200 304 mainstone MACH_MAINSTONE MAINSTONE 304 |
위의 파일을 주석처리(#)하고 mainstone을 추가하도록 한다.
mainstone.c 파일수정(경로 : /home/test/linux-2.6.15.7/arch/arm/mach-pxa)
|
uncompress.h 파일 존재확인(경로 : /home/test/linux-2.6.15.7/include/asm-arm/arch-pxa)
mainstone-flash.c 파일수정(/home/test/linux-2.6.15.7/drivers/mtd/maps)
|
부팅을 위한 커널 설정(Linux Porting)
General setup
Loadable module support
System Type
Boot options
Userspace binary formats
Device Drivers -> Character devices -> Serial drivers
Device drivers -> Memory Technology Devices (MTD)
Device drivers -> Memory Technology Devices (MTD) -> Ram/Rom/Flash chip drivers
Device drivers -> Memory Technology Devices (MTD) -> Mapping drivers for chip access
File systems
기타설정(main.c, misc.c)
main.c 수정예시(/home/test/linux-2.6.15.7/init)
asmlinkage void __init start_kernel(void) { printk("KIM TAE HWAN - SETTING STYLE\n"); printk("start_kernel %s / %s / %d\n", __FILE__,__FUNCTION__,__LINE__); printk("start_kernel"); |
misc.c 수정예시(/home/test/linux-2.6.15.7/arch/arm/boot/compressed)
... |
make zImage
kimyeonjoo@kimyeonjoo-desktop:~$ make zImage .. .. .. Kernel: arch/arm/boot/zImage is ready |
부팅(reload kernel, boot)
파일전송을 완료하게 되면 커널 생신이 안될수 있으니 reload kernel라는 명령어를 통해 커널을 새로 불러 온뒤 부팅(boot)을 하도록 한다.