Liliniser
11.02.14
조회 수 18182
추천 수 37
댓글 51


ccl

1) 안드로이드(리눅스)에 대한 기초의 기초의 기초 (해킹) 지식

-- 커널?

-- 리눅스? / 터미널?

-- 안드로이드?

-- GPL? 오픈소스?

-- 루팅?

-- 펌웨어? / 롬?

-- 리커버리? / 다운로드 모드?

-- 기타 등등...?



2) 안드로이드(넓게 보면 리눅스) 커널 컴파일 방법



3) 커스텀 롬 요리 방법



4) 헥스 에디터를 이용한 여러 가지 재미있는(??) 놀이



5) 제 머리에 새로운 정보가 입력되는 대로 추가 예정



ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ



드디어 강좌를 시작합니다. 일단 개략적인 강좌 진행 방향은 위와 같으나 순서는 제 마음대로 올리도록 할 예정입니다.

이번에는 커널 컴파일부터 시작해볼 예정이므로 글 번호는 02번 입니다.



그럼 시작하겠습니다.



ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ





★ 아무 것도 모르는 상태에서 갤럭시S에 쓰이는 커널 컴파일 하기



## 준비물 ##



>> 리눅스 운영체제 (저는 우분투를 사용중입니다.)

삼성 오픈소스 센터에 올라온 커널 소스

개발에 필요한 개발 환경

initramfs


툴체인



1. 저는 여러분께 우분투를 설치하시라고 권유하고 싶습니다. 우분투가 참 좋은 녀석입니다.

다운로드는 이 곳에서 하시면 되고, 참고로 저는 10.04 버전을 사용중입니다.



################################################

우분투 다운로드

http://www.ubuntu.com/desktop/get-ubuntu/download

################################################



설치하는 방법은 따로 알려드리지는 않겠습니다. 네이버나 구글에서 "우분투 설치하기" 이런 식으로 검색해 보시면 잘 나와 있을 것입니다.





2. 우분투를 설치하셨으면 이제 개발 환경을 조성할 차례입니다.



아래그림과 같은 곳으로 가보시면 터미널이라는 것이 있습니다. 이를 실행하십니다.









여기서 아래의 내용을 복사해서 붙여 넣으세요 (터미널에서 붙여넣기 : ctrl + shift + v)



######################################################################################################
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libreadline-gplv2-dev lib64readline-gplv2-dev gcc-multilib g++-multilib libc6-dev x11proto-core-dev libx11-dev libz-dev gawk texinfo automake libtool cvs libsdl-dev

#####################################################################################################



위의 파일들은 단지 커널 컴파일을 위한 것들이라기 보다는 좀 더 넓은 의미로서 개발을 하는데 필요한 여러 요소들 입니다. 그냥 일단 설치해 보세요.



이렇게 하시면 아래와 같은 화면이 나올겁니다.







여기서 패스워드를 입력하시면 뭔가 슉슉 지나가면서 다운로드를 받고 설치를 하고 그럽니다.



제 노트북에는 이미 다 설치되어 있다고 나오는군요 :D







3. 이제 삼성 오픈소스 센터에서 국내판 갤럭시S에 맞는 커널 소스를 다운받아야 합니다.



################################################

커널 소스 다운로드

http://opensource.samsung.com/

################################################



이 곳에 들어가셔서 아래의 스크린샷처럼 따라하시면 됩니다.



삼성 오픈소스 센터에 접속합니다.







모바일 탭에서 모바일폰을 선택합니다.







우리는 지금 국내판 갤럭시s의 커널을 컴파일할 예정이므로 해당하는 모델 (SHW-M110S)을 찾아서 최신 버전의 커널을 다운받습니다. 현재 TA13 소스코드가 올라와 있군요.







법적 고지사항입니다. 여기에 동의를 하신 다음에 다운로드를 받으시면 됩니다.







이렇게 하고 나시면 드디어 커널 소스코드를 다운받으신 것입니다.







4. 이제 준비물중, 이름만 들어도 해괴한 initramfs라는 것이 필요합니다. 이는 보통 커널에서 바로 추출할 수 있는데요,
이제 첫 강좌인 만큼 더 이상의 정보는 여러분게 오히려 혼란만을 가중시킬 것 같아서 이는 일단 다음에 방법을 올려드리도록
하겠습니다. 오늘은 일단 제가 추출한 녀석만 올려 드리겠습니다.



######################################################################

TA13_initramfs 다운받기

######################################################################



위 파일은 /home/여러분의계정명/다운로드/ 에 저장되어 있을 것입니다. 이를 /home/여러분의계정명/ 으로 옮겨 주세요.

제 컴퓨터엔 /home/liliniser/TA13_initramfs.cpio 로 저장이 되어 있습니다.







5. 마지막 준비물인 툴체인이라는 것이 필요합니다. 구체적인 용어나 개념의 설명은 다음 시간에 올릴 예정입니다. 실습을 하기에
앞서 이론만 주구장창 공부하다 보면 흥미가 떨어지게 될 것이니까요. 일단 여러분 께서는 툴체인이라는 것이 있고 이를 이용해서 커널
컴파일을 한다 라는 것만 알고 계시면 되겠습니다.



#################################################################################################

툴체인 다운받기 (Codesourcery G++ Lite 2009q3-67)

http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

#################################################################################################



다운받으신 파일은 각자의 계정 -> 다운로드 폴더에 있을 것입니다. 제 컴퓨터에선



/home/liliniser/다운로드/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2



이렇게 생긴 파일이 있군요. 이 녀석의 압축을 풀어줍니다.



자 다시 터미널을 실행해 봅시다.



아래의 스크린샷처럼 그대로 따라해 주세요.



>> cd 다운로드





>> ls





>> tar xjf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2





이제 준비는 다 끝난 것 같습니다....







6. 커널 컴파일 하기.



오늘 강좌에서는 일단 순정 커널만을 컴파일해볼 생각입니다. 여태까지 그렇게 어려웠던 점은 없었을 거라 생각하네요.



일단 앞서 다운받았던 커널 파일의 압축을 풀어줍니다. (SHW-M110S_Opensource_Froyo_update4.zip 파일)







터미널을 또 켜줍니다. ㅎㅎㅎ



아까 압축을 풀었던 곳으로 이동을 해 주세요.



>> cd 다운로드/SHW-M110S_Opensource_Froyo_update4/





여기서 우리가 현재 필요한 것은 SHW-M110S_Kernel.tar.gz 뿐입니다. 이 녀석의 압축을 풀어줍니다.



>> tar xzf SHW-M110S_Kernel.tar.gz





>> ls 를 입력해 보시면 압축이 풀린 것을 확인하실 수 있습니다.





이제 Kernel 폴더로 들어가 주십니다.

>> cd Kernel





몇 가지 설정을 해주셔야 합니다.



>> make shw-m110s_defconfig



그럼 이런 화면이 뜹니다.







이제 이렇게 입력하십니다.

>> make menuconfig





그럼 이런 과정을 거쳐서





이런 창이 뜰 것입니다.





General setup으로 들어갑니다. 거기서 가운데쯤에 보시면 Initramfs source file(s)라는 항목이 있습니다. 이를 눌러줍니다.







경로에 /home/여러분의계정명/TA13_initramfs.cpio 라고 입력해 주시고 나서 엔터를 입력해 주세요. (저~ 위에서 이미 이 곳에 저장을 해 두었지요)





esc를 연타해 주시면 이런 창이 뜰 겁니다. 당연히 저장을 해야 겠지요.





다시 터미널로 돌아왔습니다. 여기서 아래와 같이 입력해 주세요.



>> make ARCH=arm CROSS_COMPILE=/home/여러분의계정명/다운로드/arm-2009q3/bin/arm-none-linux-gnueabi-





그럼 이런 과정을 거쳐서





이렇게 컴파일이 진행됩니다. 중간에 나오는 각종 경고들은 무시해 주시면 됩니다. (에러만 안나면 됩니다.)





적당히 이것 저것 다른 일좀 하시다가 다시 이 창을 보시면 이렇게 나와있을 겁니다.





드디어 다 되었군요. :) 이 완성된 커널은 zImage라는 이름의 파일로 arch/arm/boot/ 아래에 위치하게 됩니다.





이제 이 녀석을 tar ball로 묶어주면 됩니다. 일단 해당 경로로 이동합시다.

>> cd arch/arm/boot





>> tar cvf TA13_test_kernel.tar zImage







그럼 이제 친숙한 ********.tar 모양의 커널이 생겼네요. 이 녀석을 오딘으로 플래시 하시면 소위 우리가 말하는 "순정 커널"이 완성된 것입니다!! 만세!













ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ





오늘 해보았던 일은 단지 순정 커널을 컴파일해본 것에 불과합니다. 아주 간단한 것이죠. 하지만 이를 하실 줄 아시면 앞으로 무궁무진한 다른 것들을 해보실 수 있습니다. 오늘 강좌는 일단 여기까지 하겠습니다.



오타나 틀린 부분이 있다면 지적해 주시면 감사하겠습니다.



궁금한 점 있으시면 댓글로 달아주세요. 확인하는대로 바로 아는 한도 내에서 가르쳐 드리도록 하겠습니다.



감사합니다.




ps. 이 파일 제가 직접 플래시 안해봤습니다. 고로 문제가 발생할 수도 있습니다. -,.-;;; 이 모든 행위로 인해 생기는 각종 불이익은 여러분 스스로 짊어지셔야 함을 명심해 주세요... 감사합니다!!



ccl

댓글 51
1 2
댓글 쓰기 권한이 없습니다.
List of Articles
제목 글쓴이 추천 조회 날짜
롬쿠킹 [강좌] 02. 갤럭시S 프로요 리눅스 커널 컴파일하기 51 Liliniser 37 18182 2011.02.14
롬쿠킹 개발자분들을 위한 (물론 초보분들도할수 있도록 쉽게 쓴) 리눅스를 안... 67 file 프리빌리 31 10626 2011.01.05
롬쿠킹 Dokdo-Project 3.1 For Galaxy S2 (SHW-M250S/K , GT-I9100) 41 file 베가레이 31 12146 2014.02.15
롬쿠킹 [강좌] 04. Hexeditor를 이용한 리눅스 커널의 initramfs 수정하기 34 Liliniser 26 11858 2011.03.05
롬쿠킹 OC 1.3ghz 입니다. 190 file Raven 24 24544 2011.01.03
롬쿠킹 갤럭시노트2 루팅펌웨어 배포 중단 95 히어로즈 24 14994 2013.12.04
롬쿠킹 테마는 하나의 예술입니다. (이식 및 관련 게시물 작성에 대한 공지) 69 berics 24 14711 2011.10.24
롬쿠킹 인터뷰: 미친kamui & 리체 (프레스티지모드&ELS롬) 19 프리빌리 23 3575 2013.07.27
롬쿠킹 갤럭시 S의 factoryfs.rfs를 만들자! 32 file 샤인님 21 11746 2011.02.27
롬쿠킹 [SHW-M440S] SKT 갤럭시S3 3G 4.3 MK2 쿠킹롬 배포 4 히어로즈 20 9168 2013.11.17
롬쿠킹 [강좌] 03. 갤럭시S Deodexing, Signing 그리고 커스텀 롬 제작 30 Liliniser 19 9232 2011.09.04
롬쿠킹 ELS 롬 0.6.5 버전 업로드 했습니다. 5 Leche™ 18 2464 2013.08.19
롬쿠킹 Hello matpclub from XDA! 51 supercurio 17 7147 2011.05.03
롬쿠킹 임베디드 개발자 모임 게시판은 간단한 질문하는곳이 아닙니다 6 미날 17 34967 2011.01.25
롬쿠킹 SetCPU Governor 종결자 23 HTC_Kovsky 16 15667 2011.01.16
롬쿠킹 갤럭시 노트1 cm11 최종 빌드 배포했습니다. 1 bestmjh47 16 7823 2015.01.25
롬쿠킹 알려드립니다~ 18 Leche™ 14 2009 2013.08.08
롬쿠킹 갤럭시S3 유플(SHV-E210L)용 MIUI 제작중입니다!! 10 ohk990102 13 7315 2013.12.06
롬쿠킹 SHW-M250L 용 Clockworkmod 입니다. 7 file Pinkkit 13 9851 2012.01.08
롬쿠킹 작업해 왔던 것들 전부 오픈소스 합니다. (옥타 갤포 사용자분들, 주목!) 9 bestmjh47 13 5059 2014.11.27
롬쿠킹 [SHW-M440S]SKT갤럭시S3 3G MH1 LightPack을 배포했습니다. 13 히어로즈 12 6066 2013.08.20
롬쿠킹 갤럭시노트4 SKT S6 Theme V1.5 곧 배포 예정입니다. 9 file EPhe 12 5067 2015.05.28
롬쿠킹 갤럭시S2 커스텀커널 카운트 초기화 JIG케이블 제작법 50 LIGnex1 12 51847 2011.05.09
롬쿠킹 [SHV-E250S] SKT갤럭시 노트2 MF6 ValuePack 배포 14 file 히어로즈 12 4163 2013.07.15
롬쿠킹 SKT갤럭시노트2 MI2 LightPack 배포 7 히어로즈 12 3944 2013.09.28
1 - 17