리눅스 커널 구하기 

제는 커널 2.6 이후부터 커널 개발자들에게 정말 감사해 합니다.
리눅스 커널 소스에 임베디드를 위한 커널 패치가 모두 포함되었기 때문이죠

그분 들에게 축복이 있으라~~

옛날에는 arm 패치니 하는 것들이 있었는데 지금은 그냥 그 단계가 싹 사라진 거죠.

자..

일단 최소한 오늘은 리눅스 커널 소스는 다운 받아야 합니다.

벌써 진입부에서 지쳐 버리면 안 되거든요…

우선 리눅스 커널를 구할 수 있는 곳은 어디 일까요?

A005_001_kernel_org_homepage_580.png


그림에 보듯이

    www.kernel.org

로 가면 됩니다.

 

벌써 이글을 쓰는 시점에 2.6.30으로 마구 마구 달리고 있네요

하여간 부지런한 분들입니다.

제가 디바이스 드라이버 개정판 못 내는 이유가 저 이유입니다.  ㅠㅠ

어쨌든 우리는 2.6.28 을 받아야 합니다.

홈페이지에 보면

     http://www.kernel.org/pub/
     ftp://ftp.kernel.org/pub/

에서 받을 수도 있고 미러 사이트들이 있다는 것도 알 수 있습니다.
아무래도 한국에 있는 미러 사이트가 좀 빠릅니다.

하지만 전 다운로드 하면서 커피한잔과 인터넷 서핑이라는 여유를 즐기기 위해서
아래 링크에서 받기로 했습니다.

      http://www.kernel.org/pub/linux/kernel/v2.6/ linux-2.6.28.10.tar.gz

후후..

2.6.28에 10이 더 붙은 놈이군요..

뭐 2.6.29 버전을 하고 싶다는 욕망이 있지만 일단 참아 보렵니다.

원래 목표대로 가야 하지 않겠습니까?

후후

이걸 윈도우에서 클릭해서 다운로드를 받을 수 있겠지만 coLinux에서 명령행으로 받아 보기로 했습니다.

아..

참…

리눅스에서 작업 디렉토리는

    /project/linux_2628/trunk

로 하기로 했습니다.

이걸 일단 포팅을 공개적으로 하기 위해서 svn 공개 리포지토리를 하나 만들겠습니다.

외부에서 다운 로드만 가능하게 하도록 하겠습니다.
저는 당근 커밋 권한이 있겠죠?
여러분들은 브라우징 권한만 있고요…

         svn://svn.falinux.com/linux_2628/trunk/ 로 하죠..
         /project/linux_2628/trunk


자신의 컴퓨터에 체크 아웃을 하시려면 다음과 같이 합니다.

           [root@localhost linux_2628]# svn co svn://svn.falinux.com/linux_2628/trunk/
           체크아웃된 리비전 1.


자…

이제 이 디렉토리에 커널 소스를 가져 옵시다.

웹 파일 가져 오는 리눅스 명령 중에 wget 이라고 하는 명령이 있습니다.

이걸 한번 사용해 보겠습니다.

[root@localhost linux_2628]# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.10.tar.gz
--2009-05-05 03:38:06--  http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.10.tar.gz
Resolving www.kernel.org... 204.152.191.37, 130.239.17.4, 149.20.20.133, ...
Connecting to www.kernel.org|204.152.191.37|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 66796955 (64M) [application/x-gzip]
Saving to: `linux-2.6.28.10.tar.gz'

100%[=================================================================>] 66,796,955  2.82M/s   in 25s    

2009-05-05 03:38:32 (2.58 MB/s) - `linux-2.6.28.10.tar.gz' saved [66796955/66796955]

[root@localhost linux_2628]#



받은 파일의 압축을 풉니다.


[root@localhost linux_2628]# ls
linux-2.6.28.10.tar.gz  trunk
[root@localhost linux_2628]# mv linux-2.6.28.10.tar.gz trunk/
[root@localhost linux_2628]# cd trunk/
[root@localhost trunk]# tar zxvf linux-2.6.28.10.tar.gz

생성된 linux-2.6.28.10 디렉토리에 linux 라고 하는 이름으로 링크를 겁니다.

이렇게  하는 이유는 현재 작업중인 리눅스 커널을 명기 하기 위한 것도 있고
나중에 패치를 만들 때  디렉토리 명을 통일하기 위한 것도 있습니다.

[root@localhost trunk]# ln -s linux-2.6.28.10 linux

일단 전 여기까지 작업을 하고 서브버전 커밋 했습니다.

아..

깜빡 잊었는데요..

전 주로 작업할 때 root 권한으로 합니다.

저의 이 무식한 행위를 이해해 주세요..