kitkat 소스에 mvv210 추가하기 - 2부~~~~~



make 해 보면...에러~~

============================================
including ./abi/cpp/Android.mk ...
including ./art/Android.mk ...
including ./bionic/Android.mk ...
bionic/libc/Android.mk:458: TARGET_CPU_VARIANT is not defined
bionic/libc/arch-arm/arm.mk:41: *** "TARGET_CPU_VARIANT not set or set to an unknown value. Possible values are cortex-a7, cortex-a8, cortex-a9, cortex-a15, krait. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.".  멈춤.



이렇게 하나씩 해결해나가다가는 거지꼴을 못 면한다~~~

TARGET_CPU_VARIANT 가 설정되지 않았다고 하네.

s5pv210 이 cortex-a8 이라고 하니, cortex-a8 로 설정

BoardConfig.mk

TARGET_CPU_VARIANT := cortex-a8


여기까지하면 make 가 꽤 진행되기는 하는구나..하지만...

make: *** `out/target/product/smdkv210/boot.img'에서 필요로 하는  타겟 `out/target/product/smdkv210/kernel'를 만들 규칙이 없습니다.  멈춤.
make: *** 끝나지 않은 작업을 기다리고 있습니다....
Notice file: system/core/libmincrypt/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//lib/libmincrypt.a.txt
Generated: (out/target/product/smdkv210/android-info.txt)


영어로 나와야 구글링하기가 좋은데, 한글이네..쩝...

boot.img 는 아마도 부트로더와 관련되있을텐데, 난 u-boot 이미지를 따로 만드니까..필요없는 작업이다. 
kernel 을 만들 규칙이 없다니...난 커널도 따로 빌드해서 붙일 거니까 역시 불필요...

수행하지 않도록 설정을 해 줘야겠네..

BoardConfig.mk

TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true

현재 kitkat 빌드에서는 mvv210 보드의 주변장치에 관한 것들은 하나도 설정하고 있지않다. 단지 CPU만 맞춰준거 같다.


make -j4 했더니....


어라? 이제 빌드가 끝까지 실행이 되었다.


K/out/target/product/smdkv210 디렉토리에 ramdisk.img, system.img, userdata.img 등 만들어졌다. 헐~~~~~


mv 제공 이미지와 다른 점 발견!!





ramdisk.img 는 gzip compressed data 라 mkimage 로 변경해서 사용하면되니까 문제가 아닌데,

system.img, userdata.img 가 dBase IV DBT..어쩌구 저쩌구다...



이미지 파일들은 ext4 파일시스템을 이용하는데, 지금처럼 별다른 설정이 없으면 ext4 가 아닌 저런 파일 시스템으로 생성이 되는갑다.

이것도 어디 설정하는 부분이 있겠지...( 찾아보니, TARGET_USERIMAGES_USE_EXT4 :=true 로 설정을 해 준다.)



혹시나 이 파일시스템을 ext4로 변환하는 방법을 검색해보니, 역시 구글~! 


#!/bin/bash


dd if=/dev/zero of=system_ext4.img bs=40M count=10

mkfs.ext4 system_ext4.img

tune2fs -c0 -i0 system_ext4.img

mkdir sysext4

mount -o loop system_ext4.img system-ext4/

cp -v -r -p system/* sysext4/

umount sysext4/

rm -rf sysext4/


적당한 크기(예에서는 400M)의 파일을 만들고, 포맷하고 마운트한 다음, out/target/product/smdkv210/system/ 디렉토리의 모든것을 마운트한 곳에 복사한 후, 마운트 해제..마운트 지점 삭제...

(저기 mkdir sysext4 가 구글리에서는 system-ext4 였는데, 이상하게도 파일이 있다고 나오면서 디렉토리 생성이 되지않아 아무렇게나 변경한 것이다. 아직 이유모름)


이 방식으로 system.img, userdata.img 를 *_ext4.img 로 변경한 후, SD에 한번 심어봤더니... 의미없다~~


이제 각 *.mk 파일에 좀 더 상세히 설정들을 적용해 봐야겠다. mv 자료를 참고로 해서...





Posted by 똑똑한 영장류