استخدام اللوحات المرجعية

يمكنك إنشاء تصميمات لأجهزة Nexus و Pixel باستخدام إصدارات Android Open Source Project (AOSP) والثنائيات الخاصة بالأجهزة ذات الصلة. للحصول على إصدارات Android والأجهزة المستهدفة المتاحة ، راجع علامات وإصدارات التعليمات البرمجية المصدر .

يمكنك أيضًا إنشاء تصميمات للوحات مرجعية لـ DragonBoard 845c و HiKey 960 و Khadas VIM3 و Qualcomm Robotics Board RB5 Android ، والتي تم تصميمها لمساعدة بائعي المكونات غير المتنقلة على تطوير برامج تشغيل وإخراجها إلى إصدارات Android. يمكن أن يؤدي استخدام لوحة مرجعية إلى تسهيل جهود الترقية ، وتقليل الوقت اللازم لتسويق أجهزة Android الجديدة ، وخفض تكاليف الجهاز من خلال تمكين ODM / OEMs من الاختيار من بين مجموعة واسعة من المكونات المتوافقة ، وزيادة سرعة الابتكار بين موردي المكونات.

تدعم Google لوحات DragonBoard 845c و HiKey 960 و Khadas VIM3 و Qualcomm Robotics Board RB5 Android. يوفر AOSP مصدر kernel ودعم اللوحة لهذه اللوحات ، بحيث يمكن للمطورين إنشاء وتصحيح برامج التشغيل الطرفية بسهولة ، وتطوير النواة ، وتنفيذ مهام أخرى مع عدد أقل من أعباء OEM.

دراغون بورد 845 ج

تعد DragonBoard 845c جزءًا من منصة RB3 ومتاحة من موقع 96boards.org .

صورة Dragonboard

الشكل 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. بناء AOSP:

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

تركيب الصور المحلية

  1. قم بتشغيل db845c في وضع Fastboot.

  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. قم بتشغيل الأوامر التالية لاستنساخ مصدر kernel وسلاسل أدوات 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
    tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
    
  1. احذف جميع العناصر الموجودة في ${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 الناتج (انظر تجميع مساحة المستخدمين ).

  2. اختبر نواة GKI:

    1. عرض أحدث إصدار من kernel_aarch64 .

    2. في القطع الأثرية ، قم بتنزيل الصورة.

    3. Gzip الصورة

      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. حدد وضع fastboot عن طريق تشغيل مفتاح التشغيل 3 (للحصول على التفاصيل ، راجع دليل بدء التشغيل HiKey 960 ).

  2. قم بتشغيل اللوحة.

  3. صور فلاش محلية:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. قم بإيقاف تشغيل المفتاح 3 ودورة الطاقة في اللوحة.

بناء النواة

لإنشاء عناصر HiKey960 Android GKI kernel:

  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/ ثم انسخ عناصر البناء من بنية kernel في 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. اختبر نواة صورة النواة العامة (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

يقوم Bootloader بتصدير الرقم التسلسلي الذي تم إنشاؤه إلى النواة باستخدام androidboot.serialno= . يتم تمرير هذه المعلمة عبر سطر أوامر kernel في Android 11 والإصدارات الأقل ، ومن خلال bootconfig في Android 12 مع إصدار kernel 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. لاستخدام kernel 5.4 prebuilts:

    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
    
  3. بعد تشغيل U-Boot وتشغيل fastboot ، قم بتشغيل الأوامر التالية:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. افصل كبل الطاقة وقم بتوصيله.

يجب أن تقوم اللوحة بالتمهيد في التمهيد U الذي تم وميضه للتو والدخول في وضع Fastboot.

امض الصور

  1. أدخل وضع Fastboot (انظر القسم السابق للحصول على التعليمات).

  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
    

بناء النواة

لإنشاء مصنوعات kernel لـ 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 (انظر تجميع مساحة المستخدمين) ووميض النواة الجديدة (انظر الصور الوامضة).

مجلس الروبوتات كوالكوم RB5

The Robotics Board 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. بناء AOSP:

    . ./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. قم بتشغيل الأوامر التالية لاستنساخ مصدر kernel وسلاسل أدوات 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. في القطع الأثرية ، قم بتنزيل الصورة.
    3. Gzip الصورة

      gzip Image
      
    4. انسخه إلى ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. أعد إنشاء AOSP ووميض الجهاز باستخدام boot.img الجديد (انظر تجميع مساحة المستخدمين ).