Korzystanie z tablic referencyjnych

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Możesz tworzyć kompilacje dla urządzeń Nexus i Pixel, korzystając z kompilacji Android Open Source Project (AOSP) i odpowiednich plików binarnych specyficznych dla sprzętu. Aby zapoznać się z dostępnymi kompilacjami Androida i urządzeniami docelowymi, zobacz Tagi kodu źródłowego i kompilacje .

Możesz także tworzyć kompilacje dla płyt referencyjnych DragonBoard 845c , HiKey 960 , Khadas VIM3 i Qualcomm Robotics Board RB5 Android, które mają pomóc dostawcom komponentów niemobilnych w opracowaniu i przeniesieniu sterowników do wydań systemu Android. Korzystanie z płyty referencyjnej może ułatwić prace modernizacyjne, skrócić czas wprowadzania na rynek nowych urządzeń z systemem Android, obniżyć koszty urządzeń, umożliwiając producentom ODM/OEM wybór z szerszej gamy kompatybilnych komponentów oraz przyspieszyć wprowadzanie innowacji wśród dostawców komponentów.

Google obsługuje referencyjne karty DragonBoard 845c , HiKey 960 , Khadas VIM3 i Qualcomm Robotics Board RB5 Android. AOSP zapewnia obsługę źródeł jądra i płyt głównych dla tych płyt, dzięki czemu programiści mogą łatwo tworzyć i debugować sterowniki urządzeń peryferyjnych, opracowywać jądro i wykonywać inne zadania z mniejszymi obciążeniami OEM.

DragonBoard 845c

DragonBoard 845c jest częścią platformy RB3 i jest dostępny na stronie 96boards.org .

Obraz smoczej deski

Rysunek 1. DragonBoard 845c

Kompilowanie przestrzeni użytkownika

Użyj następujących poleceń, aby pobrać i zbudować system Android na płycie DragonBoard 845c.

  1. Pobierz drzewo źródeł Androida:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Pobierz aktualny pakiet dostawcy:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Zbuduj AOSP:

    . ./build/envsetup.sh
    lunch db845c-userdebug
    make -j24
    

Instalowanie obrazów lokalnych

  1. Uruchom db845c w trybie szybkiego uruchamiania.

  2. Uruchom następujące polecenie:

    ./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
    

Jeśli to konieczne, możesz wykonać odzyskiwanie karty QDL, uruchamiając następujący skrypt po uruchomieniu db845c w trybie flashowania USB (zobacz DragonBoard Recovery ):

./device/linaro/dragonboard/installer/db845c/recovery.sh

Budowanie jądra

Aby zbudować artefakty jądra DragonBoard db845c Android Generic Kernel Image (GKI):

  1. Uruchom następujące polecenia, aby sklonować źródło jądra i gotowe łańcuchy narzędzi systemu Android oraz skrypty kompilacji.

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
    
  1. Usuń wszystkie obiekty w ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ a następnie skopiuj artefakty kompilacji z out/android-mainline/dist/ do ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ następnie odbuduj przestrzeń użytkownika za pomocą:

    make TARGET_KERNEL_USE=mainline -j24
    

    i sflashuj urządzenie z wynikowym plikiem boot.img i super.img (zobacz Kompilowanie przestrzeni użytkownika ).

  2. Przetestuj jądro GKI:

    1. Zobacz najnowszą kompilację kernel_aarch64 .

    2. W artefaktach pobierz Image.

    3. Spakuj obraz

      gzip Image
      
    4. Skopiuj go do ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Odbuduj AOSP i sflashuj urządzenie z nowym plikiem boot.img (zobacz Kompilowanie przestrzeni użytkownika ).

Płyty HiKey 960

Płyta HiKey 960 jest dostępna w firmach Amazon i Lenovator .

Obraz płytki HiKey 960

Rysunek 2. Płyta HiKey 960 firmy Lenovator

Kompilowanie przestrzeni użytkownika

Użyj następujących poleceń, aby pobrać i zbudować system Android na płycie HiKey 960.

  1. Pobierz drzewo źródeł Androida

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Pobierz aktualny pakiet dostawcy

    ./device/linaro/hikey/fetch-vendor-package.sh
    
  3. Budować

    . ./build/envsetup.sh
    lunch hikey960-userdebug
    make -j24
    

Instalowanie obrazów lokalnych

  1. Wybierz tryb szybkiego uruchamiania, włączając przełącznik 3 (szczegółowe informacje znajdują się w przewodniku wprowadzającym HiKey 960 ).

  2. Zasil tablicę.

  3. Flashuj lokalne obrazy:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. Wyłącz przełącznik 3 i włącz ponownie zasilanie płyty.

Budowanie jądra

Aby zbudować artefakty jądra HiKey960 Android GKI:

  1. Uruchom następujące polecenia:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.hikey960 build/build.sh
    
  2. Usuń wszystkie obiekty w ${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/ a następnie skopiuj artefakty kompilacji z kompilacji jądra w out/android12-5.4/dist/ do ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

  3. Połącz DTB:

    cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  > 
    device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    
  4. Zbuduj przestrzeń użytkownika Androida

    lunch hikey960-userdebug
    make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
    

    i sflashuj urządzenie z nowym jądrem (zobacz Kompilowanie przestrzeni użytkownika )

  5. Przetestuj jądro Generic Kernel Image (GKI).

    • Zobacz najnowszą kompilację kernel_aarch64 .

    • W artefaktach pobierz plik Image i skopiuj go do ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/ .

    • Skompresuj obraz i połącz DTB

    gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
    cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    

Ustawianie numeru seryjnego

Aby ustawić losowy numer seryjny, uruchom:

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

Bootloader eksportuje wygenerowany numer seryjny do jądra za pomocą androidboot.serialno= . Ten parametr jest przekazywany przez wiersz poleceń jądra w systemie Android 11 i niższych oraz przez bootconfig w systemie Android 12 z jądrem w wersji 5.10 lub nowszej.

Ustawianie rozdzielczości monitora

Edytuj parametr device/linaro/hikey/hikey960/BoardConfig.mk BOARD_KERNEL_CMDLINE i skonfiguruj ustawienia video . Na przykład ustawienie dla monitora 24-calowego to video=HDMI-A-1:1280x800@60 .

Płyty VIM3 i VIM3L

Płyty Vim3 i VIM3L firmy Khadas są dostępne na stronie internetowej Khadas

Obraz płytki VIM3

Rysunek 3. Płytka VIM3 firmy Khadas

Kompilowanie przestrzeni użytkownika

Użyj następujących poleceń, aby pobrać i zbudować system Android na płycie VIM3.

  1. Pobierz drzewo źródeł Androida:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Budować:

    . ./build/envsetup.sh
    lunch yukawa-userdebug
    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
    

    Domyślnie Android jest zbudowany z jądrem 5.10. Aby użyć gotowych wersji jądra 5.4:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
    

    W przypadku VIM3L użyj:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
    

Instalowanie obrazów początkowych

  1. Przełącz płytę w tryb aktualizacji USB, postępując zgodnie z instrukcjami flashowania VIM3 .

  2. Flashowanie początkowych obrazów do pamięci RAM:

    cd path/to/aosp/device/amlogic/yukawa/bootloader/
    ./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
    ./tools/update run 0xfffa0000
    ./tools/update bl2_boot u-boot_kvim3_noab.bin
    
  3. Po uruchomieniu U-Boot i uruchomieniu fastboot uruchom następujące polecenia:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. Odłącz i podłącz kabel zasilający.

Płyta powinna uruchomić się w właśnie sflashowanym U-boot i wejść w tryb fastboot.

Migające obrazy

  1. Wejdź w tryb szybkiego uruchamiania (instrukcje znajdziesz w poprzedniej sekcji).

  2. Flashuj wszystkie obrazy Androida:

    cd out/target/product/yukawa
    fastboot flash boot boot.img
    fastboot flash super super.img
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    fastboot flash dtbo dtbo-unsigned.img
    fastboot reboot
    

Budowanie jądra

Aby zbudować artefakty jądra dla VIM3 lub VIM3L:

  1. Pobierz dodatkowe łańcuchy narzędzi:

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
    
  2. Sklonuj źródła jądra:

    # for 4.19
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
    # for 5.4
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
    # for 5.10
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
    # for 5.15
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
    
  3. Eksportuj zmienne kompilacji:

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    export LLVM=1
    
  4. Zbuduj jądro:

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
    
  5. Skompresuj jądro i skopiuj build_artifacts do ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel :

    lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
    KERN_VER=4.19 # for 4.19 kernel
    KERN_VER=5.4  # for 5.4 kernel
    KERN_VER=5.10 # for 5.10 kernel
    KERN_VER=5.15 # for 5.15 kernel
    for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do
        cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f)
    done
    cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
    
  6. Przebuduj przestrzeń użytkownika systemu Android (zobacz Kompilowanie przestrzeni użytkownika ) i sflashuj nowe jądro (zobacz Flashowanie obrazów ).

Płyta Qualcomm Robotics RB5

Tablica Robotics Board RB5 jest dostępna na stronie 96boards.org .

rb5_board

Rysunek 4. Płytka robotyczna RB5

Kompilowanie przestrzeni użytkownika

Użyj następujących poleceń, aby pobrać i skompilować system Android na RB5.

  1. Pobierz drzewo źródeł Androida:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Pobierz aktualny pakiet dostawcy:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Zbuduj AOSP:

    . ./build/envsetup.sh
    lunch rb5-userdebug
    make -j24
    

Instalowanie obrazów lokalnych

  1. Uruchom RB5 w trybie szybkiego uruchamiania.

  2. Uruchom następujące polecenie:

    ./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
    

Jeśli to konieczne, możesz wykonać odzyskiwanie karty QDL, uruchamiając następujący skrypt po uruchomieniu RB5 w trybie flashowania USB (patrz Odzyskiwanie RB5 ):

   ./device/linaro/dragonboard/installer/rb5/recovery.sh

Budowanie jądra

Aby zbudować artefakty jądra RB5 Android Generic Kernel Image (GKI):

  1. Uruchom następujące polecenia, aby sklonować źródła jądra i gotowe łańcuchy narzędzi systemu Android oraz skrypty kompilacji:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
    
  2. Usuń wszystkie obiekty w ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ , a następnie skopiuj artefakty kompilacji z out/android-mainline/dist/ do ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ , a następnie odbuduj przestrzeń użytkownika za pomocą:

    make TARGET_KERNEL_USE=mainline -j24
    

    i sflashuj urządzenie z wynikowym plikiem boot.img i super.img (zobacz Kompilowanie przestrzeni użytkownika ).

  3. Przetestuj jądro GKI:

    1. Zobacz najnowszą kompilację kernel_aarch64 .
    2. W artefaktach pobierz Image.
    3. Spakuj obraz

      gzip Image
      
    4. Skopiuj go do ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Odbuduj AOSP i sflashuj urządzenie z nowym plikiem boot.img (zobacz Kompilowanie przestrzeni użytkownika ).