강좌 & 팁
리눅스 커널 구하기
제는 커널 2.6 이후부터 커널 개발자들에게 정말 감사해 합니다.
리눅스 커널 소스에 임베디드를 위한 커널 패치가 모두 포함되었기 때문이죠
그분 들에게 축복이 있으라~~
옛날에는 arm 패치니 하는 것들이 있었는데 지금은 그냥 그 단계가 싹 사라진 거죠.
자..
일단 최소한 오늘은 리눅스 커널 소스는 다운 받아야 합니다.
벌써 진입부에서 지쳐 버리면 안 되거든요…
우선 리눅스 커널를 구할 수 있는 곳은 어디 일까요?
그림에 보듯이
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 이라고 하는 명령이 있습니다.
이걸 한번 사용해 보겠습니다.
--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]#
받은 파일의 압축을 풉니다.
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 권한으로 합니다.
저의 이 무식한 행위를 이해해 주세요..
오픈 또는 공유라는 것이 너무나 어렵다는 것을 이해하시면 좋겠습니다.
현업에 계시면서 많은 것을 느끼시겠지만...
그분들이 오픈하지 않는 것도 있겠지만, 오픈할 만큼 정리하고 공유할 여유가 정말 주어지는 ..
그런 환경에서 근무할 수 있는 날이 왔으면 합니다.
외국 컨퍼런스 같은 경우 그날 강의내용과 동영상이 거의 실시간에 가깝게 정리되어서, 웹상에 올라오는 것을 본적이 있습니다.
그네들이라고 아무런 댓가없이 그런것을 할까요? 제생각에는 당연히 이해관계가 맞아떨어지는 무언가가 있기 때문에 그러리라고 생각합니다.
얼마전 openmoko 관계자와 회의를 할 기회가 있었습니다.
참 재미있는 business model 입니다.^^
커널 2.6.28 로의 upgrade에 많은 분들이 참여하시기를 기원합니다.
부탁드릴게 있어 적습니다.
개발환경 관련해서 올리신 파일을 받았습니다. img 파일만 있더군요.
colinux가 그새 업뎃되서 웹사이트에 보면 9버젼으로 파일들이 되어 있지 않습니다.
아마 10으로 해도 될듯하긴한데.
가능하면 img 파일만이 아니라 같은 디렉에 있는 나머지 파일들도 같이 올려주실 수 없나 싶어 글 남깁니다.
아무 생각 없이 받아서 다시 확인해보니 웹에 9버전도 올라와 있군요.
수정합니다.
강좌가 아니라 하셨지만... 좋은 강좌 감사합니다.
그리고 Device Driver 애타게 기다리고 있습니다.
임베디드 쪽도 좀 보강됬으면 합니다.
'나는 프로그래머다'도 봤는데 현재 나를 한번 생각해 보는 기회가 됬습니다.
그런데 동의 하기 힘든 부분도 있습니다.
앞서간 사람들을 따라가는데...
뒷사람들이 알 수 있도록 오픈하는 사람들 많지 않습니다.
셋탑쪽에 있는데 여기만 그런지 쯥...
페어 프로그래밍은 고사하고 설계 아웃라인에 대한 문서조차 없습니다.
난 내가 짠 코드 리뷰하고 지적받고 싶은데 그럴 기회 없습니다.
다른사람의 기술을 폄하하는건 아니지만 뭐가 그렇게 대단해서 잡고 안푸는지 짜증날 때가 많습니다.
3년 삽질을 1년에 따라가는거... 솔직히 쉽지 않다고 생각합니다...
셋탑쪽은 중급회사들도 별로 다르지 않더군요...ㅠ.ㅠ