위키에 올렸습니다.
컴파일 관해서는 여기에다 올리겠습니다.
1. ARM GNU Toolchain
http://www.codesourcery.com/gnu_toolchains/arm.html
2. kernel 2.6.21
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
3. patch
http://www.arm.com/products/os/linux_download.html
4. 컴파일 준비
tar jxvf linux-2.6.21.tar.bz2
gzip -d patch-2.6.21-arm1.gz
gzip -d patch-2.6.21-arm1-t2_1.gz
cd linux-2.6.21
cat ../patch-2.6.21-arm1 | patch -p1
cat ../patch-2.6.21-arm1-t2_1 | patch -p1
5. s3c2410 으로 컴파일 할 경우 ( 저희도 언넝 결정해야 할텐데요.. )
cp arch/arm/configs/s3c2410_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
6. u-boot 용 이미지로 만들기 위해서는 Makefile 내에 다음과 같이 추가
uImage: vmlinux
$(OBJCOPY) -S -O binary vmlinux vmlinux.bin
gzip -vf9 vmlinux.bin
mkimage -A arm -O linux -T kernel -C gzip -a 0x30008000
-e 0x30008000 -n 'ARM Linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)'
-d ./vmlinux.bin.gz $@
컴파일 관해서는 여기에다 올리겠습니다.
1. ARM GNU Toolchain
http://www.codesourcery.com/gnu_toolchains/arm.html
2. kernel 2.6.21
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
3. patch
http://www.arm.com/products/os/linux_download.html
4. 컴파일 준비
tar jxvf linux-2.6.21.tar.bz2
gzip -d patch-2.6.21-arm1.gz
gzip -d patch-2.6.21-arm1-t2_1.gz
cd linux-2.6.21
cat ../patch-2.6.21-arm1 | patch -p1
cat ../patch-2.6.21-arm1-t2_1 | patch -p1
5. s3c2410 으로 컴파일 할 경우 ( 저희도 언넝 결정해야 할텐데요.. )
cp arch/arm/configs/s3c2410_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
6. u-boot 용 이미지로 만들기 위해서는 Makefile 내에 다음과 같이 추가
uImage: vmlinux
$(OBJCOPY) -S -O binary vmlinux vmlinux.bin
gzip -vf9 vmlinux.bin
mkimage -A arm -O linux -T kernel -C gzip -a 0x30008000
-e 0x30008000 -n 'ARM Linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)'
-d ./vmlinux.bin.gz $@
댓글 4
-
박은병
2007.12.03 00:20
-
김우종
2007.12.06 16:55
-
박은병
2007.12.07 23:46
바이너리 파일로 받아서요..압축풀고용 압축푼 폴더를 패스 잡아주고($PATH)
위의 글처럼 하면 될텐데용^^~~ -
조용락
2007.12.15 10:44
음...버전이 차이가 나서 그런가..ㅡㅡ; bin디렉토리 패스 걸어줬는데 명령어 없다고 나오면서 컴파일이 안되길래 일일이 소프트 링크로 이름 바꿔서 만들었.....는데요..그러니까
arm-none-eabi-gcc 이거를 arm-none-linux-gnueabi-gcc 요런식으로
ld 도 바꾸고 ar 도 바꾸고~
제가 제대로 한 거 맞나요?-ㅁ-;;
.
음..none eabi라는 것이 eabi를 지원하지 않는 툴체인이라는 얘기 인가요?
커널안의 소스에서도 CONFIG_EABI와 같은 것을 본적이 있는데..음..