Amataina GNU/Linux i luga o se laupapa ARM mai le sasa (faʻaaogaina Kali ma iMX.6 e fai ma faʻataʻitaʻiga)

tl; dr: O loʻo ou fausiaina se ata Kali Linux mo se komepiuta ARM, i le polokalama debootstrap, linux и u-boot.

Amataina GNU/Linux i luga o se laupapa ARM mai le sasa (faʻaaogaina Kali ma iMX.6 e fai ma faʻataʻitaʻiga)

Afai na e fa'atauina se polokalama e le ta'uta'ua e tasi-board, atonu e te feagai ma le leai o se ata o lau tufatufaga e sili ona e fiafia i ai. Pe tusa o le mea lava e tasi na tupu i fuafuaina Flipper One. E leai lava se Kali Linux mo IMX6 (O loʻo ou sauniuni), o lea e tatau ai ona ou faʻapipiʻiina aʻu lava.

O le faagasologa o le download e fai si faigofie:

  1. O meafaigaluega ua amatalia.
  2. Mai nisi vaega i luga o le masini teu (SD card / eMMC / etc) o le bootloader e faitau ma faʻataunuʻuina.
  3. E su'e e le bootloader le kernel system ma uta i totonu o se vaega e manatua ai ma fa'atino.
  4. E utaina e le fatu le isi vaega ole OS.

O lenei tulaga o faʻamatalaga ua lava mo laʻu galuega, e mafai ona e faitau faʻamatalaga i seisi tusitusiga. O "nisi" vaega o loʻo taʻua i luga e ese mai lea laupapa i lea laupapa, lea e mafua ai ni faʻafitauli faigata. O lo'o fa'atūina fa'amaumauga a le ARM taumafai e faalaugatasia faʻaaoga le UEFI, ae e le o avanoa mo tagata uma, e tatau ona e faʻapipiʻi ese mea uma.

Fausiaina o le faiga faila faila

Muamua e tatau ona e saunia vaega. E lagolagoina e Das U-Boot faiga faila faila, na ou filifilia FAT32 mo /boot ma ext3 mo aʻa, o le faʻataʻitaʻiga masani lea mo Kali i luga ole ARM. O le a ou faʻaogaina le GNU Parted, ae e mafai ona e faia tutusa i se auala masani fdisk. E te manaʻomia foʻi dosfstools и e2fsprogs e fai se faiga faila: apt install parted dosfstools e2fsprogs.

Matou te makaina le SD card:

  1. Faailoga le SD card o loʻo faʻaogaina le MBR partitioning: parted -s /dev/mmcblk0 mklabel msdos
  2. Fausia se vaega i lalo /boot mo 128 megabytes: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. O le megabyte muamua na misi e tatau ona tuʻu mo le faʻailoga lava ia ma mo le faʻapipiʻi.
  3. Matou te fatuina se faila faila mo le gafatia atoa o totoe: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. A fa'afuase'i e le'i faia pe e le'i suia fo'i au faila vaeluaga, e tatau ona e ta'e 'partprobe', ona toe faitau lea o le laulau vaeluaga.
  5. Fausia se faiga faila mo le vaeluaga o le seevae ma le igoa BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. Fausia se faiga faila faila ma se igoa ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

Lelei, ua mafai nei ona e fa'atumu. Mo lenei mea e te manaʻomia foʻi debootstrap, o se aoga mo le fatuina o faila faila mo faiga faʻaogaina e pei o Debian: apt install debootstrap.

Matou te aoina FS:

  1. Fa'amau le vaeluaga i totonu /mnt/ (fa'aoga se mea e fa'amau ai e sili atu ona faigofie): mount /dev/mmcblk0p2 /mnt
  2. Matou te faʻatumu moni le faila faila: debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali. Parameter --include faʻaalia e faʻapipiʻi faʻapipiʻi nisi o afifi, na ou faʻamaonia ai se emulator QEMU e fausia. E mafai ai ona e faia chroot i le siosiomaga ARM. O le uiga o filifiliga o totoe e mafai ona maua i totonu man debootstrap. Aua ne'i galo e le lagolagoina uma e laupapa ARM le fausaga armhf.
  3. Ona o le eseesega i le fausaga debootstrap e faia i vaega e lua, o le lona lua e faia e pei o lenei: chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. I le taimi nei e tatau ona e faʻapipiʻi: chroot /mnt /bin/bash
  5. Faatumu i totonu /etc/hosts и /etc/hostname sini FS. Faatumu tutusa ma le anotusi i luga o lau komepiuta i le lotoifale, ia manatua e sui le igoa talimalo.
  6. E mafai ona e fa'avasega isi mea uma. Aemaise lava, ou te faʻapipiʻiina locales (ki teu oloa), toe fetuutuunai nofoaga ma sone taimi (dpkg-reconfigure locales tzdata). Aua nei galo e seti le upu faataga ma le poloaiga passwd.
  7. Seti se upu faataga mo root 'au passwd.
  8. O le sauniuniga o le ata mo aʻu e faʻamaeʻaina i le faʻatumu /etc/fstab i totonu /mnt/.

O le a ou faʻapipiʻiina e tusa ai ma pine na faia muamua, o le mea lea o le a pei o lenei mea:

LABEL=ROOTFS / ta'avale sese=remount-ro 0 1
LABEL=BOOT /fa'a le ta'avale ta'avale 0 0

Mulimuli ane, e mafai ona e faʻapipiʻi le vaeluaga o le seevae, matou te manaʻomia mo le fatu: `mount /dev/mmcblk0p1 /mnt/boot/`

Linux fausia

Ina ia fausia le fatu (ona sosoo ai lea ma le bootloader) i luga ole Debian Testing, e tatau ona e faʻapipiʻi se seti masani o faila faila GCC, GNU Make ma le GNU C Library mo le faʻatulagaina o fausaga (mo aʻu). armhf), fa'apea fo'i ulutala OpenSSL, fa'amalie calculator bc, bison и flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. Talu ai e su'e e le loader le faila le faila zImage i luga o le faila faila o le vaeluaga o le seevae, ua oʻo i le taimi e vaelua ai le uila.

  1. E umi se taimi e faʻapipiʻi ai le fatu, o lea o le a na ona ou sii maia: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz. Se'i o tatou tala'i ma alu i le fa'asinomaga fa'apogai: tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
  2. Fa'atonu a'o le'i tu'ufa'atasia: make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. O le config o loʻo i totonu o le lisi arch/arm/configs/. Afai e leai se mea, e mafai ona e taumafai e suʻe ma sii mai se mea ua saunia ma pasi le igoa o le faila i totonu o lenei lisi o se parakalafa KBUILD_DEFCONFIG. I le avea ai o se auala mulimuli, ia vave alu i le isi vaega.
  3. I le faitalia e mafai ona e tweak tulaga: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. Ma fa'asoa fa'atasi le ata: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. O lea e mafai ona e kopiina le faila kernel: cp arch/arm/boot/zImage /mnt/boot/
  6. Ma faila mai DeviceTree (faʻamatalaga o meafaigaluega i luga o le laupapa): cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. Ma faʻapipiʻi modules na aoina i foliga o faila eseese: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

Ua saunia le fatu. E mafai ona e aveese mea uma: umount /mnt/boot/ /mnt/

Das U-Boot

Talu ai o le bootloader e fegalegaleai, pau lava le mea e te manaʻomia e suʻe ai lona faʻagaioiga o le laupapa lava ia, se masini e teu ai, ma filifili se masini USB-to-UART. O lona uiga, e mafai ona e tolopo le fatu ma le OS mo se taimi mulimuli ane.

O le tele o tagata gaosi oloa e ofoina atu e faʻaaoga Das U-Boot mo le uluaʻi seevae. O le lagolago atoatoa e masani lava ona tuʻuina atu ia latou lava tui, ae latou te le galo e saofagā i luga. I lo'u tulaga, e lagolagoina le laupapa i totonu laina autuo le mafuaaga lea tui Sa ou le amanaiaina.

Sei o tatou faʻapipiʻi le bootloader lava ia:

  1. Matou te faʻapipiʻi le lala mautu o le fale teu oloa: git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. Se'i tatou o i le lisi lava ia: cd u-boot
  3. Saunia le fa'atulagaina o le fausiaina: make mx6ull_14x14_evk_defconfig. E naʻo le aoga pe a fai o le faʻatulagaina o loʻo i totonu o le Das U-Boot lava ia, a leai o le ae manaʻomia le suʻeina o le fale gaosi oloa ma tuʻu i le aʻa o le fale teu oloa i se faila. .config, poʻo le faʻapipiʻi i soʻo se isi auala fautuaina e le kamupani gaosi oloa.
  4. Matou te faʻapipiʻiina le ata o le bootloader lava ia e faʻaaoga ai se cross-compiler armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

O se taunuuga matou te maua le faila u-boot.imx, o se ata ua saunia lea e mafai ona tusia i se kiliva uila. Matou te tusi i le SD card, fa'amisi le 1024 paita muamua. Aisea na ou filifilia ai le Target u-boot.imx? Aisea na ou misia tonu ai le 1024 bytes? O le mea lea latou te fautuaina e fai i totonu fa'amaumauga. Mo isi laupapa, o le fausiaina o ata ma le pueina o ata atonu e ese teisi.

A mae'a, e mafai ona e fa'aa'e. E tatau i le bootloader ona lipotia lana lava faʻamatalaga, nisi faʻamatalaga e uiga i le laupapa, ma taumafai e suʻe le ata o le fatu i luga o le vaeluaga. Afai e le manuia, o le a taumafai e faʻaulu i luga o le upega tafailagi. I se tulaga lautele, o le gaioiga e fai si auiliiliga, e mafai ona e mauaina le mea sese pe a iai se faʻafitauli.

Nai lo o se faaiuga

Na e iloa o le muaulu o le dolfin e le ivi? E moni lava o se mata lona tolu, o se tioata ga'o mo le echolocation!

Amataina GNU/Linux i luga o se laupapa ARM mai le sasa (faʻaaogaina Kali ma iMX.6 e fai ma faʻataʻitaʻiga)

Amataina GNU/Linux i luga o se laupapa ARM mai le sasa (faʻaaogaina Kali ma iMX.6 e fai ma faʻataʻitaʻiga)

puna: www.habr.com