Malite GNU/Linux na bọọdụ ARM site na ọkọ (iji Kali na iMX.6 dịka ọmụmaatụ)

tl; dr: M na-ewu ihe oyiyi Kali Linux maka kọmputa ARM, na mmemme ahụ debootstrap, linux и u-boot.

Malite GNU/Linux na bọọdụ ARM site na ọkọ (iji Kali na iMX.6 dịka ọmụmaatụ)

Ọ bụrụ na ị zụtara sọftụwia otu bọọdụ na-ewu ewu na-ewu ewu, ị nwere ike ihu enweghị onyonyo nkesa ọkacha mmasị gị maka ya. Ihe dị ka otu ihe ahụ mere zubere Flipper One. Enweghị Kali Linux maka IMX6 (Ana m akwado), yabụ m ga-achịkọta ya n'onwe m.

Usoro nbudata ahụ dị nnọọ mfe:

  1. Ewelitela ngwaike.
  2. Site na mpaghara ụfọdụ na ngwaọrụ nchekwa (kaadị SD/eMMC/etc) a na-agụ ma gbuo bootloader.
  3. Bootloader na-achọ kernel sistemu arụ ọrụ wee tinye ya n'ime ebe nchekwa ụfọdụ wee mee ya.
  4. The kernel na-ebu OS ndị ọzọ.

Nke a ọkwa nke nkọwa zuru ezu maka ọrụ m, ị nwere ike ịgụ nkọwa ke ibuotikọ en̄wen. Mpaghara "ụfọdụ" ndị a kpọtụrụ aha n'elu dị iche site na bọọdụ gaa n'ụgbọ, nke na-akpata ụfọdụ nsogbu nrụnye. Na-eburu nyiwe ihe nkesa ARM na-agbalị ịhazi ọkọlọtọ iji UEFI, mana ọ bụ ezie na nke a abụghị maka onye ọ bụla, ị ga-achịkọta ihe niile iche.

Ịmepụta usoro faịlụ mgbọrọgwụ

Mbụ ịkwesịrị ịkwadebe akụkụ. Das U-Boot na-akwado sistemụ faịlụ dị iche iche, ahọpụtara m FAT32 maka /boot yana ext3 maka mgbọrọgwụ, nke a bụ nhazi onyonyo ọkọlọtọ maka Kali na ARM. Aga m eji GNU Parted, mana ị nwere ike ime otu ihe ahụ n'ụzọ amara nke ọma fdisk. Ị ga-achọkwa dosfstools и e2fsprogs iji mepụta usoro faịlụ: apt install parted dosfstools e2fsprogs.

Anyị na-akara kaadị SD:

  1. Kaa kaadị SD dị ka iji nkebi MBR: parted -s /dev/mmcblk0 mklabel msdos
  2. Mepụta ngalaba n'okpuru /boot maka 128 megabytes: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. Megabyte mbụ efu ga-ahapụrịrị maka akara n'onwe ya yana maka bootloader.
  3. Anyị na-emepụta usoro faịlụ mgbọrọgwụ maka ikike niile fọdụrụnụ: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. Ọ bụrụ na emebeghị faịlụ nkebi gị na mberede ma ọ bụ agbanwebeghị, ịkwesịrị ịmegharị 'partprobe', mgbe ahụ a ga-agụgharị tebụl nkebi ahụ.
  5. Mepụta usoro faịlụ maka nkebi buut na akara BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. Mepụta sistemụ faịlụ mgbọrọgwụ nwere akara ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

Ọ dị mma, ugbu a ị nwere ike mejupụta ya. Maka nke a, ị ga-achọkwa debootstrap, ngwa maka ịmepụta sistemụ faịlụ mgbọrọgwụ maka sistemụ arụmọrụ Debian: apt install debootstrap.

Anyị na-anakọta FS:

  1. Wụnye nkebi na /mnt/ (jiri ebe mgbago dị mma karịa): mount /dev/mmcblk0p2 /mnt
  2. Anyị na-ejuputa usoro faịlụ: debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali... Oke --include na-egosi wụnye ụfọdụ ngwugwu, akọwapụtaara m ihe emulator QEMU arụpụtara nke ọma. Ọ na-enye gị ohere ịrụ chroot na gburugburu ARM. Enwere ike ịchọta ihe nhọrọ ndị fọdụrụ pụtara na man debootstrap. Echefula na ọ bụghị bọọdụ ARM ọ bụla na-akwado ụkpụrụ ụlọ armhf.
  3. N'ihi ọdịiche dị na architecture debootstrap A na-eme ya n'ụzọ abụọ, a na-eme nke abụọ dị ka nke a: chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. Ugbu a ịkwesịrị ịwụnye ya: chroot /mnt /bin/bash
  5. Dejupụta /etc/hosts и /etc/hostname lekwasịrị anya FS. Dejupụta otu ihe dị na kọmpụta mpaghara gị, cheta naanị iji dochie aha nnabata.
  6. Ị nwere ike hazie ihe ọ bụla ọzọ. Karịsịa, m wụnye locales (igodo nchekwa), megharịa mpaghara na mpaghara oge (dpkg-reconfigure locales tzdata). Echefula ịtọ paswọọdụ na iwu ahụ passwd.
  7. Tọọ paswọọdụ maka root otu passwd.
  8. Nkwadebe nke ihe oyiyi ahụ maka m na-ejedebe na njuputa /etc/fstab n'ime /mnt/.

M ga-ebugo dịka mkpado emepụtara na mbụ, yabụ ọdịnaya ga-adị ka nke a:

LABEL=ROOTFS / njehie akpaaka = remount-ro 0 1
LABEL=BOOT/boot auto defaults 0 0

N'ikpeazụ, ị nwere ike ịkwanye nkebi buut, anyị ga-achọ ya maka kernel: 'mount /dev/mmcblk0p1 /mnt/boot/'

Linux wuo

Iji wuo kernel (na mgbe ahụ bootloader) na Debian Testing, ị kwesịrị ịwụnye otu ọkọlọtọ GCC, GNU Make na GNU C faịlụ nkụnye eji isi mee maka ihe owuwu ebumnuche (maka m). armhf), yana isi okwu OpenSSL, mgbako njikwa bc, bison и flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. Ebe ọ bụ na onye na-ebu ihe ndabara na-achọ faịlụ ahụ zImage na usoro faịlụ nke nkebi buut, ọ bụ oge iji kewaa draịva flash.

  1. Ọ na-ewe ogologo oge iji mechie kernel, yabụ m ga-ebudata: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz. Ka anyị bupụ ngwongwo wee gaa na ndekọ isi mmalite: tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
  2. Hazie tupu achịkọta: make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. Nhazi ahụ dị na ndekọ aha arch/arm/configs/. Ọ bụrụ na ọ nweghị, ị nwere ike ịnwa ịchọta ma budata nke emebere ma nyefee aha faịlụ na ndekọ a dị ka oke. KBUILD_DEFCONFIG. Dị ka ụzọ ikpeazụ, gaa n'ihu ozugbo gaa n'akụkụ nke ọzọ.
  3. Nhọrọ, ị nwere ike tweak ntọala: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. Na gafee-achịkọta onyonyo a: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. Ugbu a ị nwere ike iṅomi faịlụ kernel: cp arch/arm/boot/zImage /mnt/boot/
  6. Na faịlụ sitere na DeviceTree (nkọwa nke ngwaike dị na bọọdụ): cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. Ma wụnye modul ndị anakọtara n'ụdị faịlụ dị iche iche: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

kernel adịla njikere. Ị nwere ike wepu ihe niile: umount /mnt/boot/ /mnt/

Das U-Boot

Ebe ọ bụ na bootloader na-emekọrịta ihe, naanị ihe ị ga-achọ iji nwalee ọrụ ya bụ bọọdụ n'onwe ya, ngwaọrụ nchekwa, yana nhọrọ ngwaọrụ USB-to-UART. Ya bụ, ị nwere ike yigharịrị kernel na OS maka emechaa.

Ọnụ ọgụgụ ka ukwuu nke ndị nrụpụta na-enye iji Das U-Boot maka akpụkpọ ụkwụ mbụ. A na-enyekarị nkwado zuru oke na ndụdụ nke ha, mana ha anaghị echefu itinye aka na elu. N'ọnọdụ m, a na-akwado bọọdụ ahụ mainlinenke ahụ kpatara ya ndụdụ Agbaghara m ya.

Ka anyị chịkọta bootloader n'onwe ya:

  1. Anyị na-emechi alaka ụlọ nchekwa ahụ kwụsiri ike: git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. Ka anyị gaa na ndekọ n'onwe ya: cd u-boot
  3. Na-akwado nhazi ihe owuwu: make mx6ull_14x14_evk_defconfig. Nke a na-arụ ọrụ naanị ma ọ bụrụ na nhazi ahụ dị na Das U-Boot n'onwe ya, ma ọ bụghị ya, ị ga-achọ ịchọta nhazi nke onye nrụpụta ma tinye ya na mgbọrọgwụ nke ebe nchekwa na faịlụ. .config, ma ọ bụ gbakọta n'ụzọ ọ bụla ọzọ ndị nrụpụta tụrụ aro.
  4. Anyị na-agbakọta ihe oyiyi bootloader n'onwe ya site na iji cross-compiler armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

N'ihi ya, anyị na-enweta faịlụ u-boot.imx, nke a bụ ihe oyiyi dị njikere nke enwere ike ide ya na draịva flash. Anyị na-ede na kaadị SD, na-amapụ nke mbụ 1024 bytes. Gịnị mere m ji họrọ Target u-boot.imx? Kedu ihe kpatara m jiri tụfuo 1024 bytes kpọmkwem? Nke a bụ ihe ha tụrụ aro ime akwụkwọ. Maka bọọdụ ndị ọzọ, ụlọ ihe onyonyo na usoro ndekọ nwere ike ịdịtụ iche.

Emechara, ị nwere ike buut. Onye na-ebu bootloader ga-akọrịrị ụdị nke ya, ụfọdụ ozi gbasara bọọdụ ahụ, wee gbalịa ịchọta onyonyo kernel na nkebi ahụ. Ọ bụrụ na ọ gaghị eme nke ọma, ọ ga-anwa ịbuba na netwọkụ. N'ozuzu, mmepụta ahụ zuru oke, ị nwere ike ịchọta njehie ma ọ bụrụ na enwere nsogbu.

Kama nkwubi okwu

Ị maara na ihu dolphin abụghị ọkpụkpụ? Ọ bụ n'ezie anya nke atọ, oghere nwere abụba maka nkwugharị okwu!

Malite GNU/Linux na bọọdụ ARM site na ọkọ (iji Kali na iMX.6 dịka ọmụmaatụ)

Malite GNU/Linux na bọọdụ ARM site na ọkọ (iji Kali na iMX.6 dịka ọmụmaatụ)

isi: www.habr.com