커널 컴파일에 필요한 기본 툴체인을 만들어 두거나 다운로드 받아서 설치해 둔후 진행하기 바란다. 그 외에 필요한 file은 아래의 것을 받기 바란다.
linux-2.4.17.tar.bz2
patch-2.4.17-rmk5.gz
ramdisk_ks.gz
angelboot-1.10.nk.tar.gz
커널 컴파일
우선 커널 소스를 풀고 필요한 패치 파일을 적용해 놓는다.
%cd /devel/arm/assabet %tar xvjf linux-2.4.17.tar.bz2 %mv linux linux-2.4.17 %cd linux-2.4.17 %zcat ../patch-2.4.17-rmk5.gz | patch -p1
patch까지 적용하고 나서 Makefile을 수정한다. /devel/arm/assabet/linux-2.4.17/Makefile을 열어 'ARCH := arm'으로 수정하고 'CROSS_COMPILE =/usr/local/arm/bin/arm-linux-'으로 수정한다.
%cd /devel/arm/assabet %cd linux-2.4.17 %make assabet_config %make menuconfig
여기선 Assabet 보드에 사용할 커널을 가정했기 때문에 그냥 기본을 사용해도 되지만 각자에게 맞는 커널 설정을 한 후 컴파일하면 된다.
make menuconfig 후 기본 설정으로 동작시키려면 그냥 exit하면서 configuration만 저장하면 된다.
assabet_config 외에도 아래와 같은 다른 설정이 있다. 참조 바란다.
a5k_config
ebsa110_config
footbridge_config
rpc_config
brutus_config
victor_config
empeg_config
%make dep %make modules %make zImage %make modules_install INSTALL_MOD_PATH=/devel/arm/assabet/modules
module을 설정 했다면 make modules가 있어야한다. 그리고 호스트에 설치할 것이 아니기 때문에 일단 /devel/arm/assabet/modules에 설치하고 ramdisk에 넣어주면 된다.
arch/arm/boot/zImage가 만들어졌는지 확인.
-rw-r--r-- 1 root root 3718 2월 26 11:39 Makefile drwxr-xr-x 2 573 573 24 10월 12 01:04 bootp drwxr-xr-x 2 573 573 4096 2월 26 14:27 compressed -rw-r--r-- 1 573 573 1350 1월 21 1998 install.sh -rwxr-xr-x 1 root root 728036 2월 26 14:27 zImage
램디스크 설정
Assabet 보드에 다운로드될 램디스크 이미지는파일로 만들어져 있으므로 loopback device를 사용해 수정해야한다.
%cd /devel/arm/assabet %mkdir ramdisk %cd ramdisk %mkdir rdisk %cp ../ramdisk_ks.gz . %gunzip ramdisk_ks.gz %losetup /dev/loop0 ramdisk_ks %mount /dev/loop0 rdisk
이렇게 하면 rdisk란 디렉토리에 램디스크 이미지가 마운트되므로 만들어진 module 등을 넣거나 사용자가 만든 프로그램을 넣어서 Assabet 보드에 다운로드 후 실행해 볼 수 있다.
커널 테스트
angelboot를 컴파일해 실행 파일을 만들어 놓고 아래와 같은 내용의 파일을 만들어 둔다. minicom은 ttyS1/9600/8N1으로 맞춰 둔다. 시리얼 포트는 사용자에 따라 달리 변경하면된다.
%cd /devel/arm/assabet %tar xzf angelboot-1.10.nk.tar.gz %cd angelboot-1.10.nk %make %cd .. %cat > opts base 0xc0008000 entry 0xc0008000 r0 0x00000000 r1 0x00000019 device /dev/ttyS1 options "9600 8N1" baud 115200 otherfile ramdisk_ks.gz otherbase 0xc0800000 exec minicom %./angelboot-1.10-nk/angelboot -f opts ./linux-2.4.17/arch/arm/boot/zImage
커널은 0xc0008000에 올려지고 시작도 거기서 부터 시작된다. 램디스크는 0xc0800000에 올려진다. r0, r1의 값을 전달하는데 이 값은 커널 부팅에 사용되는 값이다.
r1은 아키텍쳐를 구분해 주는 번호인데 $(TOPDIR)/arch/arm/tools/mach-types에 정의되어 있다. Assabet 보드의 경우 25.
여기까지 실행되고 나면 Assabet 보드의 LCD에 펭귄이 보일 것이고 mincom엔 로그인 화면이 나올 것이다.
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
4.2. Assabet 보드용 커널 컴파일
커널 컴파일에 필요한 기본 툴체인을 만들어 두거나 다운로드 받아서 설치해 둔후 진행하기 바란다. 그 외에 필요한 file은 아래의 것을 받기 바란다.
linux-2.4.17.tar.bz2
patch-2.4.17-rmk5.gz
ramdisk_ks.gz
angelboot-1.10.nk.tar.gz
커널 컴파일
우선 커널 소스를 풀고 필요한 패치 파일을 적용해 놓는다.
patch까지 적용하고 나서 Makefile을 수정한다. /devel/arm/assabet/linux-2.4.17/Makefile을 열어 'ARCH := arm'으로 수정하고 'CROSS_COMPILE =/usr/local/arm/bin/arm-linux-'으로 수정한다.
여기선 Assabet 보드에 사용할 커널을 가정했기 때문에 그냥 기본을 사용해도 되지만 각자에게 맞는 커널 설정을 한 후 컴파일하면 된다.
make menuconfig 후 기본 설정으로 동작시키려면 그냥 exit하면서 configuration만 저장하면 된다.
assabet_config 외에도 아래와 같은 다른 설정이 있다. 참조 바란다.
a5k_config
ebsa110_config
footbridge_config
rpc_config
brutus_config
victor_config
empeg_config
module을 설정 했다면 make modules가 있어야한다. 그리고 호스트에 설치할 것이 아니기 때문에 일단 /devel/arm/assabet/modules에 설치하고 ramdisk에 넣어주면 된다.
arch/arm/boot/zImage가 만들어졌는지 확인.
램디스크 설정
Assabet 보드에 다운로드될 램디스크 이미지는파일로 만들어져 있으므로 loopback device를 사용해 수정해야한다.
이렇게 하면 rdisk란 디렉토리에 램디스크 이미지가 마운트되므로 만들어진 module 등을 넣거나 사용자가 만든 프로그램을 넣어서 Assabet 보드에 다운로드 후 실행해 볼 수 있다.
커널 테스트
angelboot를 컴파일해 실행 파일을 만들어 놓고 아래와 같은 내용의 파일을 만들어 둔다. minicom은 ttyS1/9600/8N1으로 맞춰 둔다. 시리얼 포트는 사용자에 따라 달리 변경하면된다.
커널은 0xc0008000에 올려지고 시작도 거기서 부터 시작된다. 램디스크는 0xc0800000에 올려진다. r0, r1의 값을 전달하는데 이 값은 커널 부팅에 사용되는 값이다.
r1은 아키텍쳐를 구분해 주는 번호인데 $(TOPDIR)/arch/arm/tools/mach-types에 정의되어 있다. Assabet 보드의 경우 25.
여기까지 실행되고 나면 Assabet 보드의 LCD에 펭귄이 보일 것이고 mincom엔 로그인 화면이 나올 것이다.
Recent Posts
Archive Posts
Tags