संदर्भ बोर्डों का उपयोग करना

आप Android Open Source Project (AOSP) बिल्ड और प्रासंगिक हार्डवेयर-विशिष्ट बायनेरिज़ का उपयोग करके Nexus और पिक्सेल उपकरणों के लिए बिल्ड बना सकते हैं। उपलब्ध 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 संदर्भ बोर्डों का समर्थन करता है। एओएसपी इन बोर्डों के लिए कर्नेल स्रोत और बोर्ड समर्थन प्रदान करता है, इसलिए डेवलपर्स परिधीय ड्राइवरों को आसानी से बना और डिबग कर सकते हैं, कर्नेल विकास कर सकते हैं, और कम ओईएम बाधाओं के साथ अन्य कार्य कर सकते हैं।

ड्रैगनबोर्ड 845 सी

DragonBoard 845c RB3 प्लेटफॉर्म का हिस्सा है और 96boards.org पर उपलब्ध है।

ड्रैगनबोर्ड छवि

चित्र 1. ड्रैगनबोर्ड 845c

उपयोक्ता स्थान का संकलन

DragonBoard 845c पर Android को डाउनलोड करने और बनाने के लिए निम्न आदेशों का उपयोग करें।

  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. फास्टबूट मोड में बूट डीबी 845 सी।

  2. निम्नलिखित आदेश चलाएँ:

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

यदि आवश्यक हो, तो आप USB फ्लैशिंग मोड में db845c को बूट करने के बाद निम्न स्क्रिप्ट चलाकर QDL बोर्ड रिकवरी कर सकते हैं ( 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
    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/ पर बिल्ड आर्टिफैक्ट कॉपी करें ${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 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 बोर्ड

उपयोक्ता स्थान का संकलन

HiKey 960 बोर्ड पर Android को डाउनलोड करने और बनाने के लिए निम्न कमांड का उपयोग करें।

  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. डीटीबी को जोड़ना:

    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. एंड्रॉइड यूजरस्पेस बनाएं

    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

बूटलोडर उत्पन्न सीरियल नंबर को androidboot.serialno= का उपयोग करके कर्नेल को निर्यात करता है। यह पैरामीटर Android 11 और उससे पहले के कर्नेल कमांड लाइन के माध्यम से और 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 बोर्ड खदास वेबसाइट पर उपलब्ध हैं

VIM3 बोर्ड छवि

चित्र 3. खदास द्वारा VIM3 बोर्ड

उपयोक्ता स्थान का संकलन

VIM3 बोर्ड पर Android डाउनलोड करने और बनाने के लिए निम्न कमांड का उपयोग करें।

  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. VIM3 फ्लैशिंग निर्देशों के बाद बोर्ड को USB अपग्रेड मोड में रखें।

  2. प्रारंभिक छवियों को 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
    
    • यदि आपको अनुमति संबंधी समस्याएँ आती हैं, तो उपयुक्त USB नियम जोड़ने के लिए udev नियम अनुभाग देखें।
    • यदि tools/update काम नहीं करता है, तो इसके बजाय बोर्ड को फ्लैश करने के लिए pyamlboot टूल का उपयोग करें।
  3. यू-बूट बूट और फास्टबूट चलाने के बाद, निम्नलिखित कमांड चलाएँ:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. पावर केबल को अनप्लग और प्लग करें।

बोर्ड को अभी-अभी फ्लैश किए गए यू-बूट में बूट करना चाहिए और फास्टबूट मोड में प्रवेश करना चाहिए।

चमकती छवियां

  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. एंड्रॉइड यूजरस्पेस का पुनर्निर्माण करें ( कंपाइलिंग यूजरस्पेस देखें) और नया कर्नेल फ्लैश करें ( चमकती छवियां देखें)।

क्वालकॉम रोबोटिक्स बोर्ड RB5

रोबोटिक्स बोर्ड RB5 96boards.org पर उपलब्ध है।

rb5_board

चित्र 4. रोबोटिक्स बोर्ड RB5

उपयोक्ता स्थान का संकलन

RB5 पर Android डाउनलोड करने और बनाने के लिए निम्न कमांड का उपयोग करें।

  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।

  2. निम्नलिखित आदेश चलाएँ:

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

यदि आवश्यक हो, तो आप USB फ्लैशिंग मोड में RB5 बूट करने के बाद निम्न स्क्रिप्ट चलाकर QDL बोर्ड रिकवरी कर सकते हैं ( RB5 रिकवरी देखें):

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

कर्नेल का निर्माण

RB5 Android जेनेरिक कर्नेल छवि (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. कलाकृतियों में, छवि डाउनलोड करें।
    3. छवि को गज़िप करें

      gzip Image
      
    4. इसे ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ में कॉपी करें।

    5. AOSP का पुनर्निर्माण करें और डिवाइस को नए boot.img के साथ फ्लैश करें ( कंपाइलिंग यूजरस्पेस देखें)।