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

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

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

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

Доска дракона 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. Строить:

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

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

  1. Загрузочный db845c в режим быстрой загрузки (см DragonBoard Recovery ).

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

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

Кроме того, вы можете выполнить восстановление платы QDL, запустив следующий сценарий после загрузки db845c в режиме USB-прошивки:

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

Прошивка изображений с ci.android.com

Вы можете использовать flash.android.com легко проверить последние AOSP сборки артефактов из ci.android.com . Вам не нужно собирать, но вам нужно, чтобы на DragonBoard 845c уже была установлена ​​последняя версия загрузчика в AOSP, прежде чем вы начнете.

  1. В веб - браузере перейдите flash.android.com .

  2. Нажмите НАЧАТЬ затем шаг 1 пропустить (как устройство уже находится в режиме разработчика).

  3. В наличии, найти DragonBoard 845c (db845c). Если вы не видите его, нажмите кнопку + Добавить новое устройство затем выбрать либо Android гаджет или Android устройство из списка.

  4. Выберите DragonBoard 845c (db845c).

  5. Нажмите Выбор сборки ID и выбрать самую последнюю сборку.

  6. Нажмите кнопку Установить.

  7. Следуйте оставшимся инструкциям и подождите, пока плата не мигнет.

Поздравляем, на вашем DragonBoard 845c теперь установлена ​​самая последняя сборка AOSP!

Сборка ядра

Чтобы собрать артефакты ядра 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/ затем восстановить UserSpace с:

    make TARGET_KERNEL_USE=mainline -j24
    

    и прошить устройство с новым ядром (см Компиляция UserSpace )

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

    1. Просмотр последней kernel_aarch64 сборки .

    2. В артефактах, скачать Image.gz и скопировать его в ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    3. Сложение и прошить устройство с новым ядром (см Компиляция UserSpace ).

Платы HiKey 960

HiKey 960 доска доступна из Амазонки и 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. Строить:

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

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

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

  2. Включите доску.

  3. Начальные изображения Flash:

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

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

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

  2. Flash-изображения, выполнив следующие команды:

    fastboot flash boot out/target/product/hikey960/boot.img
    
  3. Выключите переключатель 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
    

    и прошить устройство с новым ядром (см Компиляция UserSpace )

  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 построен с ядром 4.19. Чтобы использовать предварительные сборки ядра 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 и перейти в режим быстрой загрузки.

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

  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. Загрузите дополнительные наборы инструментов:

    cd ${AOSP_TOPDIR}
    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 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
    
  3. Экспорт переменных сборки:

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r399163b/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
    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 UserSpace (см Компиляция UserSpace ) и прошить новое ядро (см Мигание изображения ).