Manomboka ny GNU/Linux amin'ny birao ARM hatrany am-boalohany (mampiasa Kali sy iMX.6 ho ohatra)

TL; Dr: Manangana sary Kali Linux ho an'ny solosaina ARM aho, ao amin'ny programa debootstrap, linux ΠΈ u-boot.

Manomboka ny GNU/Linux amin'ny birao ARM hatrany am-boalohany (mampiasa Kali sy iMX.6 ho ohatra)

Raha nividy rindrambaiko tokana tsy dia malaza loatra ianao, dia mety ho tojo ny tsy fahampian'ny sarin'ny fizarana tianao indrindra ho azy. Toy izany koa no nitranga tamin'ny nomanina Flipper One. Tsy misy Kali Linux tsotra ho an'ny IMX6 (miomana aho), ka tsy maintsy manangona azy aho.

Tsotra ny fizotry ny fampidinana:

  1. Ny fitaovana dia natomboka.
  2. Avy amin'ny faritra sasany amin'ny fitahirizana fitahirizana (karatra SD / eMMC / sns) dia vakiana sy novonoina ny bootloader.
  3. Ny bootloader dia mitady ny kernel rafitra miasa ary mampiditra azy ao amin'ny faritra fitadidiana sasany ary manatanteraka izany.
  4. Ny kernel dia mitondra ny sisa amin'ny OS.

Ity haavon'ny antsipiriany ity dia ampy ho an'ny asako, azonao atao ny mamaky ny antsipiriany amin'ny lahatsoratra iray hafa. Ny faritra "sasany" voalaza etsy ambony dia tsy mitovy amin'ny board to board, izay miteraka fahasarotana amin'ny fametrahana. Mametraka sehatra mpizara ARM miezaka manara-penitra mampiasa UEFI, fa na dia tsy azon'ny rehetra aza izany dia tsy maintsy manangona ny zava-drehetra misaraka ianao.

Fananganana ny rafitra fichier root

Voalohany dia mila manomana ny fizarana ianao. Das U-Boot dia manohana rafitra rakitra samihafa, nisafidy FAT32 aho /boot ary ext3 ho an'ny fakany, ity no sary mahazatra ho an'ny Kali amin'ny ARM. Hampiasa GNU Parted aho, saingy afaka manao toy izany koa ianao amin'ny fomba mahazatra kokoa fdisk. Mila koa ianao dosfstools ΠΈ e2fsprogs hamorona rafitra fichier: apt install parted dosfstools e2fsprogs.

Mariho ny karatra SD:

  1. Mariho ny karatra SD amin'ny fampiasana ny fizarazarana MBR: parted -s /dev/mmcblk0 mklabel msdos
  2. Mamorona fizarana eo ambany /boot ho an'ny 128 megabytes: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. Ny megabyte voalohany tsy hita dia tsy maintsy avela ho an'ny marika manokana sy ho an'ny bootloader.
  3. Mamorona rafitra fichier faka ho an'ny fahafaha-manao sisa rehetra izahay: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. Raha tampoka dia tsy noforonina na tsy niova ny rakitra fisarahanao, dia mila mihazakazaka `partprobe` ianao, dia hovakiana indray ny latabatra fisarahana.
  5. Mamorona rafitra rakitra ho an'ny fizarazarana boot miaraka amin'ny marika BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. Mamorona rafitra fichier root misy marika ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

Tsara, azonao fenoina izao. Ho an'ity dia mila fanampiny ianao debootstrap, fampiasa amin'ny famoronana rafitra fichier faka ho an'ny rafitra miasa toa an'i Debian: apt install debootstrap.

Manangona FS izahay:

  1. Ampidiro ny partition /mnt/ (mampiasΓ  teboka tendrombohitra mety kokoa): mount /dev/mmcblk0p2 /mnt
  2. Tena mameno ny rafi-drakitra izahay: debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali. fikirana --include dia manondro ny fametrahana fonosana vitsivitsy fanampiny, nofaritako ny emulator QEMU natsangana. Mamela anao hanao fampisehoana izany chroot ao amin'ny tontolo ARM. Ny dikan'ny safidy sisa dia hita ao amin'ny man debootstrap. Aza adino fa tsy ny birao ARM rehetra no manohana ny maritrano armhf.
  3. Noho ny fahasamihafan'ny maritrano debootstrap atao amin'ny dingana roa, ny faharoa dia atao toy izao: chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. Izao dia mila manitsy azy ianao: chroot /mnt /bin/bash
  5. Mameno /etc/hosts ΠΈ /etc/hostname tanjona FS. Fenoy mitovy amin'ny votoaty ao amin'ny solosainao eo an-toerana, tadidio fotsiny ny manolo ny anaran'ny mpampiantrano.
  6. Azonao atao ny manamboatra ny zavatra hafa rehetra. Indrindra indrindra, mametraka aho locales (fanalahidin'ny tahiry), amboary ny toerana sy ny faritra (dpkg-reconfigure locales tzdata). Aza adino ny mametraka ny tenimiafina miaraka amin'ny baiko passwd.
  7. Mametraha tenimiafina ho an'ny root ny ekipa passwd.
  8. Ny fanomanana ny sary ho ahy dia mifarana amin'ny famenoana /etc/fstab ao anatin'ny /mnt/.

Hampiakatra mifanaraka amin'ny marika natao teo aloha aho, ka ho toy izao ny atiny:

LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /boot auto default 0 0

Farany, azonao atao ny mametraka ny fizarazarana boot, mila izany ho an'ny kernel: `mount /dev/mmcblk0p1 /mnt/boot/`

Linux fananganana

Mba hananganana ny kernel (ary avy eo ny bootloader) amin'ny Debian Testing, dia mila mametraka andian-tsarimihetsika GCC, GNU Make ary GNU C Library ianao ho an'ny maritrano kendrena (ho ahy. armhf), ary koa ny lohatenin'ny OpenSSL, kajy console bc, bison ΠΈ flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. Satria ny loader default dia mitady ny rakitra zImage eo amin'ny rafitra fichier amin'ny fizarazarana boot, tonga ny fotoana hanasarahana ny flash drive.

  1. Ela loatra ny fanaovana clone ny kernel, ka alaiko fotsiny: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz. Andeha hovahantsika ary mankanesa any amin'ny lahatahiry loharano: tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
  2. Amboary alohan'ny fanangonana: make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. Ny config dia hita ao amin'ny lahatahiry arch/arm/configs/. Raha tsy misy izany dia azonao atao ny manandrana mitady sy misintona iray efa vita ary mametaka ny anaran'ny rakitra ao amin'ity lahatahiry ity ho marika KBUILD_DEFCONFIG. Amin'ny maha-mety farany azy dia mirosoa avy hatrany amin'ny teboka manaraka.
  3. Raha azo atao dia azonao atao ny manova ny toe-javatra: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. Ary ampifanaraho ny sary: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. Afaka mandika ny rakitra kernel ianao izao: cp arch/arm/boot/zImage /mnt/boot/
  6. Ary ny rakitra avy amin'ny DeviceTree (famaritana ny fitaovana eo amin'ny solaitrabe): cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. Ary apetraho ireo maody nangonina amin'ny endrika rakitra misaraka: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

Vonona ny kernel. Azonao atao ny manala ny zavatra rehetra: umount /mnt/boot/ /mnt/

Das U-Boot

Satria ny bootloader dia mifampiresaka, ny hany ilainao hitsapana ny fiasan'izy ireo dia ny solaitrabe, fitaovana fitahirizana, ary raha tsy izany dia fitaovana USB-to-UART. Izany hoe, azonao atao ny manemotra ny kernel sy OS ho any aoriana.

Ny ankamaroan'ny mpanamboatra dia manolotra ny fampiasana Das U-Boot ho an'ny boot voalohany. Ny fanohanana feno dia matetika omena amin'ny sakeliny manokana, saingy tsy adinony ny mandray anjara amin'ny fiakarana. Raha ny ahy dia tohanana ny birao mainlineIzany no antony fork Tsy noraharahaiko izany.

Andao hanangona ny bootloader mihitsy:

  1. Izahay dia manao clone ny sampana stable amin'ny tahiry: git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. Andao ho any amin'ny lahatahiry mihitsy: cd u-boot
  3. Manomana ny fananganana fananganana: make mx6ull_14x14_evk_defconfig. Ity dia miasa raha tsy ao amin'ny Das U-Boot ihany ny fanamafisana, raha tsy izany dia mila mitady ny config an'ny mpanamboatra ianao ary mametraka izany ao amin'ny fototry ny tahiry ao anaty rakitra. .config, na mivory amin'ny fomba hafa atolotry ny mpanamboatra.
  4. Manangona ny sary bootloader ny tenany amin'ny fampiasana cross-compiler armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

Vokatr'izany dia mahazo ny rakitra izahay u-boot.imx, ity dia sary efa vita izay azo soratana amin'ny kapila tselatra. Manoratra amin'ny karatra SD izahay, mitsambikina ny 1024 bytes voalohany. Nahoana aho no nifidy Target u-boot.imx? Nahoana aho no tsy nahita 1024 bytes? Izany no soso-kevitr'izy ireo hatao ao tahirin-kevitra. Ho an'ny takelaka hafa dia mety ho hafa kely ny fananganana sary sy ny fizotry ny fandraketana.

Vita, afaka boot ianao. Ny bootloader dia tsy maintsy mitatitra ny kinovany manokana, fampahalalana sasantsasany momba ny birao, ary miezaka mitady ny sary kernel amin'ny fisarahana. Raha tsy mahomby izy dia hiezaka ny boot amin'ny tambajotra. Amin'ny ankapobeny, ny vokatra dia tena antsipirihany, dia afaka mahita ny fahadisoana raha misy olana.

Raha tokony ny famaranana

Fantatrao ve fa tsy taolana ny handrin'ny feso? Maso fahatelo ara-bakiteny izy io, family matavy hanaovana Γ©cholocation!

Manomboka ny GNU/Linux amin'ny birao ARM hatrany am-boalohany (mampiasa Kali sy iMX.6 ho ohatra)

Manomboka ny GNU/Linux amin'ny birao ARM hatrany am-boalohany (mampiasa Kali sy iMX.6 ho ohatra)

Source: www.habr.com