이솝 임베디드 포럼 WiKi 페이지는 이솝 임베디드 포럼 공동제작 보드를 사용하시는 회원님들이 자유롭게 업데이트 하실 수 있습니다.

editLinux Kernel 2.6.29 Android, X-Windows 지원 커널 컴파일 및 사용 방법

이솝 S5PC100 공동제작 보드용으로 릴리즈된 Linux Kernel 2.6.29는 Android 및 X-Windows를 모두 지원 합니다.

다음은 이솝 S5PC100 공동제작 보드용 임베디드 리눅스 커널의 컴파일 및 사용 방법에 대해 기술 합니다.


1. 커널 컴파일 준비 절차


커널 컴파일 및 다운로드를 위해서는 이솝 보드용 GCC 툴체인과 TFTP 서버 및 NFS 서버가 호스트 PC에 설치되어 있어야 합니다.

각 환경에 대한 설정 가이드는 다음의 페이지를 참고하시기 바랍니다.


GCC 툴체인 설치 및 설정 방법 : 이솝 보드용 GCC 툴체인 설치 방법

TFTP 서버 및 NFS 서버 설치 및 설정 방법 :


2. GPE X-Windows용 Linux Kernel 컴파일 방법


이솝 프로젝트 홈 페이지의 다운로드 페이지에서 android-2.6.29-aesop-RTM10.tar.gz를 다운로드 받아 작업 디렉터리에 압축을 풉니다.

그리고, 커널의 환경 설정을 적용하고, 컴파일을 진행하기 위해서는 다음과 같은 명령을 수행 하십시오.


$> tar xzf android-2.6.29-aesop-RTM10.tar.gz

$> cd android-2.6.29-aesop-RTM10

$> make ntc100_xwindows_defconfig

$> make zImage

 

빌드가 완료된 커널 이미지는 arch/arm/boot/zImage 파일로 빌드 됩니다.

이 파일을 /tftpboot 디렉터리에 복사하시고 사용하시면 됩니다.


3. Google Android용 Linux Kernel 컴파일 방법


이솝 프로젝트 홈 페이지의 다운로드 페이지에서 android-2.6.29-aesop-RTM10.tar.gz를 다운로드 받아 작업 디렉터리에 압축을 풉니다.

그리고, 커널의 환경 설정을 적용하고, 컴파일을 진행하기 위해서는 다음과 같은 명령을 수행 하십시오.


$> tar xzf android-2.6.29-aesop-RTM10.tar.gz

$> cd android-2.6.29-aesop-RTM10

$> make ntc100_android_defconfig

$> make zImage


빌드가 완료된 커널 이미지는 arch/arm/boot/zImage 파일로 빌드 됩니다.

이 파일을 /tftpboot 디렉터리에 복사하시고 사용하시면 됩니다.

 

4. U-Boot에서 커널 부팅 환경 설정 방법

 

4.1. U-Boot의 IP 주소 설정 방법

 

uBoot에서 호스트 PC의 TFTP를 이용한 다운로드를 하기위한 IP 주소 설정은 다음과 같이 합니다.

 

setenv gatewayip 게이트 웨이 주소;setenv ipaddr 타깃 보드 IP주소;setenv serverip 호스트 PC IP주소

saveenv => 환경 설정을 NAND Flash 저장

 

예)

setenv gatewayip 192.168.1.1;setenv ipaddr 192.168.1.100;setenv serverip 192.168.1.15

saveenv

 

 4.2. NFS로 파일 시스템을 마운트하여 사용


이더넷 네트워크를 통하여 NFS로 파일 시스템을 마운트하여 사용하는 케이스는 파일 시스템이 자주 변경되는 개발 시 매우 유리 합니다.

U-Boot의 명령 프롬포트에서 다음과 같은 형식의 명령어를 입력하시면 됩니다.


#> setenv bootargs console=ttySAC1,115200 root=/dev/nfs rw nfsroot=호스트PC의 IP주소:/nfsroot/RootFS-aESOP6410 ip=타깃 보드의 IP주소:호스트 PC의 IP주소:게이트 웨이 주소:서브넷 마스크::eth0:off mem=256M ethaddr=이더넷 컨트롤러의 MAC 주소


예)


#> setenv bootargs console=ttySAC1,115200 root=/dev/nfs rw nfsroot=192.168.1.15:/nfsroot/RootFS-S5PC100 ip=192.168.1.85:192.168.1.15:192.168.1.1:255.255.255.0::eth0:off mem=256M ethaddr=00:40:5c:26:0a:5b


부팅시 커널을 TFTP를 통하여 자동으로 다운로드 받게 만드시려면 다음과 같이 명령어를 입력하시기 바랍니다.


#> setenv bootcmd tftp 0xc0008000 zImage\;bootm 0xc0008000


다음의 명령을 입력하시면, 입력된 환경 설정으로 부팅을 수행 합니다.


#> boot


4.3. NAND Flash에 커널을 기록 후 NFS를 이용하여 부팅


NAND Flash에 커널을 기록한 후 File System만 NFS로 마운트 하여 부팅하기를 원하는 경우 다음과 같이 합니다.


#> tftp 0xc0008000 zImage;nand erase 80000 300000;nand write 0xc0008000 80000 300000

#> setenv bootcmd nand read 0xc0008000 80000 300000\;bootm 0xc0008000

#> saveenv

#> boot


4.4. NAND Flash에 파일 시스템을 기록하는 방법


우선 기록하고자 하는 Root File System을 tar 형식으로 압축을 합니다.

이솝 보드용 X-Windows File System에 설치된 TAR 유틸리티는 ZIP 압축 형식을 지원하지 않기 때문에 반드시 TAR 형식으로 압축 하셔야 합니다.


압축 방법 예)


#> cd /nfsroot/RootFS-S5PC100

RootFS-S5PC100 #> tar cf RootFS-S5PC100.tar .


이제 앞에서 설명한 것과 같이 NFS로 파일 시스템을 마운트하여 부팅 후, 임베디드 리눅스의 명령 프롬포트에서 다음과 같이 입력합니다.

이것은 NAND Flash를 포멧 후, 마운트 하고, TAR로 압축된 파일 시스템을 써넣는 작업 입니다.


#> flash_eraseall /dev/mtd2

#> mount -t yaffs /dev/mtdblock2 /mnt/nand

#> tar -C /mnt/nand -xf /RootFS-S5PC100.tar

#> sync

#> umount /mnt/nand


이제 재 부팅 후, U-Boot에서 다음의 형식으로 부트 아규먼트를 입력하시고 부팅하시면 커널이 NAND Flash에 있는 파일 시스템을 마운트 합니다.


#> setenv bootargs mem=256M root=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC1,115200

#> saveenv

#> boot


 

사용자 로그인