티스토리 툴바

달력

052012  이전 다음

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  

AOSP 소스를 처음 빌드할때는 딱히 큰 상관이 없으나,

rebuild 시에 좀더 빠르게 빌드하기 위한 설정이 필요하다.

AOSP 는 기본으로 ccache 를 지원한다.

사용 방법까지 아래와 같이 친절히 알려주니 감사할 따름이다 :)


http://source.android.com/source/building.html


Using ccache

ccache is a compiler cache for C and C++ that can help make builds faster. In the root of the source tree, do the following:

$ export USE_CCACHE=1
$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
$ prebuilt/linux-x86/ccache/ccache -M 20G

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilt/linux-x86/ccache/ccache -s

On OSX, you should replace linux-x86 with darwin-x86.


root@chlrbgh0:/workspace/aosp#  watch -n1 -d prebuilt/linux-x86/ccache/ccache -s


Every 1.0s: prebuilt/linux-x86/ccache/ccache -s                    Fri Mar 30 12:09:25 2012


cache directory                     ./ccache_dir/.ccache/

cache hit                            151

cache miss                          6021

not a C/C++ file                     216

unsupported compiler option           76

files in cache                     12042

cache size                         385.0 Mbytes

max cache size                      20.0 Gbytes


완전 조으다! :)

저작자 표시 비영리 동일 조건 변경 허락
Posted by chlrbgh0


작년 이 무렵에는 중국 폰하나에 진저브레드를 포팅하고있었다.

올해가 되니 같은 폰에 아이스크림샌드위치를 포팅하고있다.

현재 내가 할 부분은 다 끝난 것 같다. 
부팅+디스플레이+터치+키 등의 잡다한 기본 동작은 잘 돌아가니
이제 업체에 피드백주고 정리하면 될 것 같으다.

나머지 부분은 알아서들 하겠지...:)

===

아무튼 엊그제 포스팅에 언급한대로
Motorola Atrix 를 샀는데,
우습게도 kernel 2.6.32.9 + Android 2.3.5 버전이 포팅되어있다.

usb debug 모드를 설정하고 adb shell 로 확인하니,
user/user-debug 모드로 빌드되어 있는 것 같다.

root@chlrbgh0# adb devices
List of devices attached
TA74407BA5      device

root@chlrbgh0# adb -s TA74407BA5 shell
$

아래처럼 퍼미션이 없는 것으로 보아 user 이거나 user-debug 모드인듯 하다.
디버그 포트가 열려있으니.. user-debug 모드인 것 같고...

$ cat init.rc
init.rc: Permission denied
$ ls -l init.rc
-rwxr-x--- root     root                36256 1970-01-01 09:00 init.rc
owner/group/others

주말이나 평일에 짬짬이 시간을 내어서 요녀석에 아이스크림샌드위치를 포팅해야겠다.

다른 것 보다 한 가지 걱정스러운 부분이라면,
ICS는 기본 system 사이즈가 Gingerbread 와 비교하여 더 커진다는 것인데
그건 각 파티션 사이즈가 달라지는 일이니 파티션 맵을 수정해야 한다.

다행하게도(?) 플래쉬 메모리가 아니라
eMMC 와 유사한 SD/MMC 장치를 스토리지로 쓰고있는듯 한데...

$ ls -l /dev/block
brw------- root     root     179,  14 2012-03-05 17:24 mmcblk0p14
brw------- root     root     179,  13 2012-03-05 17:24 mmcblk0p13
brw------- root     root     179,  12 2012-03-05 17:24 mmcblk0p12
brw------- root     root     179,  11 2012-03-05 17:24 mmcblk0p11
brw------- root     root     179,  10 2012-03-05 17:24 mmcblk0p10
brw------- root     root     179,   9 2012-03-05 17:24 mmcblk0p9
brw------- root     root     179,   8 2012-03-05 17:24 mmcblk0p8
brw-rw---- root     mot_tcmd 179,   7 2012-03-05 17:24 mmcblk0p7
brw-rw---- root     mot_tcmd 179,   6 2012-03-05 17:24 mmcblk0p6
brw------- root     root     179,   5 2012-03-05 17:24 mmcblk0p5
brw------- root     root     179,   4 2012-03-05 17:24 mmcblk0p4
brw------- root     root     179,   3 2012-03-05 17:24 mmcblk0p3
brw------- root     root     179,   2 2012-03-05 17:24 mmcblk0p2
brw-rw---- root     mot_tcmd 179,   1 2012-03-05 17:24 mmcblk0p1
drwxr-xr-x root     root                        2012-03-05 17:24 platform
brw------- root     root     179,   0 2012-03-05 17:24 mmcblk0

잠시 루팅 관련 정보를 보니 fastboot 으로 flashing 하게 되어있는 것 같다.

fastboot 으로 스토리지에 이미지를 퓨징할때에는 파티션 맵이 중요하다.. 
실제로는 각 파티션 사이즈가 중요하니... 부트로더의 수정도 필요할 수 있다...
문제라면 부트로더는 잘 못 갈면 그냥 시스템이 불통되버리는 문제가 있다는 것이고...

우선은 루팅 가이드 찾아서 진행해보면서 간 좀 봐야겠다. :(
저작자 표시 비영리 동일 조건 변경 허락
Posted by chlrbgh0


그러하다.

아트릭스의 ICS 업데이트는 참으로 난감해보인다.

불과 몇일전까지 윈도우 모바일 유저였었으나,
모토운수의 아트릭스 버스에 탑승하게 되었다.

지난 주말 폰을 받아서 버전을 확인해보니

Android : Froyo 2.2.2
Kenrel : 2.6.32.9

예전에 나온 폰이니 그러려니하고 업데이트를실행시켰다.

오랜시간의 업데이트가 끝난 후 버전을 다시 확인해보니

Android : Gingerbread 2.3.5
Kernel : 2.6.32.9

???
 
어째서? 커널 버전은 그대로 사용하는데, 안드로이드 버전만 업데이트 되었을까...

이유는 단순하다. 

작업하기 더 쉽다는 것!?

커널까지 새로 올린다면,
시리얼 출력 부터 각종 칩용 드라이버 들까지 모두 업데이트 해야하지만,
안드로이드 프레임워크만 업그레이드하면 되니 단순하게 말하면 작업이 거의 반으로 줄어든다고 볼 수 있겠다.

사실 2.6.32.9 와 2.6.35.7(진저브레드 기준 커널 버전) 에서의 업데이트는 큰 문제가 될 부분은 없다. 
근래 대다수의 칩벤더들은 자사 칩들을 위한 BSP 를 2.6.35.7 (진저브레드 기준 커널 버전)  이상으로
소프트웨어를 릴리즈 하고 있으므로 문제가 있다면 그 자체가 유머일 것이다.

내부적인 사정이야 모르겠지만,
OS는 업그레이드 하지 않고 UI/UX 에 해당하는 프레임워크만 업그레이드 한다는 것은 구매자 입장에서 탐탁치가 않다...Windows XP 시스템 위에 UI/UX 만 Windows 7 으로 바꿔 주는 것과 뭐가 다른가?

안드로이드 ICS 관련 버전 정보는 이러하다.

Android : ICS 4.0.3 
Kernel : 2.6.35.7 or 3.0.8 or later 

그러한데 지금 아트릭스 진저브레드 버전은 2.6.32.9 인 프로요 버전을 사용한다.

안드로이드에서 프로요 버전의 커널이 사용된 시점은 내 기억으론 2010년 5-6월이다.
지금 글을 쓰는 시간은 2012년하고도 3월이 되시겠다.

근 2년 여전의 커널을 거의 그대로 사용하고 있는데... ... 
2.6.X 버전대의 커널과 3.x 대에서 엄청난 변화가 오진 않았다.

2.6.32.9 버전의 OS 를 3.0.x 버전으로 업그레이드 한다는게 과연 쉬울까...

안드로이드 피처 에서는 활동이 자유로운 개인 개발자분들도 현재 애먹는 것으로 알고 있다.

폰 제조사 입장에서는 더할 것이다.

각종 부품칩들과 그 칩들을 구동하는 소프트웨어가 함께 업데이트 되어야 할 것이니...
이건 시간이 소모 될 수 밖에 없다.

후순위로 밀려 업데이트 되는 아트릭스...
후순위로 미는게 아니라 커널부터 업그레이드해야 하지 않을까 싶다.

현재의 아트릭스 스타일 처럼 커널 버전은 낮게 가도 상위 버전의 안드로이드는 ICS 또한 구동이 가능하니 말이다.

여하튼 그러하다. 
저작자 표시 비영리 동일 조건 변경 허락