ເຄີນເນີນ (Kernel) ຂອງ PinePhone ແລະ PineTab

ເອກະສານນີ້ອະທິບາຍວິທີການສ້າງ ແລະ ຕິດຕັ້ງເຄີນເນີນ (kernel) ຂອງ PinePhone ຫຼື PineTab. ກ່ອນອື່ນໝົດແມ່ນການອະທິບາຍກ່ຽວກັບລະບົບການກູ້ຄືນ (recovery), ຈາກນັ້ນແມ່ນການສ້າງ ແລະ ການຕິດຕັ້ງຕົວຈິງ, ແລະ ຢູ່ດ້ານລຸ່ມຈະມີຂໍ້ມູນອ້າງອີງຕ່າງໆ.

ການກູ້ຄືນ (Recovery)

ອິເມຈ (image) ຂອງ Ubuntu Touch ປະກອບດ້ວຍໂໝດບູດ ການກູ້ຄືນ (recovery) ທີ່ອີງໃສ່ "jumpdrive". ເພື່ອເຂົ້າສູ່ໂໝດການກູ້ຄືນ ໃຫ້ກົດປຸ່ມເປີດເຄື່ອງ ແລະ ປຸ່ມເພີ່ມສຽງຄ້າງໄວ້ຈົນກວ່າໄຟ LED ຈະແຈ້ງຂຶ້ນ.

The recovery presents the PinePhone as a network device over USB and runs a telnet server. When you connect the PinePhone to your desktop via USB, you will see the rndis device show up in your desktop's dmesg:

usb 1-7.2: Product: PinePhone
usb 1-7.2: Manufacturer: Pine64
usb 1-7.2: SerialNumber: Jumpdrive
rndis_host 1-7.2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-7.2, RNDIS device

ທ່ານສາມາດເຂົ້າສູ່ລະບົບການກູ້ຄືນໄດ້ດ້ວຍຄຳສັ່ງ telnet 172.16.42.1.

The recovery also exposes the eMMC and the microSD card over USB. Assuming you have already installed Ubuntu Touch on your microSD card you will see something like this in your desktop's dmesg:

usb-storage 1-7.2:1.2: USB Mass Storage device detected
scsi host3: usb-storage 1-7.2:1.2
scsi 2:0:0:0: Direct-Access     JumpDriv e eMMC                PQ: 0 ANSI: 2
scsi 2:0:0:1: Direct-Access     JumpDriv e microSD             PQ: 0 ANSI: 2
sd 2:0:0:0: Attached scsi generic sg1 type 0
scsi 2:0:0:1: Attached scsi generic sg2 type 0
sd 2:0:0:0: [sdb] 30785536 512-byte logical blocks: (15.8 GB/14.7 GiB)
sd 2:0:0:1: [sdc] 124735488 512-byte logical blocks: (63.9 GB/59.5 GiB)
  sdb: sdb1 sdb2
sd 2:0:0:0: [sdb] Attached SCSI removable disk
  sdc: sdc1 sdc2 sdc3 sdc4 sdc5 sdc6 sdc7 sdc8 sdc9 sdc10

eMMC ທີ່ມາພ້ອມກັບ jumpdrive ຈະປະກອບດ້ວຍສອງພາທິຊັນ (partition): pmOS_boot ແລະ pmOS_root.

microSD ກາດທີ່ມີ Ubuntu Touch ປະກອບດ້ວຍ 10 ພາທິຊັນ: loader, scr, persist, boot_a, boot_b, recovery_a, recovery_b, cache, system ແລະ userdata. ເພື່ອອັບເດດເຄີນເນີນ ທ່ານຈຳເປັນຕ້ອງ mount ພາທິຊັນ boot_a. ກະລຸນາກວດເບິ່ງວ່າອຸປະກອນໃດແມ່ນ SD ກາດໃນລະບົບປະຕິບັດການຂອງທ່ານ ແລະ mount boot_a. ໃນຕົວຢ່າງຂ້າງເທິງແມ່ນ sdc4. ພາຍໃນພາທິຊັນນັ້ນ ທ່ານຈະເຫັນເຄີນເນີນ vmlinuz ແລະ ໄຟລ໌ທີ່ກ່ຽວຂ້ອງ: config-5.6.0-pine64 dtb initrd.img modules/ System.map-5.6.0-pine64 vmlinuz.

ການສ້າງ kernel

To install dependencies, get the source code, configure and build the kernel, run the following:

sudo apt install build-essential flex bison gcc-aarch64-linux-gnu libssl-dev
git clone -b pine64-kernel-ubports https://gitlab.com/pine64-org/linux.git
cd linux
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KBUILD_VERSION=arm64 LOCALVERSION=-pine64 make pine64_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KBUILD_VERSION=arm64 LOCALVERSION=-pine64 make -j18 bindeb-pkg

ຕິດຕັ້ງເຄີນເນີນ (Kernel)

Boot into recovery and mount boot_a. Make a backup if needed. Then copy over your newly built kernel and if needed modules:

cp -v linux/debian/linux-image/boot/vmlinuz-5.6.0-pine64 [MOUNT POINT BOOT_A]/vmlinuz
cp -v linux/debian/linux-image/boot/config-5.6.0-pine64 [MOUNT POINT BOOT_A]
cp -v linux/debian/linux-image/boot/System.map-5.6.0-pine64  [MOUNT POINT BOOT_A]
sudo rm -rf [MOUNT POINT BOOT_A]/modules
sudo cp -rv linux/debian/linux-image/lib/modules [MOUNT POINT BOOT_A]

ຫຼັງຈາກນັ້ນ ໃຫ້ແນ່ໃຈວ່າໄດ້ unmount ພາທິຊັນເພື່ອໃຫ້ຂໍ້ມູນຖືກຂຽນລົງຢ່າງສົມບູນ. ຕອນນີ້ທ່ານສາມາດ reboot ເຄື່ອງ PinePhone ໄດ້. ເມື່ອລະບົບເລີ່ມຕົ້ນແລ້ວ, ທ່ານສາມາດກວດສອບວ່າເຄີນເນີນໄດ້ຖືກອັບເດດສຳເລັດແລ້ວ ຫຼື ບໍ່ ໂດຍການກວດສອບວັນທີທີ່ສ້າງດ້ວຍຄຳສັ່ງ uname -a ໃນອຸປະກອນ.

ເອກະສານອ້າງອີງ

  • Pine64 wiki ມີຂໍ້ມູນຮາດແວທົ່ວໄປ, ລາຍຊື່ໂຄງການລະບົບປະຕິບັດການອື່ນໆຂອງ PinePhone, ລຸ້ນຂອງຮາດແວ, ການໃຊ້ serial UART ຜ່ານຮູຫູຟັງ (ມີຈຳໜ່າຍໃນຮ້ານຂອງພວກເຂົາ), ເອກະສານຂໍ້ມູນທາງເຕັກນິກ, ບັນຫາຮາດແວທີ່ພົບ ແລະ ອື່ນໆ.

  • ຄັງເກັບໂປຣແກຣມຫຼັກຂອງ UBports ມີຄຳແນະນຳກ່ຽວກັບວິທີຕິດຕັ້ງອິເມຈ (image) ຂອງ UT ໃນ PinePhone.

  • ລະບົບຕິດຕາມບັນຫາຂອງ UBPorts

  • ຟໍຣຳ (Forum) ຂອງ PinePhone ຈາກ Pine64 ແມ່ນບ່ອນເຕົ້າໂຮມຂອງຫຼາຍໆຊຸມຊົນທີ່ເຮັດວຽກກ່ຽວກັບ PinePhone.

  • sunxi community is where much of the mainlining effort for Allwinner devices including the PinePhone takes place. Note their build instructions.

  • ຟີມແວ Crust ຊ່ວຍຈັດການສະຖານະການນອນຫຼັບເລິກ (deep sleep) ແລະ ຣັນໃນໜ່ວຍປະມວນຜົນຄວບຄຸມລະບົບ (System Control Processor) ທີ່ແຍກອອກຈາກ CPU ຫຼັກ ແລະ DRAM.