ອັບເດດການພອດສຳລັບ Ubuntu Touch 20.04

Ubuntu Touch 20.04 ແນະນຳການປ່ຽນແປງຫຼາຍຢ່າງພາຍໃນ, ເຊິ່ງຕ້ອງການການປ່ຽນແປງຈາກນັກພອດ (porters). ເອກະສານນີ້ມີຈຸດປະສົງເພື່ອເປັນພາບລວມກ່ຽວກັບວິທີເຮັດໃຫ້ພອດຂອງທ່ານແລ່ນໄດ້ໃນ Ubuntu Touch 20.04. ແນວໃດກໍ່ຕາມ, ທຸກໆພອດແມ່ນແຕກຕ່າງກັນ, ແລະ ອາດຈະຕ້ອງການຫຼາຍກວ່າທີ່ໄດ້ກ່າວໄວ້ໃນເອກະສານນີ້. ພວກເຮົາພ້ອມໃຫ້ບໍລິການໃນ ກຸ່ມ Telegram UBports porting ເພື່ອຕອບຄຳຖາມໃດໆທີ່ອາດເກີດຂຶ້ນໃນລະຫວ່າງຂັ້ນຕອນ.

ສຳລັບພອດທີ່ອີງໃສ່ GitLab CI: ປ່ຽນໄປໃຊ້ສະຄຣິບ building ທີ່ໃຊ້ຮ່ວມກັນ & ການຕັ້ງຄ່າ GitLab CI

ເນື່ອງຈາກການປ່ຽນແປງໃນວິທີການສ້າງ rootfs ຂອງ Ubuntu Touch 20.04, ພວກເຮົາຈຳເປັນຕ້ອງປ່ຽນວິທີການສ້າງ device tarballs. ແທນທີ່ຈະເລືອກເອົາການປ່ຽນແປງສະຄຣິບຈາກ repository ຂອງພອດອື່ນ, ພວກເຮົາແນະນຳໃຫ້ປ່ຽນໄປໃຊ້ສະຄຣິບ building ທີ່ໃຊ້ຮ່ວມກັນ. ໂດຍການໃຊ້ສະຄຣິບທີ່ໃຊ້ຮ່ວມກັນ, ພອດຂອງທ່ານຈະໄດ້ຮັບການປ່ຽນແປງຫຼ້າສຸດໃນການສ້າງ device tarball ໃນຂະນະທີ່ rootfs ສືບຕໍ່ພັດທະນາ (ເຊັ່ນ: ສຳລັບ 22.04 ຫຼື ໃໝ່ກວ່າ). ເພື່ອປ່ຽນໄປໃຊ້ສະຄຣິບທີ່ໃຊ້ຮ່ວມກັນ, ໃຫ້ລຶບ directory build/ ທັງໝົດ, ແລະ ປ່ຽນເນື້ອຫາຂອງ build.sh ດ້ວຍ:

#!/bin/bash
set -xe

[ -d build ] || git clone https://gitlab.com/ubports/community-ports/halium-generic-adaptation-build-tools build
./build/build.sh "$@"

ທ່ານອາດຈະຕ້ອງການເພີ່ມ build/ ເຂົ້າໃນ .gitignore ຂອງທ່ານ.

ແລະ ດ້ວຍເຫດຜົນດຽວກັນ, ພວກເຮົາແນະນຳໃຫ້ໃຊ້ການຕັ້ງຄ່າ GitLab CI ທີ່ໃຊ້ຮ່ວມກັນ ເພື່ອວ່າເມື່ອສະຄຣິບທີ່ໃຊ້ຮ່ວມກັນມີການປ່ຽນແປງຄວາມຕ້ອງການ, ພອດຂອງທ່ານຈະບໍ່ເສຍຫາຍ. ການໃຊ້ການຕັ້ງຄ່າທີ່ໃຊ້ຮ່ວມກັນສາມາດເຮັດໄດ້ໂດຍການປ່ຽນແທນເນື້ອຫາຂອງ .gitlab-ci.yml ດ້ວຍ:

include:
    - https://gitlab.com/ubports/porting/community-ports/halium-generic-adaptation-build-tools/-/raw/main/gsi-port-ci.yml

variables:
    BUILD_DEVEL_FLASHABLE_FOCAL: "1"

ພາກສ່ວນ variables ຊ່ວຍໃຫ້ສາມາດສ້າງຮູບພາບ partition ທີ່ສາມາດແຟລດໄດ້ຈາກ Focal rootfs, ເຊິ່ງທ່ານອາດຈະຕ້ອງການຂ້າມໄປກ່ອນສຳລັບການພອດເບື້ອງຕົ້ນ.

Note

ສະຄຣິບປະຈຸບັນບໍ່ຮອງຮັບ repository ດຽວທີ່ສ້າງສຳລັບຫຼາຍອຸປະກອນ. ຖ້າການພອດຂອງທ່ານຕ້ອງການຟີເຈີນີ້, ກະລຸນາໂຫວດໃຫ້ ບັນຫານີ້.

ຖ້າທ່ານມີການປ່ຽນແປງທີ່ກຳນົດເອງໃນສະຄຣິບການສ້າງ ຫຼື ໃນການຕັ້ງຄ່າ GitLab CI, ທ່ານອາດຈະຕ້ອງກວດສອບການປ່ຽນແປງຢ່າງລະມັດລະວັງ ເພື່ອໃຫ້ແນ່ໃຈວ່າການພອດຂອງທ່ານຈະຍັງເຮັດວຽກໄດ້. ໝາຍເຫດວ່າທ່ານສາມາດເພີ່ມຂັ້ນຕອນເພີ່ມເຕີມໃສ່ການຕັ້ງຄ່າ GitLab CI ແລະ ຈັດລຳດັບມັນຫຼັງຈາກຂັ້ນຕອນການສ້າງ tarball ຂອງອຸປະກອນ, ຫຼື ແມ່ນແຕ່ຂຽນທັບບາງຂັ້ນຕອນ (ບໍ່ແນະນຳ).

ສຳລັບການພອດທີ່ໃຊ້ GitLab CI: ກວດສອບ overlay ຂອງທ່ານໃນ partition ຂອງ Android

ການພອດຫຼາຍອັນ overlay ໄຟລ໌ໃນ partition ຂອງ Android ເພື່ອໃຫ້ການພອດເຮັດວຽກ. ສິ່ງນີ້ມັກຈະເຮັດໂດຍການ overlay ວຽກ mount-android.conf Upstart ໃຫ້ມີໂຄ້ດນັ້ນເອງ, ຫຼື ເອີ້ນສະຄຣິບອື່ນ. ເນື່ອງຈາກ Ubuntu Touch 20.04 ບໍ່ໃຊ້ Upstart ອີກຕໍ່ໄປ (ເບິ່ງດ້ານລຸ່ມ), ໂຄ້ດຈະບໍ່ເຮັດວຽກອີກ. ຖ້າການພອດຂອງທ່ານສົ່ງໄຟລ໌ overlay ພາຍໃຕ້ /opt/halium-overlay ຫຼື /usr/share/halium-overlay, ລະບົບ overlay ໃໝ່ຈະຈັດການມັນໂດຍອັດຕະໂນມັດ, ຍົກເວັ້ນເມື່ອມີການເພີ່ມໄຟລ໌ໃໝ່ ເຊິ່ງໃນກໍລະນີນັ້ນທ່ານອາດຈະຕ້ອງການ .halium-overlay-dir (ເບິ່ງ ວິທີການໃຊ້ໄຟລ໌ Overlay).

ອີກທາງເລືອກໜຶ່ງ, ທ່ານອາດຈະພິຈາລະນາຍ້າຍການພອດຂອງທ່ານທັງໝົດໄປໃຊ້ລະບົບ overlaystore. ແນວໃດກໍ່ຕາມ ການຍ້າຍຂໍ້ມູນບໍ່ແມ່ນເລື່ອງງ່າຍ ແລະ ມັນຈະເຮັດໃຫ້ການພອດຂອງທ່ານບໍ່ເຂົ້າກັນກັບ 16.04 (ເວັ້ນເສຍແຕ່ວ່າທ່ານມີ branch ອື່ນ). ຕິດຕໍ່ @peat-psuwit ໃນກຸ່ມພອດ UBports ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.

ສຳລັບການພອດ Halium 7 ຫຼື ເກົ່າກວ່າ: ອັບເດດສະຄຣິບ bluetooth-touch

ວິທີການເຮັດວຽກຂອງສະຄຣິບ bluetooth-touch ແຕ່ກ່ອນແມ່ນຜູກມັດກັບ Upstart. ໃນ Ubuntu Touch 20.04, bluetooth-touch ຖືກຍ້າຍໄປໃຊ້ Systemd. ດັ່ງນັ້ນ, ແທນທີ່ຈະ overlay ວຽກ bluetooth-touch-android.conf Upstart, ທ່ານຈະຕ້ອງ overlay /usr/share/bluetooth-touch/android.sh. ໝາຍເຫດວ່າສະຄຣິບຈະຖືກ run ໂດຍ /bin/sh, ດັ່ງນັ້ນຫຼີກເວັ້ນການໃຊ້ Bash-ism ຢູ່ທີ່ນີ້.

ການພອດ Halium 9 ບໍ່ຕ້ອງການສິ່ງນີ້, ເນື່ອງຈາກ Bluebinder ປ່ຽນແທນ bluetooth-touch ໂດຍການສື່ສານໂດຍກົງກັບບໍລິການ HIDL ເພື່ອໃຫ້ອິນເຕີເຟດໂຮສ Bluetooth.

ສຳລັບທຸກຄົນ: ກຳນົດຄ່າ usb-moded

usb-moded ປ່ຽນແທນສະຄຣິບ setupusb ໃນການຕັ້ງຄ່າ ແລະ ຈັດການໂຫມດ USB. ພວກເຮົາໄດ້ຂຽນໜ້າສະເພາະສຳລັບເລື່ອງນັ້ນ. ເບິ່ງ ການຕັ້ງຄ່າ usb-moded.

ສຳລັບທຸກຄົນ: ກວດສອບວຽກ Upstart ທີ່ກຳນົດເອງ

ການພອດບາງອັນມີວຽກ Upstart ທີ່ກຳນົດເອງເພື່ອເຮັດບາງສິ່ງໃນເວລາເປີດເຄື່ອງ. ວຽກເຫຼົ່ານັ້ນຕ້ອງຖືກປ່ຽນເປັນ Systemd units ເພື່ອໃຫ້ສາມາດເຮັດວຽກໄດ້ໃນ Ubuntu Touch 20.04. ທ່ານອາດຈະພົບ ຄູ່ມືຂອງ Ubuntu ກ່ຽວກັບຫົວຂໍ້ນີ້ <https://wiki.ubuntu.com/SystemdForUpstartUsers#Job_vs._unit_keywords> ທີ່ມີປະໂຫຍດ.

ອີກທາງເລືອກໜຶ່ງ, ແທນທີ່ຈະຂຽນ Systemd units ທີ່ກຳນົດເອງ, ໃຫ້ໃຊ້ສະຄຣິບ devicehack ເຊິ່ງຈະ run ທຸກຄັ້ງທີ່ເປີດເຄື່ອງຫຼັງຈາກ container ຂອງ Android ເຮັດວຽກ. path ແມ່ນ /usr/libexec/lxc-android-config/device-hacks, ແລະ ສະຄຣິບຈະຖືກ run ດ້ວຍ /bin/sh.