tl; dr: O loʻo ou fausiaina se ata Kali Linux mo se komepiuta ARM, i le polokalama debootstrap
, linux
и u-boot
.
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
O le faagasologa o le download e fai si faigofie:
- O meafaigaluega ua amatalia.
- Mai nisi vaega i luga o le masini teu (SD card / eMMC / etc) o le bootloader e faitau ma faʻataunuʻuina.
- E su'e e le bootloader le kernel system ma uta i totonu o se vaega e manatua ai ma fa'atino.
- 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
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:
- Faailoga le SD card o loʻo faʻaogaina le MBR partitioning:
parted -s /dev/mmcblk0 mklabel msdos
- 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. - Matou te fatuina se faila faila mo le gafatia atoa o totoe:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- 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.
- Fausia se faiga faila mo le vaeluaga o le seevae ma le igoa
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- 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:
- Fa'amau le vaeluaga i totonu
/mnt/
(fa'aoga se mea e fa'amau ai e sili atu ona faigofie):mount /dev/mmcblk0p2 /mnt
- 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 faiachroot
i le siosiomaga ARM. O le uiga o filifiliga o totoe e mafai ona maua i totonuman debootstrap
. Aua ne'i galo e le lagolagoina uma e laupapa ARM le fausagaarmhf
. - 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
- I le taimi nei e tatau ona e faʻapipiʻi:
chroot /mnt /bin/bash
- 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. - 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 poloaigapasswd
. - Seti se upu faataga mo
root
'aupasswd
. - 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.
- 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
- 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 lisiarch/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 parakalafaKBUILD_DEFCONFIG
. I le avea ai o se auala mulimuli, ia vave alu i le isi vaega. - I le faitalia e mafai ona e tweak tulaga:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- Ma fa'asoa fa'atasi le ata:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- O lea e mafai ona e kopiina le faila kernel:
cp arch/arm/boot/zImage /mnt/boot/
- Ma faila mai DeviceTree (faʻamatalaga o meafaigaluega i luga o le laupapa):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- 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
Sei o tatou faʻapipiʻi le bootloader lava ia:
- 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
- Se'i tatou o i le lisi lava ia:
cd u-boot
- 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. - 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
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!
puna: www.habr.com