최신 manifest
https://android.googlesource.com/platform/manifest/+/refs/heads/android-11.0.0_r48 |
소스 클론
$ repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r48 $ repo sync -j8 |
타겟 체크
$ source build/envsetup.sh $ lunch yukawa-eng ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=11 TARGET_PRODUCT=yukawa TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_ARCH=arm64 TARGET_ARCH_VARIANT=armv8-a TARGET_CPU_VARIANT=cortex-a53 TARGET_2ND_ARCH=arm TARGET_2ND_ARCH_VARIANT=armv8-a TARGET_2ND_CPU_VARIANT=cortex-a53 HOST_ARCH=x86_64 HOST_2ND_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-5.4.0-205-generic-x86_64-Ubuntu-20.04.6-LTS HOST_CROSS_OS=windows HOST_CROSS_ARCH=x86 HOST_CROSS_2ND_ARCH=x86_64 HOST_BUILD_TYPE=release BUILD_ID=RD2A.211001.002 OUT_DIR=out PRODUCT_SOONG_NAMESPACES=device/amlogic/yukawa ============================================ |
기타 빌드옵션 확인
[~/vim3l-a11/device/amlogic/yukawa] $ search "TARGET_VIM3L" ./sei610/README:8:- For VIM3L: make TARGET_VIM3L=true -j24 ./sei610/README:31:- For VIM3L: make TARGET_VIM3L=true bootimage -j24 ./yukawa/BoardConfig.mk:3:ifeq ($(TARGET_VIM3L),) ./device-yukawa.mk:7:ifeq ($(TARGET_VIM3L),) [~/vim3l-a11/device/amlogic/yukawa] $ search "TARGET_KERNEL_USE" ./device-yukawa_sei510.mk:1:ifndef TARGET_KERNEL_USE ./device-yukawa_sei510.mk:2:TARGET_KERNEL_USE=4.19 ./device-yukawa_sei510.mk:7:BOARD_KERNEL_DTB := device/amlogic/yukawa-kernel/meson-g12a-sei510.dtb-$(TARGET_KERNEL_USE) ./device-common.mk:4:LOCAL_KERNEL := device/amlogic/yukawa-kernel/Image.lz4-$(TARGET_KERNEL_USE) ./device-yukawa.mk:1:ifndef TARGET_KERNEL_USE ./device-yukawa.mk:2:TARGET_KERNEL_USE=4.19 ./device-yukawa.mk:15:TARGET_DTB := meson-sm1-sei610.dtb-$(TARGET_KERNEL_USE) ./device-yukawa.mk:17:TARGET_DTB := meson-sm1-khadas-vim3l.dtb-$(TARGET_KERNEL_USE) ./BoardConfigCommon.mk:85:ifeq ($(TARGET_KERNEL_USE), 5.4) |
빌드 수행
$ export TARGET_VIM3L=true $ export TARGET_KERNEL_USE=5.4 $ make -j12 |
빌드 실패하면 swap 을 추가해야할 것 같음
$ make -j12 07:33:24 ************************************************************ 07:33:24 You are building on a machine with 9.71GB of RAM 07:33:24 07:33:24 The minimum required amount of free memory is around 16GB, 07:33:24 and even with that, some configurations may not work. 07:33:24 07:33:24 If you run into segfaults or other errors, try reducing your 07:33:24 -j value. 07:33:24 ************************************************************ ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=11 TARGET_PRODUCT=yukawa TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_ARCH=arm64 TARGET_ARCH_VARIANT=armv8-a TARGET_CPU_VARIANT=cortex-a53 TARGET_2ND_ARCH=arm TARGET_2ND_ARCH_VARIANT=armv8-a TARGET_2ND_CPU_VARIANT=cortex-a53 HOST_ARCH=x86_64 HOST_2ND_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-5.4.0-205-generic-x86_64-Ubuntu-20.04.6-LTS HOST_CROSS_OS=windows HOST_CROSS_ARCH=x86 HOST_CROSS_2ND_ARCH=x86_64 HOST_BUILD_TYPE=release BUILD_ID=RD2A.211001.002 OUT_DIR=out PRODUCT_SOONG_NAMESPACES=device/amlogic/yukawa ============================================ [ 33% 60/181] compile out/soong/.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/ 0:01 compile out/soong/.bootstrap/blueprint-bootstrap-bpdoc/test/github.com/google/blueprin 0:01 compile out/soong/.bootstrap/blueprint-bootstrap-bpdoc/pkg/github.com/google/blueprint 0:01 compile out/soong/.bootstrap/soong-android-soongconfig/pkg/android/soong/android/soong 0:00 compile out/soong/.bootstrap/blueprint/test/test.a |
역시 메모리 부족 에러 발생
스왑을 좀 더 추가
기존 3기가에서 16기가 더 추가
$ sudo dd if=/dev/zero of=/swap bs=1M count=16384 16384+0 records in 16384+0 records out 17179869184 bytes (17 GB, 16 GiB) copied, 39.0126 s, 440 MB/s $ sudo mkswap /swap mkswap: /swap: insecure permissions 0644, 0600 suggested. Setting up swapspace version 1, size = 16 GiB (17179865088 bytes) no label, UUID=ac9ec318-ee42-4b7a-ba93-7f08e46e08b3 $ sudo swapon /swap swapon: /swap: insecure permissions 0644, 0600 suggested. [/] $ free -h total used free shared buff/cache available Mem: 9.7Gi 244Mi 5.7Gi 0.0Ki 3.8Gi 9.2Gi Swap: 19Gi 62Mi 19Gi |
그래도 빌드 실패 아래와 같이 메모리 옵션 조정
[~/vim3l-a11/build/soong/java] $ git diff diff --git a/java/droiddoc.go b/java/droiddoc.go index b564fea01..ddc0682a1 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -1474,6 +1474,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi cmd.BuiltTool(ctx, "metalava"). Flag(config.JavacVmFlags). + Flag("-J-Xmx6144m"). FlagWithArg("-encoding ", "UTF-8"). FlagWithArg("-source ", javaVersion.String()). FlagWithRspFileInputList("@", srcs). |
다시 순항중
빌드 완료
[100% 4209/4209] Install system fs image: out/target/product/yukawa/system.img #### build completed successfully (42:44 (mm:ss)) #### [~/vim3l-a11/out/target/product/yukawa] $ ls android-info.txt cache gen installed-files.txt module-info.json recovery vendor apex cache.img installed-files.json installed-files-vendor.json module-info.json.rsp root vendor.img appcompat clean_steps.mk installed-files-ramdisk.json installed-files-vendor.txt obj symbols boot.img data installed-files-ramdisk.txt kernel obj_arm system build_fingerprint.txt debug_ramdisk installed-files-root.json meson-sm1-khadas-vim3l.dtb-5.4 previous_build_config.mk system.img build_thumbprint.txt fake_packages installed-files-root.txt misc_info.txt ramdisk.img userdata.img |
시리얼이 없는 상태에서 부트로더 업데이트
전원을 넣자 마자 Function 버튼 3번 빠르게 클릭
파란색 LED가 3번 깜박이고 또 3번 깜박이고 꺼짐
아래 장치를 버추얼박스에 넣어줌
android 11 버전에 부트로더 write 툴이 없음으로 pyamlboot 툴을 통해 write 시도
usb 는 root 권한이 필요할 수 있음으로 파이썬 패키지를 홈폴더 밑에 설치하면 골치아파짐
pip 명령도 sudo 로 수행
[~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo pip3 install pyamlboot Collecting pyamlboot Downloading pyamlboot-1.0.0-py3-none-any.whl (25.5 MB) |████████████████████████████████| 25.5 MB 1.7 MB/s Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from pyamlboot) (45.2.0) Collecting pyusb Downloading pyusb-1.2.1-py3-none-any.whl (58 kB) |████████████████████████████████| 58 kB 5.5 MB/s Installing collected packages: pyusb, pyamlboot Successfully installed pyamlboot-1.0.0 pyusb-1.2.1 |
아래 명령으로 write
[~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo boot-g12.py u-boot_kvim3l.bin Firmware Version : ROM: 3.2 Stage: 0.0 Need Password: 0 Password OK: 0 Writing u-boot_kvim3l.bin at 0xfffa0000... [DONE] Running at 0xfffa0000... [DONE] AMLC dataSize=16384, offset=65536, seq=0... [DONE] AMLC dataSize=49152, offset=393216, seq=1... [DONE] AMLC dataSize=16384, offset=229376, seq=2... [DONE] AMLC dataSize=49152, offset=245760, seq=3... [DONE] AMLC dataSize=16384, offset=65536, seq=4... [DONE] AMLC dataSize=49152, offset=393216, seq=5... [DONE] AMLC dataSize=16384, offset=229376, seq=6... [DONE] AMLC dataSize=49152, offset=245760, seq=7... [DONE] AMLC dataSize=49152, offset=294912, seq=8... [DONE] AMLC dataSize=16384, offset=65536, seq=9... [DONE] AMLC dataSize=1014640, offset=81920, seq=10... [DONE] [BL2 END] |
위 작업 이후 USB 가 떨어짐
아래 디바이스를 다시 넣음
adb와 fastboot 설치
[~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo apt install fastboot adb |
디바이스 잡히는지 확인
[~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo fastboot devices AMLG12ASEI610 fastboot |
빌드 경로로 이동하여 아래 명령 입력
(이 부분은 파티션맵이 좀 정확하지 않음)
fastboot oem format 이 포럼 찾아보면 emmc re-partition 이라고 하는데 이후 u-boot 소스를 받아 확인해봐야겠음
[~/vim3l-a11/out/target/product/yukawa] $ sudo su root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot oem format root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot flash boot boot.img root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot flash cache cache.img root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot flash system system.img root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot flash vendor vendor.img root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot flash userdata userdata.img |
부팅 시도
root@djjproject:/home/djjproject/vim3l-a11/out/target/product/yukawa# fastboot reboot rebooting... finished. total time: 0.946s |
위 방법으로 리셋되지 않아 리셋버튼 누름
어우 부팅하지 않음
아래 USB TTL 제품 구매
https://www.devicemart.co.kr/goods/view?no=1164522
추가내용 확인
https://forum.khadas.com/t/flashing-android-11-on-vim3/12375/10
baylibre 소스로 전환
# ~/vim3l-a11/device/amlogic/yukawa $ git remote add --no-tags baylibre https://gitlab.baylibre.com/baylibre/amlogic/atv/aosp/device/amlogic/yukawa.git $ git fetch baylibre $ git checkout -f baylibre/wip/android11 |
# ~/vim3l-a11/device/amlogic/yukawa-kernel $ git fetch aosp $ git checkout -f aosp/master |
다시 빌드
$ make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true TARGET_KERNEL_USE=5.4 -j12 |
다시 write
[~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo boot-g12.py u-boot_kvim3l_noab.bin Firmware Version : ROM: 3.2 Stage: 0.0 Need Password: 0 Password OK: 0 Writing u-boot_kvim3l_noab.bin at 0xfffa0000... [DONE] Running at 0xfffa0000... [DONE] AMLC dataSize=16384, offset=65536, seq=0... [DONE] AMLC dataSize=49152, offset=393216, seq=1... [DONE] AMLC dataSize=16384, offset=229376, seq=2... [DONE] AMLC dataSize=49152, offset=245760, seq=3... [DONE] AMLC dataSize=16384, offset=65536, seq=4... [DONE] AMLC dataSize=49152, offset=393216, seq=5... [DONE] AMLC dataSize=16384, offset=229376, seq=6... [DONE] AMLC dataSize=49152, offset=245760, seq=7... [DONE] AMLC dataSize=49152, offset=294912, seq=8... [DONE] AMLC dataSize=16384, offset=65536, seq=9... [DONE] AMLC dataSize=1115504, offset=81920, seq=10... [DONE] [BL2 END] [~/vim3l-a11/device/amlogic/yukawa/bootloader] $ sudo fastboot devices 42179D9837C8 fastboot # ~/vim3l-a11/out/target/product/yukawa $ sudo fastboot oem format $ sudo fastboot erase bootenv $ sudo fastboot flash boot boot.img $ sudo fastboot flash cache cache.img $ sudo fastboot flash userdata userdata.img $ sudo fastboot flash recovery recovery.img $ sudo fastboot flash dtbo dtbo-unsigned.img $ sudo fastboot flash super super.img |
부팅을 하긴 하는데 사용할 수 없는 수준
SystemUI 에서 자꾸 종료가 생긴다.
최종 빌드 커맨드
ATV 버전을 사용하면 문제가 없다. TABLET 런처를 적용하면 문제가 생김
5.4 커널도 부팅은 하지만 화면이 나오지 않는 문제 있음
$ make TARGET_VIM3L=true TARGET_KERNEL_USE=4.19 -j16 |
'안드로이드' 카테고리의 다른 글
Khadas VIM3L linux kernel 4.19 빌드하기 (0) | 2025.03.04 |
---|---|
Khadas VIM3L 안드로이드 12 빌드하기 (0) | 2025.03.03 |
Termux mesa 24.2.6 빌드하기 (proot / msm, kgsl) (0) | 2024.11.07 |
Termux proot mesa freedreno kgsl 빌드하기 (3) | 2024.08.21 |
Termux debian 환경에서 chrome browser / 그림판 / 스샷찍기 등 설정 (405) | 2024.06.27 |
댓글