Использование справочных досок

Вы можете создавать сборки для устройств Nexus и Pixel, используя сборки Android Open Source Project (AOSP) и соответствующие двоичные файлы для конкретного оборудования. Доступные сборки Android и целевые устройства см. в разделе Теги исходного кода и сборки .

Вы также можете создавать сборки для эталонных плат DragonBoard 845c , HiKey 960 , Khadas VIM3 и Qualcomm Robotics Board RB5 Android, которые предназначены для того, чтобы помочь поставщикам немобильных компонентов разрабатывать и портировать драйверы для выпусков Android. Использование эталонной платы может упростить обновление, сократить время выхода на рынок новых устройств Android, снизить стоимость устройств, позволяя ODM/OEM выбирать из более широкого спектра совместимых компонентов, а также увеличить скорость инноваций среди поставщиков компонентов.

Google поддерживает эталонные платы DragonBoard 845c , HiKey 960 , Khadas VIM3 и Qualcomm Robotics Board RB5 Android. AOSP предоставляет исходный код ядра и поддержку плат для этих плат, поэтому разработчики могут легко создавать и отлаживать драйверы периферийных устройств, разрабатывать ядро ​​и выполнять другие задачи с меньшими затратами OEM.

DragonBoard 845c

Доска DragonBoard 845c является частью платформы RB3 и доступна на сайте 96boards.org .

Изображение доски дракона

Рисунок 1. Доска DragonBoard 845c

Компиляция пользовательского пространства

Используйте следующие команды для загрузки и сборки Android на DragonBoard 845c.

  1. Загрузите исходное дерево Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Загрузите текущий пакет поставщика:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Сборка АОСП:

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

Установка локальных образов

  1. Загрузите db845c в режим быстрой загрузки.

  2. Запустите следующую команду:

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

При необходимости вы можете выполнить восстановление платы QDL, запустив следующий скрипт после загрузки db845c в режиме прошивки USB (см. DragonBoard Recovery ):

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

Сборка ядра

Чтобы собрать артефакты ядра DragonBoard db845c Android Generic Kernel Image (GKI):

  1. Запустите следующие команды, чтобы клонировать исходный код ядра и готовые наборы инструментов Android, а также создать скрипты.

    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. Удалите все объекты в ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ , затем скопируйте артефакты сборки из out/android-mainline/dist/ в ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ затем перестройте пользовательское пространство с помощью:

    make TARGET_KERNEL_USE=mainline -j24
    

    и прошить устройство получившимся boot.img и super.img (см. Компиляция пользовательского пространства ).

  3. Протестируйте ядро ​​GKI:

    1. Посмотреть последнюю сборку kernel_aarch64 .

    2. В артефактах скачать Image.

    3. Сжать изображение

      gzip Image
      
    4. Скопируйте его в ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Пересоберите AOSP и прошейте устройство новым boot.img (см. Компиляция пользовательского пространства ).

Платы HiKey 960

Плата HiKey 960 доступна на Amazon и Lenovator .

Изображение платы HiKey 960

Рисунок 2. Плата HiKey 960 от Lenovator

Компиляция пользовательского пространства

Используйте следующие команды для загрузки и сборки Android на плате HiKey 960.

  1. Загрузите исходное дерево Android

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Загрузите текущий пакет поставщика

    ./device/linaro/hikey/fetch-vendor-package.sh
    
  3. Строить

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

Установка локальных образов

  1. Выберите режим быстрой загрузки, включив переключатель 3 (подробности см. в руководстве по началу работы с HiKey 960 ).

  2. Включите плату.

  3. Локальные флеш-изображения:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. Выключите переключатель 3 и снова включите питание платы.

Сборка ядра

Чтобы собрать артефакты ядра HiKey960 Android GKI:

  1. Выполните следующие команды:

    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. Удалите все объекты в ${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/ затем скопируйте артефакты сборки из сборки ядра в out/android12-5.4/dist/ в ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

  3. Объединить 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. Создание пользовательского пространства Android

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

    и прошить устройство новым ядром (см. Компиляция пользовательского пространства )

  5. Тестирование ядра Generic Kernel Image (GKI)

    • Посмотреть последнюю сборку kernel_aarch64 .

    • В артефактах загрузите файл Image и скопируйте его в ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/ .

    • Сжать изображение и соединить 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
    

Установка серийного номера

Чтобы установить случайный серийный номер, запустите:

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

Загрузчик экспортирует сгенерированный серийный номер в ядро, используя androidboot.serialno= . Этот параметр передается через командную строку ядра в Android 11 и ниже и через bootconfig в Android 12 с версией ядра 5.10 или выше.

Настройка разрешения монитора

Отредактируйте параметр device/linaro/hikey/hikey960/BoardConfig.mk BOARD_KERNEL_CMDLINE и настройте параметры video . Например, для 24-дюймового монитора используется значение video=HDMI-A-1:1280x800@60 .

Платы VIM3 и VIM3L

Платы Vim3 и VIM3L от Khadas доступны на веб-сайте Khadas.

Образ платы VIM3

Рисунок 3. Плата VIM3 от Khadas

Компиляция пользовательского пространства

Используйте следующие команды для загрузки и сборки Android на плате VIM3.

  1. Загрузите исходное дерево Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Строить:

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

    По умолчанию Android построен с ядром 5.10. Чтобы использовать готовые сборки ядра 5.4:

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

    Для VIM3L используйте:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
    

Установка исходных образов

  1. Переведите плату в режим USB-обновления, следуя инструкциям по перепрошивке VIM3 .

  2. Прошить начальные образы в ОЗУ:

    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
    
    • Если у вас возникнут проблемы с разрешениями, обратитесь к разделу правил udev, чтобы добавить соответствующие правила USB.
    • Если tools/update не работают, вместо этого используйте инструмент pyamlboot для прошивки платы.
  3. После того, как U-Boot загрузится и запустит fastboot, выполните следующие команды:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. Отключите и подключите кабель питания.

Плата должна загрузиться в только что прошитый U-boot и перейти в режим fastboot.

Мигающие изображения

  1. Войдите в режим быстрой загрузки (см. инструкции в предыдущем разделе).

  2. Прошить все образы Android:

    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
    

Сборка ядра

Чтобы собрать артефакты ядра для VIM3 или VIM3L:

  1. Загрузите дополнительные наборы инструментов:

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
    
  2. Клонируйте исходный код ядра:

    # 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. Экспорт переменных сборки:

    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. Соберите ядро:

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
    
  5. Сожмите ядро ​​и скопируйте build_artifacts в ${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. Пересоберите пользовательское пространство Android (см. Компиляция пользовательского пространства ) и прошейте новое ядро ​​(см. Прошивка изображений ).

Плата Qualcomm Robotics Board RB5

Доска для робототехники RB5 доступна на сайте 96boards.org .

rb5_board

Рисунок 4. Плата робототехники RB5

Компиляция пользовательского пространства

Используйте следующие команды для загрузки и сборки Android на RB5.

  1. Загрузите исходное дерево Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Загрузите текущий пакет поставщика:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Сборка АОСП:

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

Установка локальных образов

  1. Загрузите RB5 в режим fastboot.

  2. Запустите следующую команду:

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

При необходимости вы можете выполнить восстановление платы QDL, запустив следующий скрипт после загрузки RB5 в режиме прошивки USB (см. Восстановление RB5 ):

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

Сборка ядра

Чтобы собрать артефакты ядра RB5 Android Generic Kernel Image (GKI):

  1. Запустите следующие команды, чтобы клонировать исходный код ядра и предварительно собранные наборы инструментов Android и скрипты сборки:

    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. Удалите все объекты в ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ , затем скопируйте артефакты сборки из out/android-mainline/dist/ в ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ , а затем перестроить пользовательское пространство с помощью:

    make TARGET_KERNEL_USE=mainline -j24
    

    и прошить устройство получившимся boot.img и super.img (см. Компиляция пользовательского пространства ).

  3. Протестируйте ядро ​​GKI:

    1. Посмотреть последнюю сборку kernel_aarch64 .
    2. В артефактах скачать Image.
    3. Сжать изображение

      gzip Image
      
    4. Скопируйте его в ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Пересоберите AOSP и прошейте устройство новым boot.img (см. Компиляция пользовательского пространства ).