프로그래밍/ARM(임베디드)
[s5pc100] 커널 컴파일 하기. 그림 설명.
K_Coder
2011. 10. 25. 18:00
kernel-2.6.29-aesop-RTM10-20110309 컴파일 하기
zImage 만들기.
우선. root 권한 기준으로 설명을 하기 때문에 sudo su - 입력 후 현재 계정의 비밀번호를 입력.
명령 프롬프트에 $ 끝나던 것이 # 으로 바뀐 것을 확인 할 수 있습니다.
일반 계정에서 root 계정으로 전환 입니다. 전환하지 않으면 실행되지 않는 명령들이 있으며,
그 명령어들마다 sudo 를 붙여줘야 하기 때문에 root 권한으로 작업.
경로가 상당히 깁니다. 2~3글자 정도 입력 후 Tab 키를 눌러주면 자동으로 완성됩니다.
중복된 이름이 있는 경우 그 이름들을 모두 출력해 주며,
중복되지 않는 고유한 글씨까지 입력 후 Tab 키를 눌러주면 완성 됩니다.
윈도우와 우분투의 공유폴더를 생성해서 공유폴더에 2개의 파일이 있는 모습.
tar xvzf kernel-2.6.29-aesop-RTM10-20110309.tar.gz -C 원하는 폴더 (저는 /android/kernel)
tar xvzf kernel-2.6.29-aesop-RTM10-20110309.tar.gz -C /android/kernel
원하는 폴더는 미리 만들어 두셔야 합니다.
mkdir /android android 폴더 생성.
mkdir /android/kernel android 밑에 kernel 생성. (android 폴더가 생성 되어 있어야 함)
mkdir /android/kernel android 밑에 kernel 생성. (android 폴더가 생성 되어 있어야 함)
arm-s5pc1xx-linux-gnueabi-4.3.2.tar.gz 압축 풀기
tar xvzf arm-s5pc1xx-linux-gnueabi-4.3.2.tar.gz -C /opt
/opt 는 리눅스 설치이 임시 폴더용으로 이미 있는 폴더 입니다.
vi /etc/profile
PATH=/opt/s5pc1xx/cross/armv7a/bin:$PATH 를 추가 합니다.
source /etc/profile (변경된 내용을 적용)
arm-s5pc1xx-linux-gnueabi-gcc 입력해서 위와 동일한 화면이 나와야 합니다.
no input files 가 아닌 not command 가 나오면 설정이 잘 못 된것 입니다.
arm- 까지 쓰고 Tab 키를 눌러서 자동 완성이 되야 합니다. (gcc까지 나오지는 않습니다)
cd /android/kernel/kernel-2.6.29-aesop-RTM10/ (커널 압축 푼 폴더로 이동)
make clean
make ntc100_android_defconfig
make zImage
[ zImage에서 대문자 i 입니다.]
순차적으로 입력해 줍니다. 마지막 작업이 꽤 오래 걸리며
make zImage 에서 에러가 발생할 수 있습니다.
오류라고 나오는데,
dd: `/tftpboot/zImage-S5PC100' 열기: No such file or directory
tftp를 아직 작업하지 않아서, 해당 폴더가 없기 때문에 나오는 에러로 무시 하셔도 됩니다.
이 커널은 컴파일 시 zImage 파일을 2곳에 만듭니다.
/tftpboot/ 와 /android/kernel/kernel-2.6.29-aesop-RTM10/arch/arm/boot
/android/kernel/kernel-2.6.29-aesop-RTM10/arch/arm/boot 에 만들어진 zImage