2011/02/01
어제 저녁, 컴파일러(혹은 어셈블러?)가 -march=armv7-a 옵션을 인식할 수 없다는 에러를 뱉어 냈다.
퇴근하면서 toolchain 버전을 의심 했었는데, 방금 (심지어 업무 시작시간 전!) 확인 해 보니, 예상이 적중!
toolchain arm-eabi v.4.2.1을 사용하고 있었는데, arm-eabi 4.4.0으로 변경하니 해당 부분을 문제 없이 pass! 어제 집에서 희망의 끈이 점점 가늘어져 간다고 생각하고 있었는데, 다시 굵어(?)지게 된건가?-0-
2011/01/31
문제점 #1 해결) warning: choice value used outside its choice group
: 인터넷을 찾아보면 무시하고 넘어가라고 하지만, 찜찜한 마음에 Kconfig 파일을 확인 해 본 결과,
MSM framebuffer 관련 설정들이 froyo에서는 drivers/video/에 있었으나, gingerbread에서는 drivers/staging/에 추가.
물론 dependency에서 상호 exclusive하게 추가되도록 조건이 되어 있는 것 같지만, 어디에 추가되어도 별 문제는 없어보여서, drivers/staging에서 제거.(이렇게 해도 될런지는 확실하지 않음-_-;)
문제점 #2 해결) 문제점 #1과 연관성이 있는지는 잘 모르겠지만, 환경변수에 arm-eabi-* path를 추가하니 해결 됨.
드디어 빌드가 시작되고, 컴파일 경고/에러들을 보여주는것이 이렇게 반가울 수가 없다ㅜ.ㅜ
이제 인고의 시간이 시작되었다!-0-
include/config/auto.conf: line 525: KERNEL_LOCAL_VERSION: command not found
: 이 경고는 아무리 찾아봐도 관련된 자료를 찾아볼 수 없었다...
: 이 경고는 아무리 찾아봐도 관련된 자료를 찾아볼 수 없었다...
(아마도 uname의 출력으로 버전이 안나오는정도가 아닐까? 라고 스스로 위안을 삼으며 또다시 pass-0-)
warning: "COHERENT_IS_NORMAL" is not defined
: 이 경고는, 아마도 기존 소스에서 kernel patch를 하면서 추가되었던 부분 같은데, kernel update가 되면서 전면적으로 정리된 부분인듯. 기존 memory manager 관련 code를 함부로 수정할 수 없어 define을 적절한(?)위치에 추가.
이제 퇴근시간. 퇴근시간이 되어서야 첫번째 compile error를 확인할 수 있게 되었음ㅜ.ㅜ
error: implicit declaration of function 'dma_cache_maint'
: 이 한 줄이 그렇게 큰 문제를 드러낼 줄이야...-_-; 위 문제점#1에서 해결했던 방법이 적절하지 않은 것 같다.
MSM framebuffer 관련 코드들이 대대적(?)으로 수정된 것 같다. drivers/video/에 있던 코드들을 drivers/staging으로 머지하고, Kconfig에서도 설정을 변경 해 주어야 할듯. 이거 점점 가능성이 희박해 지는 분위기-_-; 다시 머지 합시다!-0-
2011/01/28
빌드를 시작 했으나, menuconfig 부터 벽에 부딪힘.
Android Kernel 빌드 명령어:
1) # make mrproper
2) # make distclean
3) # make *_defconfig ARCH=arm
4) # make ARCH=arm CROSS_COMPILE=arm-eabi-
문제점 #1) 단계 3)에서 계속 수동으로 menuconfig를 진행하는 부분이 나오고, 경고를 보여준다.
warning: choice value used outside its choice group
문제점 #2) 단계 4)에서 CROSS_COMPILE의 실제 경로를 명시 했으나, arm-eabi-* 를 찾을 수 없다는 에러를 보여준다.
만삭의 아내가 집에서 기다리고 있어, 월요일에 확인하기로 결정!-0-
2011/01/27
kernel source merge 완료.
Linux와 Windows 둘 사이의 file system 차이의 큰 특징인 case sensitivity를 간과한 사실을 발견.
Samba를 이용해 Windows에서 BC2(beyond compare 2)를 이용해 비교 및 merge를 했는데, 머지작업 막바지에 이르러 문제가 있을 수 있다는 것을 알게 되었지만 pass.
이상하게 동일한 이름을 갖는 두 개의 파일이 각각 대/소문자로 존재하고, 내용은 다른 경우가 있음.
(kernel/net/netfilter의 몇몇 파일들-0-)
2011/01/24
성공보다는 실패할 확률이 높은 작업을 시작.
진작에 시작 했어야 하는데, 세미나 준비 때문에 약간 딜레이 됨.
일단 커널버전 업데이트를 위해, kernel source merge 부터 시작하기로 결정.
(잘 알지 못해서 좀 무식한 방식으로 진행할 예정 ㅜ.ㅜ)
'리눅스 & 안드로이드' 카테고리의 다른 글
Android Self Q&A (업데이트 중...) (0) | 2011.02.07 |
---|---|
Redirect stderr to stdout (0) | 2011.01.31 |
How to make Android binary images (1) | 2011.01.19 |
Makefile example for JNI (0) | 2011.01.17 |
VIM(Vi IMproved) settings (0) | 2011.01.17 |