tl; dr: Ke etsa setšoantšo sa Kali Linux bakeng sa komporo ea ARM, lenaneong debootstrap
, linux
и u-boot
.
Haeba u rekile software e sa tsejoeng haholo ea boto e le 'ngoe, u kanna oa tobana le khaello ea setšoantšo sa phepelo eo u e ratang haholo bakeng sa eona. Hoo e ka bang ntho e tšoanang e etsahetse le
Mokhoa oa ho jarolla o bonolo haholo:
- Hardware e qala.
- Ho tsoa sebakeng se seng sesebelisoa sa polokelo (karete ea SD/eMMC/joalo-joalo) bootloader ea baloa le ho etsoa.
- Bootloader e batla kernel ea sistimi e sebetsang ebe e e kenya sebakeng se itseng sa memori ebe e ea e phetha.
- Kernel e kenya likarolo tse ling tsa OS.
Boemo bona ba lintlha bo lekane bakeng sa mosebetsi oa ka, o ka bala lintlha
Ho haha motso oa tsamaiso ea lifaele
Pele u lokela ho lokisetsa likarolo. Das U-Boot e tšehetsa litsamaiso tse fapaneng tsa lifaele, ke khethile FAT32 bakeng sa /boot
le ext3 bakeng sa motso, ona ke sebopeho se tloaelehileng sa setšoantšo sa Kali ho ARM. Ke tla sebelisa GNU Parted, empa le uena u ka etsa se tšoanang ka tsela e tloaelehileng fdisk
. Le uena u tla hloka dosfstools
и e2fsprogs
ho theha sistimi ea faele: apt install parted dosfstools e2fsprogs
.
Re tšoaea karete ea SD:
- Tšoaea karete ea SD joalo ka ho sebelisa likarolo tsa MBR:
parted -s /dev/mmcblk0 mklabel msdos
- Etsa karolo tlas'a
/boot
bakeng sa 128 megabytes:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB
. Megabyte ea pele e lahlehileng e tlameha ho siuoa bakeng sa markup ka boeona le bakeng sa bootloader. - Re theha sistimi ea faele ea metso bakeng sa bokhoni bohle bo setseng:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- Haeba ka tšohanyetso lifaele tsa hau tsa karohano li so thehoe kapa li so fetohe, o hloka ho sebelisa `partprobe`, ebe tafole ea karohano e tla baloa hape.
- Theha sistimi ea faele bakeng sa karohano ea ho qala ka leibole
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- Theha mokhoa oa ho kenya lifaele ka leibole
ROOTFS
:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
E kholo, joale u ka e tlatsa. Bakeng sa sena o tla e hloka hape debootstrap
, sesebelisoa sa ho theha litsamaiso tsa lifaele tsa metso bakeng sa lits'ebetso tse ts'ebetso tse kang Debian: apt install debootstrap
.
Re bokella FS:
- Kenya karohano
/mnt/
(sebelisa sebaka se loketseng sa ho hloa):mount /dev/mmcblk0p2 /mnt
- Re tlatsa sistimi ea faele:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali
. Paramethara--include
e bonts'a ho kenya liphutheloana tse ling, ke boletse emulator ea QEMU e hahiloeng ka mokhoa o tsitsitseng. E u lumella ho etsachroot
tikolohong ea ARM. Moelelo oa likhetho tse setseng li ka fumanoa homan debootstrap
. Se ke oa lebala hore ha se boto e 'ngoe le e' ngoe ea ARM e tšehetsang meraloarmhf
. - Ka lebaka la phapang ea meaho
debootstrap
e etsoa ka mekhahlelo e 'meli, ea bobeli e etsoa ka tsela ena:chroot /mnt/ /debootstrap/debootstrap --second-stage
- Joale o hloka ho e lokisa:
chroot /mnt /bin/bash
- Re tlatsa
/etc/hosts
и/etc/hostname
sepheo sa FS. Tlatsa lintho tse tšoanang le tse ka har'a komporo ea hau ea lehae, hopola feela ho khutlisa lebitso la moamoheli. - U ka khona ho etsa tse ling kaofela. Ka ho khetheha, ke kenya
locales
(linotlolo tsa polokelo), hlophisa bocha libaka le sebaka sa nako (dpkg-reconfigure locales tzdata
). U se ke ua lebala ho beha phasewete ka taelopasswd
. - Beha phasewete bakeng sa
root
sehlophapasswd
. - Tokisetso ea setšoantšo bakeng sa ka e qetella ka ho tlatsa
/etc/fstab
ka hare/mnt/
.
Ke tla kenya ho latela li-tag tse entsoeng pele, kahoo litaba li tla ba tjena:
LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /boot auto defaults 0 0
Qetellong, o ka kenya karohano ea boot, re tla e hloka bakeng sa kernel: `mount /dev/mmcblk0p1 /mnt/boot/`
Mohaho oa Linux
Ho aha kernel (ebe bootloader) ho Teko ea Debian, o hloka ho kenya sete e tloaelehileng ea lifaele tsa GCC, GNU Make le GNU C Library bakeng sa meralo e reretsoeng (bakeng sa ka. armhf
), hammoho le lihlooho tsa OpenSSL, calculator ea console bc
, bison
и flex
: apt install crossbuild-essential-armhf bison flex libssl-dev bc
. Ho tloha ka kamehla loader batla faele zImage
ho sistimi ea faele ea karohano ea boot, ke nako ea ho arola flash drive.
- Ho nka nako e telele haholo ho kopanya kernel, kahoo ke tla khoasolla:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
. Ha re phutholle 'me re ee mohloling oa mohloli:tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
- Lokisa pele ho kopanngoa:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig
. The config e fumaneha ka har'a directoryarch/arm/configs/
. Haeba ha ho na, u ka leka ho fumana le ho khoasolla e entsoeng hantle 'me u fetise lebitso la faele bukeng ena e le parameter.KBUILD_DEFCONFIG
. E le khetho ea ho qetela, hang-hang fetela ntlheng e latelang. - Ka boikhethelo, o ka fetola li-setting:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- Ebe u kopanya setšoantšo:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- Joale o ka kopitsa faele ea kernel:
cp arch/arm/boot/zImage /mnt/boot/
- Le lifaele tse tsoang ho DeviceTree (tlhaloso ea lisebelisoa tse botong):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- Ebe u kenya li-module tse bokelletsoeng ka mokhoa oa lifaele tse arohaneng:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
Lehlaku le se le lokile. O ka tlosa tsohle: umount /mnt/boot/ /mnt/
Ke U-Boot
Kaha bootloader e sebelisana, sohle seo u se hlokang ho lekola ts'ebetso ea eona ke boto ka boeona, sesebelisoa sa polokelo, 'me ka boikhethelo sesebelisoa sa USB-to-UART. Ke hore, o ka chechisa kernel le OS bakeng sa hamorao.
Boholo ba bahlahisi ba fana ka ho sebelisa Das U-Boot bakeng sa boot ea pele. Tšehetso e feletseng hangata e fanoa ka fereko ea bona, empa ha ba lebale ho kenya letsoho ho ea holimo. Tabeng ea ka, boto e tšehetsoa ka
Ha re bokelle bootloader ka boeona:
- Re kopanya lekala le tsitsitseng la polokelo:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
- Ha re ee bukeng ka boeona:
cd u-boot
- Ho lokisa sebopeho sa moaho:
make mx6ull_14x14_evk_defconfig
. Sena se sebetsa feela haeba tlhophiso e le ho Das U-Boot ka boeona, ho seng joalo o tla hloka ho fumana tlhophiso ea moetsi ebe o e beha motso oa polokelo faeleng..config
, kapa ho kopanya ka mokhoa ofe kapa ofe o khothaletsoang ke moetsi. - Re bokella setšoantšo sa bootloader ka boeona re sebelisa cross-compiler
armhf
:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
Ka lebaka leo re fumana file u-boot.imx
, ena ke setšoantšo se lokiselitsoeng se ka ngolloang ho flash drive. Re ngolla karete ea SD, re tlola li-byte tse 1024 tsa pele. Hobaneng ke khethile Sepheo u-boot.imx
? Hobaneng ke fetotse li-byte tse 1024 hantle? Sena ke seo ba rerileng ho se etsa
E felile, o ka qala. Bootloader e tlameha ho tlaleha mofuta oa eona, tlhahisoleseling e itseng ka boto, 'me e leke ho fumana setšoantšo sa kernel karohanong. Haeba e sa atlehe, e tla leka ho qala marang-rang. Ka kakaretso, tlhahiso e na le lintlha tse ngata, u ka fumana phoso haeba ho na le bothata.
Ho e-na phetheha
A na u ne u tseba hore phatla ea dolphin ha e na masapo? Ha e le hantle ke leihlo la boraro, lense e mafura bakeng sa echolocation!
Source: www.habr.com