linux-2.4.18.tar.gz 리눅스 커널 패치 http://www.kernel.org/pub/linux/kernel/v2.4/

linux-2.4.18.rmk6 리눅스 암 페치      http://www.arm.linux.org.uk/developer/v2.4/

linux-2.4.18.rmk6-swl6 리눅스 s3c2410 패치 patch-2.4.18-rmk6-swl6.gz

toolchain ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/


를 이용하여 시작!!!


시작에 앞서서... 유용한 터미널 명령어!!


$ pwd : 현재 경로를 보여줍니다.
$ ls -hl | sort -s : 현재 폴더의 파일(폴더)목록을 크기순으로 보여줌
% nano file.txt(또는 pic04.pdf o) : 파일 보고, 편집하는 편집기, emacs 나 vi 처럼 핫키를 외울 필요가 없어서 초보자에게 좋습니다.
% rm -rf *.bmp : 파일 제거, 디렉토리는 내부 파일까지 제거해 줍니다.
% tar -xvzf : 파일 묶어서 압축, 결과물은 .gz , cvzf : 압축 해제
% df -h: 현재 시스템의 파티션별 하드디스크 용량을 % 및 Byte 로 표시해 줍니다
-h옵션은 크기를 KB, MB, GB 으로 자동 전환해 보여줍니다.
% find / -name "*.jpg" -print : 키워드로 파일찾기, 전체를 뒤지면 시간이 꽤 걸립니다.


  • 다음은 작업 관련 명령어 입니다.
    % top -o cpu : 시피유 자원을 가장 많이 점유하고 있는 프로세스 순으로 작업 리스트를 보여줍니다. 빠져 나올땐 q
    % ps -aux : 사용자 어플리케이션(프로세스) 목록을 보여줍니다. 작업을 죽이려면 kill %pid 하면 됩니다.
    % open iTune.app aaa.mp3 : 터미날에서 GUI 어플을 이런식으로 기동 시킵니다.

  • 시스템 명령어 관련
    % help : 기본 명령어 목록을 보여줍니다. 명령어가 기억이 안날땐 요긴
    % man touch : touch 명령에 대한 도움말을 보여줍니다. info touch 해도 됩니다.
    % system_profiler : 시스템의 HW, SW 사양을 자세히 보여줍니다.

크로스 컴파일 환경 구축 ( toolchain -> SW를 개발하기 위한 환경 구축 )

-> binutils-arm-2.9.5.0, 등등이 필요하지만 미리 묵여진 크로스컴파일 을 사용한다. 위의 링크 를 사용

-> 소스가 하나로 통합된 크로스 컴파일 파일을 설치한다. 설정하는법 README.doc  일일이 설정하는법 크로스컴파일_환경구축.doc

cd /usr/local

mkdir arm

cd arm

tar lxvf cross-<version>.tar.bz2


/usr/src/에서를 통해 설치

tar -zxvf linux-2.4.18.tar.gz

gzip -dc patch-2.4.18-rmk6 | (cd linux ; patch -p1 )             ->           gzip -dc patch-2.4.18-rmk6 | (cd linux ; patch -p1)

gzip -dc patch-2.4.18-rmk6-swl | (cd linux ; patch -p1)       ->            gzip -dc patch-2.4.18-rmk6-swl.gz | (cd linux ; patch -p1)


설치 완료 후

cd linux

make menuconfi -> exit -> yes

make dep

make clean

make zImage


그런데 이때 !!! 다음과 같은 오류코드 발생


In file included from /project/kernel/linux/include/linux/sched.h:23,
                 from /project/kernel/linux/include/linux/mm.h:4,
                 from /project/kernel/linux/include/linux/slab.h:14,
                 from /project/kernel/linux/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/project/kernel/linux/include/linux/smp.h:29: error: conflicting types for 'smp_ send_reschedule'
/project/kernel/linux/include/asm/smp.h:65: error: previous declaration of 'smp_ send_reschedule' was here
/project/kernel/linux/include/linux/smp.h:29: error: conflicting types for 'smp_ send_reschedule'
/project/kernel/linux/include/asm/smp.h:65: error: previous declaration of 'smp_ send_reschedule' was here
In file included from /project/kernel/linux/include/linux/unistd.h:9,
                 from init/main.c:17:
/project/kernel/linux/include/asm/unistd.h:360: warning: conflicting types for b uilt-in function '_exit'
make: *** [init/main.o] 오류 1

여기서 SMP가 뭔가 확인해 봤더니 -> Symmetric multiprocessing :  대칭형 다중처리


SMP는 운영체계와 메모리를 공유하는 여러 프로세서가 프로그램을 수행하는 것을 말한다. SMP에서는 프로세서가 메모리와 입출력 버스 및 데이터 path를 공유하며, 또한 하나의 운영체계가 모든 프로세서를 관리한다. 보통 2개부터 32개의 프로세서로 이루어지며, 어떤 시스템은 64개까지 프로세서를 공유한다.

SMP시스템은 보통 MPP시스템에 비하여 병렬 프로그래밍이 훨씬 쉽고, 프로세서간 작업 분산(workload balance)시키는 것은 훨씬 용이하지만, 확장성은 MPP에 비하여 취약하다. 또한 많은 사용자가 동시에 데이터베이스에 접근하여 일을 처리하는 OLTP 작업에서도 강점을 보인다


였다. 그래서 make menuconfig 에서 3번째 processor에서 Symmetric multiprocessing 선택 제거 했으나 그 에러 코드는 사라졌는데. 다른 에러 발생


다시 처음으로 돌아가서 다시 해본 결과 -> 위에서 arm용 패치를 잘 못 해주어서 발생했던 것임, 다시 패치후 다시 make dep~ 부터 실행


다시 에러코드 발생 -_-;;

make[2] : arm-linux-gcc 명령을 찾지 못했음


설치된 Tool 아무 폴더에서나 접근 가능하도록 Path 설정

export  PATH=/usr/local/arm/<version>/bin


error 코드

bash : make : command not found


다시시도

vi /root/.bash_profile

 내용...

#. bash_profile

#  Get the aliases and funcions

if [ -f ~/.bashrc ]; tehn

     . ~/.bashrc

 fi


 alias ls="ls -F --show-control-chars --color=auto"

LESSCHARSET=latin1


# user specific enviroment and startup programs


PATH=$PATH:/usr/local/arm/2.95.3/bin:$PATH

BASH_ENV=$HOME/.bashrc

USERNAME="root"


 export USERNAME BASH_ENV PATH


source /root/.bash_profile


한 후 make zImage !!!! 성공!!!


 선응형도 이미지 다 만드셨고... 저도 이어서 이미지까지는 만들었네요... 이제... 올려봐야지 ㅋㅋ

이 글은 스프링노트에서 작성되었습니다.

|

변화가필요해...'s Blog is powered by Daum & tistory