ການສ້າງ kernel¶
ພາກນີ້ອະທິບາຍວິທີການຕັ້ງຄ່າ device source, ກຳນົດຄ່າ deviceinfo ແລະ kernel, ແລະ ສ້າງມັນ. ຄູ່ມືນີ້ຄາດຫວັງວ່າທ່ານຈະມີຄວາມຮູ້ git ທີ່ຈຳເປັນບາງຢ່າງ, ເຊັ່ນ: cloning ແລະ pushing, ແລະ ການສ້າງ repos.
ການຕັ້ງຄ່າສະພາບແວດລ້ອມການສ້າງ (build environment) ຂອງທ່ານ¶
Assuming you have already installed the tools specified in the section on ການຕັ້ງຄ່າສະພາບແວດລ້ອມການສ້າງ (Build Environment), there are just a few more to add before your build environment is complete. Run this commmand to add them:
sudo apt install bc bison build-essential \
ca-certificates cpio curl flex git kmod libssl-dev libtinfo5 python2 \
sudo unzip wget xz-utils img2simg jq
If you use a RPM based distro such as Mageia, you run:
sudo urpmi gcc make glibc-devel bc bison \
rootcerts cpio curl flex git kmod libopenssl-devel libncurses5 python3 \
unzip wget xz android-tools jq
Note
Kernel ເກົ່າບາງອັນອາດຈະຕ້ອງການ Python 2 ໃນການສ້າງ. ຖ້າ distribution ຂອງທ່ານໄດ້ເລີກໃຊ້ Python 2 ແລ້ວ, ທ່ານອາດຈະຕ້ອງຕິດຕັ້ງມັນດ້ວຍຕົນເອງ.
ການຕັ້ງຄ່າ ແລະ ກຳນົດຄ່າ device source¶
ການສ້າງ device source¶
Clone repository ອຸປະກອນທີ່ມີຢູ່ຈາກ https://gitlab.com/ubports/porting. ທາງທີ່ດີຄວນເລືອກອຸປະກອນທີ່ມີ SoC/Android version ທີ່ຄ້າຍຄືກັນເປັນພື້ນຖານ.
ໃຫ້ແນ່ໃຈວ່າໄດ້ repository ຂອງອຸປະກອນ, ບໍ່ແມ່ນ repository ຂອງ kernel (ທ່ານຈະໄດ້ຮັບມັນໃນຂັ້ນຕອນຕໍ່ໄປ). ຕົວຢ່າງ, ສຳລັບ Fairphone 3, repository ເອີ້ນວ່າ fairphone-fp3 ແລະ android_kernel_fairphone_sdm632. ອັນທຳອິດຄືອັນທີ່ທ່ານຕ້ອງການ.
deviceinfo ບັນຈຸການຕັ້ງຄ່າທີ່ໃຊ້ໃນລະຫວ່າງຂັ້ນຕອນການສ້າງອຸປະກອນ (kernel, boot, dtb/dtbo ຖ້າຈຳເປັນ + recovery ໃນຂັ້ນຕອນການພອດພາຍຫຼັງ). ເພື່ອສ້າງ deviceinfo ຂອງທ່ານເອງ, ໃຫ້ປະຕິບັດຕາມຄູ່ມືຕໍ່ໄປ.
ການເອົາ source code ຂອງ device kernel¶
ສິ່ງທຳອິດທີ່ຕ້ອງກວດສອບຄືອຸປະກອນຂອງທ່ານມີການພອດ LineageOS ຢ່າງເປັນທາງການ ຫຼື ບໍ່ເປັນທາງການຫຼືບໍ່, ເນື່ອງຈາກນັກພອດອາດຈະໄດ້ທຳຄວາມສະອາດສ່ວນທີ່ຈຳເປັນສຳລັບ kernel sources ຂອງຜູ້ຜະລິດອຸປະກອນ ຫຼື ລວມ module kernel ແບບ out-of-tree ກັບຄືນເຂົ້າໃນ kernel tree ແລ້ວ, ເຊິ່ງເຮັດໃຫ້ຊີວິດງ່າຍຂຶ້ນສຳລັບພວກເຮົາ.
ຖ້າບໍ່ມີ, ໃຫ້ກວດສອບວ່າຜູ້ຜະລິດອຸປະກອນໃຫ້ kernel source ມາຫຼືບໍ່: ASUS, Lenovo, Samsung, ZTE ມັກຈະໃຫ້ໄຟລ໌ tarball ຂອງ kernel source ໃນເວັບໄຊທ໌ຂອງພວກເຂົາ. Motorola, Realme, OnePlus, Xiaomi ມັກຈະອັບໂຫລດ kernel source ໄປທີ່ບັນຊີ GitHub ທາງການຂອງພວກເຂົາ.
ຫຼັງຈາກທີ່ທ່ານໄດ້ kernel source ມາແລ້ວ, ທ່ານຕ້ອງອັບໂຫລດມັນໄປບ່ອນອື່ນເພື່ອທຳການດັດແກ້ ແລະ commits ສຳລັບ Ubuntu Touch. GitLab ເປັນທີ່ຕ້ອງການ ເນື່ອງຈາກເມື່ອການພອດຂອງທ່ານຖືກດຶງເຂົ້າໄປໃນອົງກອນ UBports, ມັນສາມາດຖືກສຳເນົາຈາກບ່ອນນັ້ນໄດ້ຢ່າງງ່າຍດາຍ.
ຕອນນີ້ທ່ານຄວນຈະເຮັດວຽກກັບສອງ repositories: device repo ທີ່ clone ມາ, ເຊິ່ງເກັບ deviceinfo, ແລະ kernel repo, ເຊິ່ງເກັບ/ຈະເກັບ defconfig ຂອງທ່ານ (ເບິ່ງດ້ານລຸ່ມ).
ການຊອກຫາ kernel config ທີ່ຖືກຕ້ອງຂອງທ່ານ¶
ມີສອງວິທີໃນການຊອກຫາ kernel config ທີ່ຖືກຕ້ອງຂອງທ່ານ, ດັ່ງນີ້: 1. ເອົາ config ຂອງທ່ານຈາກອຸປະກອນ ຈາກ /proc/config.gz 2. ເອົາ defconfig ຂອງທ່ານໃນ kernel source
ການເອົາ config ຂອງທ່ານຈາກອຸປະກອນ¶
ມັນເປັນໄປໄດ້ທີ່ຈະດຶງ kernel config ປັດຈຸບັນຂອງທ່ານຈາກອຸປະກອນ, ຖ້າການຕັ້ງຄ່ານັ້ນມີຢູ່ເປັນ /proc/config.gz ໃນອຸປະກອນ. ເພື່ອດຶງ config ນີ້, ໃຫ້ສຳເນົາໄຟລ໌ /proc/config.gz ຈາກອຸປະກອນຂອງທ່ານໄປທີ່ຄອມພິວເຕີຂອງທ່ານ. ຈາກນັ້ນ, run zcat ໃສ່ໄຟລ໌ເພື່ອເອົາຜົນລັພຂອງມັນ. ບັນທຶກອັນນີ້ເປັນ .config ໃນ kernel source ຂອງທ່ານ. ຫຼັງຈາກນີ້, run ARCH=<ສັດຖາປັດຕະຍະກຳຂອງອຸປະກອນທ່ານ> make savedefconfig, ເຊິ່ງຈະປ່ຽນ config ເຕັມຮູບແບບຂອງທ່ານໃຫ້ເປັນ defconfig. ສຳເນົາ defconfig ໄປທີ່ arch/<ສັດຖາປັດຕະຍະກຳຂອງອຸປະກອນທ່ານ>/configs/<codename ຂອງອຸປະກອນທ່ານ>_defconfig.
ດຳເນີນການຕໍ່ກັບຄູ່ມືເພື່ອ patch config ຂອງທ່ານ.
ການເອົາ defconfig ຂອງທ່ານໃນ kernel source¶
ເພື່ອຊອກຫາ defconfig ຂອງທ່ານຈາກ kernel source, ທ່ານຈະຕ້ອງຊອກຫາມັນໃນໄດເລກະທໍລີ arch/<ສັດຖາປັດຕະຍະກຳຂອງອຸປະກອນທ່ານ/configs. defconfig ນີ້ສາມາດຖືກຕັ້ງຊື່ໄດ້ຫຼາຍແບບ, ເຊັ່ນ <codename ຂອງອຸປະກອນທ່ານ>_defconfig, ຫຼື ຊື່ແປກໆ ເຊັ່ນ k61v64_debug_defconfig. ຖ້າທ່ານໄດ້ kernel source ມາຈາກ OEM, ບາງຄັ້ງມັນຈະລວມມີສະຄຣິບ build.sh ເຊິ່ງອ້າງອີງເຖິງ defconfig ທີ່ຕ້ອງການ. ຖ້າບໍ່ດັ່ງນັ້ນ ຖ້າທ່ານໄດ້ kernel source ມາຈາກບ່ອນອື່ນ ເຊັ່ນ LineageOS, device tree ຂອງພວກເຂົາກໍ່ອ້າງອີງເຖິງ defconfig ເຊັ່ນກັນ.
ຫຼັງຈາກຊອກຫາ defconfig ຂອງທ່ານໄດ້ແລ້ວ, ໃຫ້ດຳເນີນການຕໍ່ກັບຄູ່ມືເພື່ອ patch ມັນ.
ການນຳໃຊ້ patch ຂັ້ນຕ່ຳໃສ່ defconfig ຂອງທ່ານ¶
ເພື່ອໃຫ້ Ubuntu Touch ສາມາດບູດໄດ້ສຳເລັດ, ພວກເຮົາຈຳເປັນຕ້ອງເປີດໃຊ້ configs ບາງອັນທີ່ OS ຕ້ອງການ. ເລີ່ມຕົ້ນໂດຍການເຂົ້າໄປໃນໄດເລກະທໍລີ kernel ຂອງທ່ານ, ແລະ ເຂົ້າໄປໃນ arch/<ສັດຖາປັດຕະຍະກຳຂອງອຸປະກອນທ່ານ>/configs, ເຊິ່ງທ່ານຈະຕ້ອງເພີ່ມໄຟລ໌ໃໝ່ທີ່ຊື່ວ່າ halium.config. ໃນໄຟລ໌ນີ້, ໃຫ້ເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້:
CONFIG_DEVTMPFS=yCONFIG_FHANDLE=yCONFIG_SYSVIPC=yCONFIG_IPC_NS=yCONFIG_NET_NS=yCONFIG_PID_NS=yCONFIG_USER_NS=yCONFIG_UTS_NS=yCONFIG_VT=y
ຫຼັງຈາກນີ້, ບັນທຶກ ແລະ ປິດໄຟລ໌ນີ້. Commit ມັນເຂົ້າໃນ kernel repo ຂອງທ່ານຖ້າທ່ານຕ້ອງການ, ເພາະວ່າຊື່ config ນີ້ຈະຖືກເພີ່ມໃນ deviceinfo.
ມາຮອດຈຸດນີ້ ທ່ານເກືອບຈະສຳເລັດການຕັ້ງຄ່າເບື້ອງຕົ້ນສຳລັບ kernel ແລ້ວ, ໃຫ້ໄປຕໍ່ທີ່ການກຳນົດຄ່າ deviceinfo ແລະ ການສ້າງ.
ຫຼັງຈາກທີ່ທ່ານໄດ້ບູດ OS ສຳເລັດແລ້ວ, ທ່ານສາມາດໄປຕໍ່ທີ່ການ patch defconfig ຢ່າງສົມບູນໃນຂັ້ນຕອນຕໍ່ໄປ.
ໝາຍເຫດ: ທ່ານອາດຈະສັບສົນວ່າເປັນຫຍັງພວກເຮົາຈຶ່ງແກ້ໄຂໄຟລ໌ແຍກຕ່າງຫາກ, halium.config, ແທນທີ່ຈະເປັນ <codename>_defconfig. ໄຟລ໌ເຫຼົ່ານີ້ຈະຖືກເລືອກຮ່ວມກັນໃນ deviceinfo, "ລວມ" ພວກມັນເຂົ້າກັນ. ດ້ວຍວິທີນີ້, ພວກເຮົາຈະຮັກສາການປ່ຽນແປງໃຫ້ສະອາດ ແລະ ອ່ານງ່າຍ.
ການຕື່ມຂໍ້ມູນ deviceinfo ຂອງທ່ານ¶
ຊື່ອຸປະກອນເຕັມ, ເຊັ່ນ Redmi 9C ຫຼື Redmi Note 10S. ປ່ຽນແທນຕາມຄວາມຈຳເປັນ.
deviceinfo_name="Redmi 9C"
ຊື່ຂອງຜູ້ຜະລິດອຸປະກອນ. ປ່ຽນຕາມຄວາມຕ້ອງການ.
deviceinfo_manufacturer="Xiaomi"
Codename ຂອງໂທລະສັບ. ສິ່ງນີ້ສາມາດໄດ້ຮັບໂດຍການຊອກຫາໃນ google ເຊັ່ນ: "<ຊື່ອຸປະກອນ> codename". ປ່ຽນແທນຊື່ອຸປະກອນດ້ວຍຊື່ເຕັມຂອງໂທລະສັບຂອງທ່ານ. ປ່ຽນແທນ codename ດ້ານລຸ່ມດ້ວຍຂອງທ່ານເອງເຊັ່ນກັນ.
deviceinfo_codename="angelica"
ສັດຖາປັດຕະຍະກຳ (Architecture) ຂອງ kernel ຂອງທ່ານ. ອຸປະກອນສ່ວນຫຼາຍທີ່ປ່ອຍຫຼັງປີ 2015 ມີ CPU ARM64, ແຕ່ບາງອັນກໍ່ຍັງເປັນ armhf. ສຳລັບອຸປະກອນ ARM64, ໃຫ້ຕັ້ງຄ່າເປັນ "aarch64". ສຳລັບອຸປະກອນ armhf, ໃຫ້ຕັ້ງຄ່າເປັນ "armv7".
deviceinfo_arch="aarch64"
ອັນນີ້ກຳນົດ git repo ທີ່ kernel ຂອງທ່ານຕັ້ງຢູ່. ທ່ານຄວນຈະມີລິ້ງນີ້ຢູ່ໃນມືແລ້ວຖ້າທ່ານປະຕິບັດຕາມພາກທີ 1, ຖ້າບໍ່ມີໃຫ້ກັບໄປເບິ່ງມັນອີກຄັ້ງ. ປ່ຽນແທນລິ້ງດ້ານລຸ່ມດ້ວຍຂອງທ່ານເອງ.
deviceinfo_kernel_source="https://github.com/muhammad23012009/android_kernel_xiaomi_dandelion"
Branch ຂອງ kernel ມາຕໍ່ໄປ. ສິ່ງນີ້ສາມາດໄດ້ຮັບຢ່າງງ່າຍດາຍໂດຍການເບິ່ງແຖບພາຍໃຕ້ Code tab ໃນ GitHub ຫຼື ແຖບຢູ່ເບື້ອງຊ້າຍດ້ານເທິງໃນ GitLab. ປ່ຽນແທນຕາມຄວາມຈຳເປັນ.
deviceinfo_kernel_source_branch="halium10-new"
Defconfig ເປັນສ່ວນສຳຄັນຂອງຂັ້ນຕອນການ compile kernel. ສ່ວນຫຼາຍແລ້ວທ່ານສາມາດຊອກຫາ defconfig ນີ້ໃນ kernel source ຂອງທ່ານ, ເຊິ່ງ path ຄື "arch/<architecture ຂອງທ່ານ>/configs". ຊື່ຂອງ defconfig ມັກຈະຖືກສ້າງຂຶ້ນເຊັ່ນ "<codename ຂອງທ່ານ>_defconfig". ຫຼັງຈາກຊອກຫາ defconfig ຂອງທ່ານໄດ້ແລ້ວ, ໃຫ້ປ່ຽນແທນມັນຕາມຄວາມຈຳເປັນ. ທ່ານຍັງຕ້ອງເພີ່ມ
halium.configໃນຊ່ອງນີ້, ເນື່ອງຈາກການເພີ່ມ kernel config patches ຂ້າງເທິງ. (ຖ້າທ່ານຍັງບໍ່ສາມາດຊອກຫາ defconfig ໄດ້ ໃຫ້ອ້າງອີງເຖິງພາກ "Finding your defconfig")
deviceinfo_kernel_defconfig="angelica_defconfig halium.config"
The kernel cmdline ແມ່ນໜຶ່ງໃນສິ່ງສຳຄັນທີ່ຈຳເປັນເພື່ອເຮັດໃຫ້ kernel ບູດ. ມັນມີພາລາມິເຕີພິເສດທີ່ຊ່ວຍໃຫ້ kernel ກຳນົດວ່າຄຸນສົມບັດ/ສິ່ງໃດທີ່ຕ້ອງເປີດໃຊ້, ແລະ ອັນໃດທີ່ຕ້ອງປິດໃຊ້ງານ. Ubuntu Touch rootfs ຍັງອາໄສ cmdlines ທີ່ສຳຄັນບາງອັນທີ່ຈຳເປັນຕໍ່ການບູດ, ໂດຍສະເພາະແມ່ນ "console=tty0". ເພື່ອປັບສິ່ງນີ້ໃຫ້ເຂົ້າກັບອຸປະກອນຂອງທ່ານ, ລອງ unpack boot image ຂອງທ່ານ (ພາກ 8.3) ແລະ ສຳເນົາ cmdline ຈາກບ່ອນນັ້ນ, ຫຼື ຂໍຄວາມຊ່ວຍເຫຼືອຈາກ LineageOS device tree ຖ້າມີ. "console=tty0" ເປັນສິ່ງຈຳເປັນສຳລັບ cmdline ແລະ ບໍ່ຄວນຖືກລຶບອອກບໍ່ວ່າກໍລະນີໃດ. ສ່ວນທີ່ເຫຼືອສາມາດລຶບອອກໄດ້ ແລະ ທ່ານສາມາດປັບສິ່ງເຫຼົ່ານີ້ໃຫ້ເຂົ້າກັບອຸປະກອນຂອງທ່ານ.
console=tty0ແມ່ນຂໍ້ກຳນົດສຳລັບ rootfs ເພື່ອໃຫ້ບູດໄດ້ຢ່າງຖືກຕ້ອງ.systempartຈະຖືກເພີ່ມຖ້າທ່ານຕ້ອງການບູດ rootfs ຂອງທ່ານຈາກ system partition. ມັນຄວນຈະຊີ້ໄປທີ່ system partition ຂອງທ່ານ.
deviceinfo_kernel_cmdline="console=tty0 bootopt=64S3,32N2,64N2 systempart=/dev/mapper/system"
ເພີ່ມສິ່ງນີ້ໃສ່ deviceinfo ຂອງທ່ານຖ້າທ່ານຕ້ອງການ compile kernel ຂອງທ່ານດ້ວຍ clang. ອຸປະກອນສ່ວນຫຼາຍທີ່ປ່ອຍມາກັບ Android 10 ແລະ ຫຼັງຈາກນັ້ນ ສ້າງ kernel ຂອງພວກເຂົາດ້ວຍ clang. ຖ້າທ່ານບໍ່ຕ້ອງການສ້າງດ້ວຍ clang, ໃຫ້ຂ້າມລາຍການນີ້ໄປເລີຍ.
deviceinfo_kernel_clang_compile="true"
ຕ້ອງການພຽງແຕ່ຖ້າທ່ານຕ້ອງການໃຊ້ LLD ເປັນ linker ຂອງທ່ານ ແລະ ເປີດໃຊ້ LTO. ສຳລັບ kernel ເກົ່າສ່ວນຫຼາຍ LTO ຈະໃຊ້ບໍ່ໄດ້. ຖ້າທ່ານຕ້ອງການໃຊ້ມັນ ໃຫ້ເພີ່ມລາຍການນີ້ໃສ່ deviceinfo ຂອງທ່ານ, ຖ້າບໍ່ດັ່ງນັ້ນໃຫ້ຂ້າມມັນໄປ.
deviceinfo_kernel_use_lld="true"
Config ນີ້ອະນຸຍາດໃຫ້ທ່ານ compile kernel ຂອງທ່ານດ້ວຍ LLVM ແລະ LTO, ຖ້າມັນຮອງຮັບ. ນີ້ເປັນວິທີທີ່ດີໃນການລະບຸ
clangແລະld.lldຮ່ວມກັນ. ປົກກະຕິແລ້ວຕ້ອງການໂດຍອຸປະກອນ GKI. (ເມື່ອເປີດໃຊ້ແລ້ວ, ທ່ານບໍ່ຈຳເປັນຕ້ອງລະບຸdeviceinfo_kernel_use_lld)
deviceinfo_kernel_llvm_compile="true"
ໃຊ້ອັນນີ້ເພື່ອເປີດໃຊ້ 'dtc_ext' ສຳລັບການ compile dtb/dtbo ຂອງທ່ານ. ໃຊ້ສະເພາະກໍລະນີທີ່ທ່ານຮູ້ວ່າທ່ານກຳລັງເຮັດຫຍັງຢູ່. compiler ເລີ່ມຕົ້ນໃຊ້ໄດ້ເກືອບທຸກຄັ້ງ.
deviceinfo_kernel_use_dtc_ext="true"
ໃຊ້ຕົວເລືອກນີ້ເພື່ອລະບຸຊື່ image ຂອງ kernel ຫຼັງຈາກ kernel compile ແລ້ວ. ສ່ວນຫຼາຍແລ້ວຕົວເລືອກນີ້ບໍ່ຈຳເປັນ, ດັ່ງນັ້ນທ່ານສາມາດເອົາມັນອອກຈາກ deviceinfo ຂອງທ່ານໄດ້. ຖ້າທ່ານຕ້ອງການມັນ, ໃຫ້ປັບຊື່ image ຕາມຄວາມຈຳເປັນ.
deviceinfo_kernel_image_name="Image.gz"
ເພື່ອລະບຸ algorithm ການບີບອັດ ramdisk ຂອງທ່ານ, ໃຫ້ໃຊ້ຕົວເລືອກດ້ານລຸ່ມ. ມັນຖືກຕັ້ງເປັນ gzip ໂດຍຄ່າເລີ່ມຕົ້ນ. ສ່ວນຫຼາຍມີປະໂຫຍດສຳລັບອຸປະກອນ GKI.
deviceinfo_ramdisk_compression="lz4"
ເພີ່ມຕົວເລືອກນີ້ເພື່ອລະບຸເວີຊັນ Halium ຂອງທ່ານ. ຮອງຮັບເຖິງ Halium 13 ໃນຂະນະນີ້.
deviceinfo_halium_version="11"
ຕົວເລືອກນີ້ກຳນົດເວີຊັນ header ຂອງ boot image. ມັນສຳຄັນທີ່ທ່ານຕ້ອງເຮັດໃຫ້ຖືກຕ້ອງ, ຖ້າບໍ່ດັ່ງນັ້ນອຸປະກອນຂອງທ່ານອາດຈະບໍ່ບູດ. ອຸປະກອນທີ່ເປີດຕົວກັບ Android ເວີຊັນຕ່ຳກວ່າ 8 (Oreo) ໃຊ້ header 0, Android 9 (Pie) ໃຊ້ເວີຊັນ 1, Android 10 ໃຊ້ເວີຊັນ 2, ແລະ ອຸປະກອນ GKI ໃຊ້ເວີຊັນ 3/4 (ຂຶ້ນກັບເວີຊັນ Android ທີ່ພວກມັນຖືກປ່ອຍອອກມາ, Android 12 ກັບ GKI ໃຊ້ເວີຊັນ 4).
deviceinfo_bootimg_header_version="2"
ໃຊ້ຕົວເລືອກນີ້ເພື່ອລະບຸ dtb ທີ່ສ້າງໄວ້ລ່ວງໜ້າ (prebuilt) ທີ່ທ່ານຫາໄດ້. Path ແມ່ນທຽບກັບໄດເລກະທໍລີທີ່ທ່ານກຳລັງແກ້ໄຂໄຟລ໌ deviceinfo. ແກ້ໄຂຊື່ dtb ຕາມທີ່ທ່ານມີ. ຖ້າເວີຊັນ header ຂອງທ່ານໃຫຍ່ກວ່າ ຫຼື ເເທົ່າກັບ 3 (ອຸປະກອນ GKI), ສິ່ງນີ້ຈະລວມ dtb ໃນ vendor_boot ຂອງທ່ານ.
deviceinfo_bootimg_prebuilt_dtb="mt6765.dtb"
ຕົວເລືອກນີ້ໃຊ້ dtb ທີ່ສ້າງຂຶ້ນໂດຍ kernel ຂອງທ່ານໃນຂະນະ compile, ຫຼາຍ dtb ສາມາດລະບຸໄດ້ທີ່ນີ້ ເຊັ່ນ: "mediatek/mt6765.dtb mediatek/angelica.dtb" path ທີ່ສະຄຣິບຊອກຫາ dtb ດ້ວຍຕົວເລືອກນີ້ແມ່ນ "KERNEL_OBJ/arch/<architecture>/boot/dts" ເຊິ່ງ <architecture> ຈະເປັນ arm64 ຫຼື arm ຂຶ້ນກັບສິ່ງທີ່ທ່ານຕັ້ງໃນ deviceinfo_arch (aarch64 ແມ່ນ arm64 ໃນພາສາຂອງ kernel) ຖ້າເວີຊັນ header ຂອງທ່ານໃຫຍ່ກວ່າ ຫຼື ເທົ່າກັບ 3 (ອຸປະກອນ GKI), ສິ່ງນີ້ຈະລວມ dtb ໃນ vendor_boot ຂອງທ່ານ.
deviceinfo_dtb="mediatek/mt6765.dtb"
ການເລືອກອັນນີ້ຈະສ້າງຮູບພາບ DT (DT image) ທີ່ທ່ານເລືອກເຂົ້າໄປໃນ boot image. Path ແມ່ນທຽບກັບໄດເລກະທໍລີປັດຈຸບັນທີ່ທ່ານກຳລັງແກ້ໄຂ deviceinfo. (ໝາຍເຫດ: ອັນນີ້ຕ້ອງການແທ້ໆໃນອຸປະກອນ Samsung/Exynos ເທົ່ານັ້ນ.)
deviceinfo_bootimg_prebuilt_dt="exynos8890-dt.img"
ໃຊ້ອັນນີ້ເພື່ອສົ່ງ prebuilt dtbo ໃນ OTAs ຂອງທ່ານ ແລະ ເພື່ອສ້າງ recovery ຂອງທ່ານດ້ວຍ dtbo ນີ້ ຖ້າມັນບໍ່ໄດ້ຖືກ compile ແລ້ວ. Path ແມ່ນທຽບກັບໄດເລກະທໍລີ build ຂອງທ່ານ. ແກ້ໄຂຕາມຕ້ອງການ.
deviceinfo_prebuilt_dtbo="angelica-dtbo.img"
ໃນກໍລະນີທີ່ທ່ານບໍ່ຕ້ອງການສົ່ງ DTBO image ໃນ OTA, ການເລືອກອັນນີ້ຈະພຽງແຕ່ເອົາ dtbo ອອກຈາກແພັກເກັດ OTA ແຕ່ recovery ຈະຍັງຄົງຖືກ compile ກັບ dtbo ນີ້, ຖ້າ dtbo ບໍ່ໄດ້ຖືກ compile ແລ້ວ.
deviceinfo_skip_dtbo_partition="true"
ຖ້າທ່ານຕ້ອງການ compile DTBO ຂອງທ່ານຈາກ kernel, ໃຫ້ໃຊ້ຕົວເລືອກນີ້ເພື່ອເລືອກໄຟລ໌ dtbo ທີ່ຖືກ compile ໃນ kernel out directory. Path ທີ່ຕົວເລືອກນີ້ຈະຊອກຫາແມ່ນ KERNEL_OBJ/arch/<architecture>/boot/dts. ສາມາດລະບຸໄດ້ຫຼາຍ dtb ດັ່ງທີ່ສະແດງໃນຕົວຢ່າງ. ປັບຊື່ຕາມຄວາມຕ້ອງການຂອງທ່ານ. dtbo image ທີ່ໄດ້ຈະຖືກສົ່ງໃນ OTA ຖ້າຕົວເລືອກ skip_dtbo_partition ບໍ່ຖືກເລືອກ, ແລະ ໃນກໍລະນີໃດກໍ່ຕາມ recovery ຈະຖືກສ້າງຂຶ້ນດ້ວຍ dtbo ນີ້ເຊັ່ນກັນ. ຕົວເລືອກນີ້ບໍ່ເຂົ້າກັນກັບຕົວເລືອກ prebuilt dtbo.
deviceinfo_dtbo="mediatek/galahad.dtbo mediatek/lancelot.dtbo"
ການໃຊ້ອັນນີ້ຈະກຳນົດຊື່ board ໃນ boot image ຂອງທ່ານ, ເຊິ່ງ bootloader ບາງອັນຕ້ອງການເພື່ອບູດ image ໄດ້ສຳເລັດ. ໃຊ້ຕົວເລືອກນີ້ສະເພາະກໍລະນີທີ່ stock boot image ຂອງທ່ານມີ flag ນີ້ຕັ້ງຢູ່ໃນ header ຂອງມັນ. ແກ້ໄຂຕາມທີ່ທ່ານຕ້ອງການ.
deviceinfo_bootimg_board="EXYNOS4412"
ໃຊ້ຕົວເລືອກນີ້ເພື່ອ pad (ຕື່ມຂະໜາດ) boot image ຂອງທ່ານໃຫ້ເປັນຂະໜາດສະເພາະ. ຍັງຈຳເປັນຖ້າທ່ານຕ້ອງການແນບ vbmeta image ຫຼື ແນບ hash footer ໃສ່ image ຂອງທ່ານ. ປ່ຽນຂະໜາດເປັນຂະໜາດ stock boot image ຂອງທ່ານ. (ໝາຍເຫດ: ຂະໜາດຖືກປະກາດເປັນ bytes).
deviceinfo_bootimg_partition_size="67713847"
ຂ້ອນຂ້າງຈະແຈ້ງໃນຕົວມັນເອງ. ຕັ້ງຄ່າເປັນ true ຖ້າອຸປະກອນຂອງທ່ານຕ້ອງການ vbmeta image ແນບມາດ້ວຍ (ບໍ່ແມ່ນກໍລະນີສຳລັບອຸປະກອນສ່ວນຫຼາຍທີ່ມີ vbmeta partition ແຍກຕ່າງຫາກ).
deviceinfo_bootimg_append_vbmeta="true"
ໃຊ້ຕົວເລືອກນີ້ເມື່ອທ່ານຕ້ອງການສ້າງ recovery.img ສຳລັບການບູດ UBports recovery (ຕ້ອງການແທ້ໆເມື່ອທ່ານກຳລັງສະຫຼຸບການພອດ). ໃນກໍລະນີສ່ວນຫຼາຍທ່ານຈະຕ້ອງການຂ້າມອັນນີ້ໄປໃນຕອນເລີ່ມຕົ້ນຂອງການພອດ ແລະ ເພີ່ມມັນເມື່ອທ່ານພະຍາຍາມເອົາມັນເຂົ້າໃນ installer. ການຕັ້ງຄ່າເປັນ true ຈະສ້າງ recovery ແລະ ການຕັ້ງຄ່າເປັນ false ຫຼື ຂ້າມລາຍການທັງໝົດຈະເຮັດໃຫ້ມັນບໍ່ຖືກສ້າງ.
deviceinfo_has_recovery_partition="true"
ໃຊ້ອັນນີ້ເພື່ອ pad (ຕື່ມຂະໜາດ) recovery image ຂອງທ່ານໃຫ້ເປັນຂະໜາດສະເພາະ. ຍັງເປັນຂໍ້ກຳນົດຖ້າທ່ານຕ້ອງການເພີ່ມ hash footer ໃສ່ image ຂອງທ່ານ. ປ່ຽນແທນຂະໜາດຈາກ stock recovery image ຂອງທ່ານ. (ຈະເຮັດວຽກພຽງແຕ່ຖ້າທ່ານກຳລັງສ້າງ recovery!)
deviceinfo_recovery_partition_size="67713847"
ອັນນີ້ຕ້ອງການແທ້ໆສຳລັບ Samsung ເກົ່າ/ໃໝ່ ບາງລຸ້ນທີ່ກວດສອບ "SEAndroid" footer ໃນ boot images ຂອງພວກເຂົາ ເພື່ອກວດສອບວ່າ boot images ເປັນທາງການຫຼືບໍ່. ຖ້າ bootloader ບໍ່ພົບມັນ ຈະສົ່ງຜົນໃຫ້ມີເສັ້ນສີແດງທີ່ບໍ່ງາມຢູ່ດ້ານເທິງຂອງໜ້າຈໍ. ການເພີ່ມສິ່ງນີ້ໃສ່ deviceinfo ຂອງທ່ານຈະແນບ string ນີ້ໃສ່ boot image. (ລະວັງ! ການໃຊ້ອັນນີ້ກັບອຸປະກອນອື່ນອາດເຮັດໃຫ້ມັນບໍ່ບູດ image!)
deviceinfo_bootimg_tailtype="SEAndroid"
Config ນີ້ກຳນົດວ່າ modules ຄວນຖືກ compile ແລະ ຕິດຕັ້ງລົງໃນ rootfs ຫຼືບໍ່. ການຂ້າມ config ນີ້ຈະສົ່ງຜົນໃຫ້ເກີດພຶດຕິກຳເລີ່ມຕົ້ນ, ນັ້ນຄື modules ຖືກ compile ແລະ ຕິດຕັ້ງລົງໃນ rootfs. ການເພີ່ມຕົວເລືອກນີ້ໃສ່ deviceinfo ຂອງທ່ານ ແລະ ຕັ້ງຄ່າເປັນ true (ດັ່ງທີ່ສະແດງ) ຈະປິດການ compile modules. ຕ້ອງການແທ້ໆໃນກໍລະນີທີ່ທ່ານກຳລັງເຮັດສິ່ງທີ່ແອດວານຊ໌.
deviceinfo_kernel_disable_modules="true"
ຕົວເລືອກນີ້ຕິດຕັ້ງໄຟລ໌ overlay ທັງໝົດ (ໃນໄດເລກະທໍລີ overlay/) ລົງໃນ /system/opt/halium-overlay, ດັ່ງນັ້ນຈຶ່ງ overlay ໄຟລ໌ທັບໄຟລ໌ທີ່ມີຢູ່ໃນ rootfs ແທນທີ່ຈະປ່ຽນແທນພວກມັນທັງໝົດ. ນີ້ເປັນສິ່ງຈຳເປັນສຳລັບ 20.04 ເປັນຕົ້ນໄປ, ແຕ່ບໍ່ສາມາດໃຊ້ກັບ 16.04.
deviceinfo_use_overlaystore="true"
ຕົວເລືອກນີ້ສ່ວນຫຼາຍຖືກໃຊ້ໃນອຸປະກອນ Qualcomm ບາງລຸ້ນ. ການເພີ່ມສິ່ງນີ້ໃສ່ deviceinfo ຂອງທ່ານຈະລວມ dtbo ທັງໝົດຂອງທ່ານກັບ dtbs. ໃຊ້ສະເພາະກໍລະນີທີ່ທ່ານແນ່ໃຈວ່າທ່ານຕ້ອງການສິ່ງນີ້.
deviceinfo_kernel_apply_overlay="true"
ເພີ່ມການຕັ້ງຄ່ານີ້ໃສ່ deviceinfo ຂອງທ່ານເມື່ອທ່ານຕ້ອງການລະບຸຂະໜາດຄົງທີ່ສຳລັບ rootfs ຂອງທ່ານທີ່ຈະຖືກແຟລດໃສ່ system image. ຄ່າເລີ່ມຕົ້ນແມ່ນ 3000M ເມື່ອບໍ່ໄດ້ຕັ້ງຕົວເລືອກ. ໃຊ້ສະເພາະກໍລະນີທີ່ທ່ານຕ້ອງການ.
deviceinfo_system_partition_size="4000M"
Config ນີ້ກ່ຽວຂ້ອງກັບອຸປະກອນໃໝ່ທີ່ເປີດຕົວກັບບ່ອນເກັບຂໍ້ມູນ UFS ເທົ່ານັ້ນ
deviceinfo_rootfs_image_sector_size="4096"
ຕໍ່ໄປແມ່ນ flash offsets. ທ່ານສາມາດບໍ່ສົນໃຈສິ່ງເຫຼົ່ານີ້ຖ້າທ່ານກຳລັງສ້າງພຽງແຕ່ boot.img ສຳລັບອຸປະກອນ GKI, ແຕ່ຈຳເປັນຖ້າທ່ານຕ້ອງການສ້າງ vendor_boot.img. offsets ເຫຼົ່ານີ້ຈະຖືກນຳໃຊ້ໂດຍອັດຕະໂນມັດສຳລັບ vendor_boot ຖ້າເວີຊັນ header ຂອງທ່ານໃຫຍ່ກວ່າ ຫຼື ເທົ່າກັບ 3. ຄູ່ມືການແຍກພວກມັນອອກມາມີດັ່ງນີ້:
ການແຍກເອົາຄ່າຈາກ stock boot.img/vendor_boot.img¶
ສຳລັບການພອດໃດໆທີ່ຈະບູດ, ບາງຄ່າຕ້ອງຖືກດຶງມາຈາກ stock boot.img. ກ່ອນອື່ນໝົດ, ພະຍາຍາມເອົາ stock firmware ຂອງທ່ານ. ຜູ້ຜະລິດບາງລາຍ ເຊັ່ນ Samsung ມັກຈະເຂົ້າລະຫັດ firmware ຂອງພວກເຂົາ, ແຕ່ກໍ່ຍັງມີເຄື່ອງມືບາງຢ່າງທີ່ສາມາດເອົາພວກມັນໄດ້. ລາຍອື່ນໆ ເຊັ່ນ Xiaomi ໃຫ້ firmware, ແຕ່ທ່ານຕ້ອງໃຊ້ Google ເພື່ອຊອກຫາມັນ. ແລະ ຍັງມີ Google ຜູ້ໃຈດີທີ່ໃຫ້ firmware binaries ເຕັມຮູບແບບທີ່ເຂົ້າເຖິງໄດ້ງ່າຍ. ສະຫຼຸບສັ້ນໆ, ທ່ານຕ້ອງຊອກຫາ stock firmware ຂອງທ່ານຢ່າງໜ້ອຍທີ່ສຸດ, ແລະ ຈາກນັ້ນເອົາ boot.img. ເມື່ອທ່ານໄດ້ boot.img ແລ້ວ, ໃຫ້ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປນີ້:
ສ້າງໄດເລກະທໍລີທີ່ທ່ານຈະເກັບຂໍ້ມູນທີ່ unpack ທັງໝົດຂອງທ່ານ. ມັນສາມາດຢູ່ໃສກໍ່ໄດ້, ແລະ ສາມາດມີຊື່ຫຍັງກໍ່ໄດ້. ສຳລັບຕອນນີ້, ພວກເຮົາຈະເອີ້ນມັນວ່າ temp.
Run "mkdir ~/temp" ເພື່ອສ້າງໄດເລກະທໍລີ ແລະ "cd ~/temp" ເພື່ອເຂົ້າໄປທີ່ນັ້ນ.
ຕອນນີ້ເພື່ອ unpack boot image ມີຫຼາຍເຄື່ອງມືທີ່ໃຊ້ເຮັດໄດ້. ໜຶ່ງໃນນັ້ນແມ່ນ python script ທີ່ໃຫ້ໂດຍ Android. ສຳລັບຕອນນີ້ພວກເຮົາຈະໃຊ້ອັນນີ້. ເພື່ອດາວໂຫລດມັນເຂົ້າໄປໃນໄດເລກະທໍລີເຮັດວຽກປັດຈຸບັນຂອງທ່ານ ໃຫ້ run "wget https://raw.githubusercontent.com/LineageOS/android_system_tools_mkbootimg/lineage-19.1/unpack_bootimg.py" ນີ້ຈະດາວໂຫລດສະຄຣິບ unpack_bootimg.py, ເຊິ່ງຕອນນີ້ທ່ານຈະໃຊ້ມັນເພື່ອດຶງ kernel offsets ແລະ ຄ່າອື່ນໆທີ່ຄ້າຍຄືກັນ.
ເອົາ boot.img ຂອງທ່ານເຂົ້າໄປໃນໄດເລກະທໍລີ temp.
ຕອນນີ້ run ສະຄຣິບ. syntax ປົກກະຕິຄື "python3 unpack_bootimg.py --boot_img <boot.img ຫຼື vendor_boot.img> --out out" ນີ້ຈະ unpack boot image, ເກັບໄຟລ໌ຜົນລັພໃນໄດເລກະທໍລີ out, ແລະ ມັນຈະສະແດງ offsets ເທິງໜ້າຈໍ.
ຕົວຢ່າງຜົນລັພສຳລັບ boot.img ຈະມີລັກສະນະດັ່ງນີ້:
boot magic: ANDROID!
kernel_size: 11399060
ທີ່ຢູ່ໂຫຼດເຄີເນີນ (kernel load address): 0x40080000
ຂະໜາດ ramdisk: 6576255
ທີ່ຢູ່ໂຫຼດ ramdisk: 0x51b00000
ຂະໜາດ bootloader ທີສອງ: 0
ທີ່ຢູ່ໂຫຼດ bootloader ທີສອງ: 0xc0ff0000
ທີ່ຢູ່ໂຫຼດແທັກເຄີເນີນ (kernel tags load address): 0x47880000
ຂະໜາດໜ້າ (page size): 2048
ເວີຊັນລະບົບປະຕິບັດການ (os version): 10.0.0
ລະດັບການແພັດລະບົບປະຕິບັດການ (os patch level): ບໍ່ມີ
ເວີຊັນເຮດເດີຂອງບູດອິມເມດ (boot image header version): 2
ຊື່ຜະລິດຕະພັນ:
ອາກິວເມັນຄຳສັ່ງ (command line args): bootopt=64S3,32N2,64N2 buildvariant=user systempart=/dev/mapper/system:ro
ອາກິວເມັນຄຳສັ່ງເພີ່ມເຕີມ:
ຂະໜາດ recovery dtbo: 0
ອັອຟເຊັດ recovery dtbo (offset): 0x0000000000000000
ຂະໜາດ boot header: 1660
ຂະໜາດ dtb: 216417
ທີ່ຢູ່ dtb: 0x0000000047880000
ສ່ວນສຳລັບ vendor_boot.img ຈະມີລັກສະນະດັ່ງນີ້:
boot magic: VNDRBOOT
ເວີຊັນເຮດເດີຂອງເວນເດີບູດອິມເມດ (vendor boot image header version): 4
ຂະໜາດໜ້າ (page size): 0x00001000
ທີ່ຢູ່ໂຫຼດເຄີເນີນ (kernel load address): 0x10008000
ທີ່ຢູ່ໂຫຼດ ramdisk: 0x10000000
ຂະໜາດທັງໝົດຂອງເວນເດີແຣມດິດ (vendor ramdisk total size): 13685168
ອາກິວເມັນຄຳສັ່ງຂອງເວນເດີ (vendor command line args): bootconfig loop.max_part=7
ທີ່ຢູ່ໂຫຼດແທັກເຄີເນີນ (kernel tags load address): 0x10000000
ຊື່ຜະລິດຕະພັນ: SRPUK23A007
ຂະໜາດເຮດເດີຂອງເວນເດີບູດອິມເມດ: 2128
ຂະໜາດ dtb: 231604
ທີ່ຢູ່ dtb: 0x0000000011f00000
ຂະໜາດຕາຕະລາງເວນເດີແຣມດິດ: 216
ຂະໜາດເວນເດີບູດຄອນຟິກ: 28
ນີ້ຄືຈຸດທີ່ໜ້າສົນໃຈ.
"kernel load address" ແມ່ນ kernel offset. ຄ່າທີ່ຢູ່ຫຼັງຈຸດສອງເມັດຄືສິ່ງທີ່ທ່ານຕ້ອງການ, ຕົວຢ່າງ: 0x40080000. ໃນກໍລະນີຂອງທ່ານ ຄ່ານີ້ຈະແຕກຕ່າງອອກໄປ.
"ramdisk load address" ຈະເປັນ ramdisk offset ຂອງທ່ານ. ໃຫ້ເອົາຄ່າທີ່ຢູ່ຖັດຈາກມັນ. ຕົວຢ່າງ: 0x51b00000.
"second bootloader load address" ສ່ວນຫຼາຍແມ່ນບໍ່ຈຳເປັນໃນມາດຕະຖານປັດຈຸບັນ. ແຕ່ຖ້າບູດອິມເມດ (boot image) ຂອງທ່ານສະແດງຄ່ານີ້ອອກມາ ໃຫ້ແນ່ໃຈວ່າໄດ້ເອົາມັນມາ. ຕົວຢ່າງ: 0xc0ff0000.
"kernel tags load address" ແມ່ນຄ່າພິເສດ. ມັນຖືກໃຊ້ສຳລັບທັງ kernel tags ແລະ dtb, ແຕ່ໃນບາງກໍລະນີ ຄ່າເຫຼົ່ານີ້ອາດຈະແຕກຕ່າງກັນ. ໃຫ້ເອົາຄ່ານີ້ມາຄືກັນ. ຕົວຢ່າງ: 0x47880000.
"dtb address" ບາງຄັ້ງຈະເປັນຄ່າດຽວກັນກັບ "kernel tags load address". ແຕ່ຫາກມັນແຕກຕ່າງກັນ ທ່ານຄວນໃຊ້ອັນນີ້ສຳລັບ dtb ແລະ ໃຊ້ tags ສຳລັບ tags.
"page size" ແມ່ນຈຳເປັນສຳລັບ ramdisk ເພື່ອໃຫ້ຮູ້ວ່າ flash chip ຂອງທ່ານໃຊ້ຂະໜາດໜ້າ (page size) ເທົ່າໃດ. ຄ່າຫຼັງຈຸດສອງເມັດຄືສິ່ງທີ່ທ່ານຕ້ອງການ. ຕົວຢ່າງ: 2048.
"os version" ແມ່ນຄ່າທີ່ກຳນົດວ່າ boot.img ນີ້ແມ່ນ Android ເວີຊັນໃດ. bootloader ບາງອັນຈະບັງຄັບໃຊ້ອັນນີ້. ຕົວຢ່າງ: 10.0.
"os patch level" ກໍເຊັ່ນດຽວກັນ. ທ່ານຄວນຈະເອົາຄ່ານີ້ມາຄືກັນ, ຕົວຢ່າງ: 2021-11.
"command line args" ຈະຖືກໃສ່ລົງໃນ deviceinfo_kernel_cmdline ໂດຍກົງ. ໃຫ້ແນ່ໃຈວ່າໄດ້ເກັບ "console=tty0" ໄວ້ໃນນັ້ນ. ບໍ່ມີຕົວຢ່າງຢູ່ທີ່ນີ້ :(
ຫາກທ່ານກຳລັງສ້າງ vendor_boot, ຄຳສັ່ງນີ້ຈະສົ່ງອອກໄຟລ໌
bootconfigໃນ output directory ຂອງທ່ານນຳ. ໃຫ້ຍ້າຍໄຟລ໌ນີ້ໄປທີ່ root ຂອງ source tree ຂອງທ່ານ.ນອກເໜືອຈາກຄ່າທີ່ກ່າວມານີ້ ທ່ານຄວນຂ້າມສ່ວນອື່ນໆທັງໝົດ.
ຕອນນີ້ໃຫ້ຕື່ມຂໍ້ມູນ offsets ຂອງທ່ານຕາມຄູ່ມືດັ່ງກ່າວ:
ໃຫ້ໃສ່ຄ່າຈາກ "page size" ລົງໃນ config ນີ້.
deviceinfo_flash_pagesize="2048"
Base offset ຈະຍັງຄົງເປັນ 0x00000000 ສະເໝີ.
deviceinfo_flash_offset_base="0x00000000"
ໃຫ້ຕື່ມຂໍ້ມູນນີ້ໂດຍອີງຕາມ "kernel load address".
deviceinfo_flash_offset_kernel="0x40080000"
ຄ່ານີ້ໄດ້ມາຈາກ "ramdisk load address".
deviceinfo_flash_offset_ramdisk="0x51b00000"
ເຖິງແມ່ນວ່າຈະບໍ່ສຳຄັນທີ່ສຸດ, ແຕ່ຫາກທ່ານມີຄ່າຂອງມັນ ກໍໃຫ້ຕື່ມຂໍ້ມູນຈາກ "second bootloader load address".
deviceinfo_flash_offset_second="0xc0ff0000"
Tags ຄວນຖືກຕື່ມຂໍ້ມູນຈາກ "kernel tags load address".
deviceinfo_flash_offset_tags="0x47880000"
DTB offset ແມ່ນມາຈາກ "dtb load address".
deviceinfo_flash_offset_dtb="0x47880000"
ຄ່ານີ້ມາຈາກ "os version". ບໍ່ໄດ້ຈຳເປັນທຸກກໍລະນີ ແຕ່ OEM ບາງລາຍອາດຈະບັງຄັບໃຊ້.
deviceinfo_bootimg_os_version="10.0"
ທ່ານຄວນໃສ່ຄ່າ "os patch level" ທີ່ນີ້.
deviceinfo_bootimg_os_patch_level="2021-11"
ຫາກທ່ານກຳລັງສ້າງ vendor_boot ແລະ ໄດ້ຍ້າຍໄຟລ໌
bootconfigໄປທີ່ root ຂອງ tree ຂອງທ່ານແລ້ວ ໃຫ້ເພີ່ມສິ່ງຕໍ່ໄປນີ້:
deviceinfo_vendor_bootconfig_path="bootconfig"
ພຽງເທົ່ານີ້ ທ່ານກໍໄດ້ຕື່ມຂໍ້ມູນ deviceinfo ຂອງທ່ານຢ່າງຖືກຕ້ອງ ແລະ ສາມາດດຳເນີນການພອດ (port) ຕໍ່ໄປໄດ້!
ການສ້າງ, ການຕິດຕັ້ງ ແລະ ການຣັນ¶
ຫຼັງຈາກທີ່ທ່ານສຳເລັດການຕັ້ງຄ່າ deviceinfo ແລະ ຕື່ມຂໍ້ມູນທີ່ຈຳເປັນທັງໝົດແລ້ວ ກໍຮອດເວລາເຂົ້າສູ່ສ່ວນຫຼັກ ນັ້ນຄືການ build. ໃຫ້ຣັນຄຳສັ່ງ: ./build.sh -b workdir
ຄຳສັ່ງນັ້ນຈະດາວໂຫຼດ toolchains ທີ່ຈຳເປັນທັງໝົດ ຕາມດ້ວຍເຄີເນີນ ແລະ ເລີ່ມ build ທຸກຢ່າງ. ຂັ້ນຕອນການ build ເຄີເນີນນີ້ອາດຈະໃຊ້ເວລາປະມານ 5 ຫາ 50 ນາທີ.
ເມື່ອ build ເຄີເນີນສຳເລັດແລ້ວ ທ່ານສາມາດດຳເນີນການຕິດຕັ້ງ ແລະ ບູດ (boot) ມັນໃນຂັ້ນຕອນຕໍ່ໄປ.