tl; dr: Kuv tab tom tsim Kali Linux duab rau lub khoos phis tawj ARM, hauv qhov program debootstrap
, linux
ΠΈ u-boot
.
Yog tias koj yuav qee tus neeg tsis nyiam ib leeg-them, koj yuav ntsib qhov tsis muaj cov duab ntawm koj nyiam cov khoom faib rau nws. Zoo li ntau yam tshwm sim rau
Cov txheej txheem download tau yooj yim heev:
- Hardware yog pib.
- Los ntawm qee qhov chaw ntawm lub cuab yeej cia (SD daim npav / eMMC / thiab lwm yam) lub bootloader tau nyeem thiab tua.
- Lub loader saib cov ntsiav ntawm lub operating system thiab thauj nws mus rau hauv qee qhov chaw nco thiab ua tiav nws.
- Lub kernel loads tus so ntawm OS.
Rau kuv txoj haujlwm, theem ntawm kev nthuav dav no txaus, koj tuaj yeem nyeem cov ntsiab lus
Tsim lub hauv paus filesystem
Ua ntej koj yuav tsum npaj ntu. Das U-Boot txhawb nqa cov ntaub ntawv sib txawv, Kuv xaiv FAT32 rau /boot
thiab ext3 rau hauv paus, qhov no yog tus qauv duab kos rau Kali hauv qab ARM. Kuv mam li siv GNU Parted, tab sis koj tuaj yeem ua kom zoo li qub fdisk
. Koj kuj yuav xav tau dosfstools
ΠΈ e2fsprogs
los tsim ib tug filesystem: apt install parted dosfstools e2fsprogs
.
Partitioning SD card:
- Kos daim npav SD raws li siv MBR muab faib:
parted -s /dev/mmcblk0 mklabel msdos
- Tsim ib ntu rau
/boot
rau 128 megabytes:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB
. Tus thawj tsis nco megabyte yuav tsum tau sab laug rau lub cim nws tus kheej thiab rau lub bootloader. - Tsim ib lub hauv paus FS rau tus so ntawm lub peev xwm:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- Yog tias mam li nco dheev koj tsis tau tsim lossis hloov cov ntaub ntawv muab faib, koj yuav tsum ua kom tiav 'partprobe', tom qab ntawd cov lus muab faib yuav rov nyeem dua.
- Tsim ib tug boot partition filesystem sau npe
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- Tsim ib lub hauv paus filesystem nrog ib daim ntawv lo
ROOTFS
:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
Zoo heev, tam sim no koj tuaj yeem sau nws. Qhov no tseem yuav xav tau debootstrap
, ib qho txiaj ntsig los tsim cov hauv paus FS ntawm Debian-zoo li kev khiav hauj lwm systems: apt install debootstrap
.
Peb sau FS:
- Mount lub partition rau
/mnt/
(siv ib qho yooj yim mount point rau koj tus kheej):mount /dev/mmcblk0p2 /mnt
- Qhov tseeb peb sau cov ntaub ntawv system:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali
. Parameter--include
qhia ntxiv rau nruab ib co pob, kuv teev ib statically tsim QEMU emulator. Nws tso cai rau koj uachroot
rau ARM ib puag ncig. Lub ntsiab lus ntawm lwm cov kev xaiv tuaj yeem pom hauvman debootstrap
. Tsis txhob hnov ββββqab tias tsis yog txhua lub rooj tsav xwm ARM txhawb kev tsim qauvarmhf
. - Vim qhov sib txawv ntawm architectures
debootstrap
yog ua nyob rau hauv ob theem, qhov thib ob yog ua raws li nram no:chroot /mnt/ /debootstrap/debootstrap --second-stage
- Tam sim no koj yuav tsum spin:
chroot /mnt /bin/bash
- Peb sau
/etc/hosts
ΠΈ/etc/hostname
phiaj FS. Sau tib yam li cov ntsiab lus ntawm koj lub computer hauv zos, nco ntsoov hloov lub hostname nkaus xwb. - Koj tuaj yeem kho txhua yam ntxiv. Hauv particular, kuv nruab
locales
(repository keys), reconfiguring locales and time zone (dpkg-reconfigure locales tzdata
). Tsis txhob hnov ββqab teeb tus password nrog cov lus txibpasswd
. - Teem tus password rau
root
pabpasswd
. - Kev npaj ntawm daim duab rau kuv yog ua tiav los ntawm kev sau
/etc/fstab
sab hauv/mnt/
.
Kuv yuav upload raws li cov ntawv sau ua ntej, yog li cov ntsiab lus yuav zoo li no:
LABEL=ROOTFS / pib yuam kev=remount-ro 0 1
LABEL=BOOT /boot auto defaults 0 0
Thaum kawg, koj tuaj yeem mount lub khau raj muab faib, peb yuav xav tau nws rau lub ntsiav: "mount /dev/mmcblk0p1 /mnt/boot/"
Tsim Linux
Txhawm rau tsim cov ntsiav (thiab tom qab ntawd lub bootloader) ntawm Debian Kev Xeem, koj yuav tsum tau nruab cov txheej txheem ntawm GCC, GNU Ua thiab GNU C Library header cov ntaub ntawv rau lub hom phiaj architecture (Kuv muaj. armhf
), nrog rau OpenSSL headers, console laij lej bc
, bison
ΠΈ flex
: apt install crossbuild-essential-armhf bison flex libssl-dev bc
. Txij li thaum lub neej ntawd loader nrhiav ib cov ntaub ntawv zImage
nyob rau hauv cov ntaub ntawv system ntawm lub khau raj muab faib, nws yog lub sij hawm los rhuav lub flash drive.
- Cloning lub kernel ntev dhau lawm, yog li kuv yuav cia li rub tawm:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
. Unpack thiab mus rau qhov chaw directory:tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
- Configure ua ntej compiling:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig
. Lub config yog nyob rau hauv cov directoryarch/arm/configs/
. Yog tias tsis muaj, koj tuaj yeem sim nrhiav thiab rub tawm ib qho kev npaj ua tiav thiab dhau lub npe ntawm cov ntaub ntawv hauv phau ntawv qhia no mus rau qhov ntsuas.KBUILD_DEFCONFIG
. Hauv qhov xwm txheej hnyav, tam sim ntawd mus rau kab lus tom ntej. - Koj tuaj yeem xaiv tweak qhov chaw:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- Thiab cross-compile daim duab:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- Tam sim no koj tuaj yeem luam cov ntaub ntawv kernel:
cp arch/arm/boot/zImage /mnt/boot/
- Thiab cov ntaub ntawv los ntawm DeviceTree (pib piav qhia txog kho vajtse muaj nyob rau ntawm lub rooj tsavxwm):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- Thiab nruab cov modules sib sau ua ke cov ntaub ntawv cais:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
Lub kernel npaj txhij. Koj tuaj yeem unmount txhua yam: umount /mnt/boot/ /mnt/
Das U Boot
Txij li thaum lub bootloader yog sib tham sib, lub rooj tsavxwm nws tus kheej, ib tug cia ntaus ntawv, thiab ib tug xaiv USB-rau-UART ntaus ntawv yog txaus los ntsuam xyuas nws cov hauj lwm. Ntawd yog, koj tuaj yeem ncua lub ntsiav thiab OS rau tom qab.
Feem coob ntawm cov tuam txhab lag luam xav kom siv Das U-Boot rau thawj khau raj. Kev txhawb nqa tag nrho feem ntau yog muab rau hauv nws tus kheej nkhaus, tab sis tsis txhob hnov ββββqab pab txhawb rau hauv cov dej ntws. Hauv kuv rooj plaub, lub rooj tsavxwm tau txhawb nqa hauv
Peb sau lub bootloader nws tus kheej:
- Clone lub ruaj khov ceg ntawm lub repository:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
- Cia peb mus rau lub directory nws tus kheej:
cd u-boot
- Preparing lub build configuration:
make mx6ull_14x14_evk_defconfig
. Qhov no tsuas yog ua haujlwm yog tias qhov teeb tsa nyob hauv Das U-Boot nws tus kheej, txwv tsis pub koj yuav tsum nrhiav cov chaw tsim khoom teeb tsa thiab muab tso rau hauv lub hauv paus ntawm qhov chaw khaws cia hauv cov ntaub ntawv.config
, los yog sib sau ua ke hauv lwm txoj kev pom zoo los ntawm cov chaw tsim khoom. - Peb sau cov duab bootloader nws tus kheej nrog tus ntoo khaub lig-compiler
armhf
:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
Yog li ntawd, peb tau txais cov ntaub ntawv u-boot.imx
, qhov no yog ib daim duab npaj txhij uas tuaj yeem sau rau hauv USB flash drive. Peb sau rau SD daim npav, hla thawj 1024 bytes. Vim li cas kuv thiaj xaiv lub hom phiaj u-boot.imx
? Vim li cas tsis nco 1024 bytes? Nov yog qhov lawv xav ua hauv
Ua tiav, koj tuaj yeem rub tawm. Lub bootloader yuav tsum tshaj tawm nws tus kheej version, qee cov ntaub ntawv hais txog lub rooj tsavxwm, thiab sim nrhiav cov duab ntsiav ntawm qhov muab faib. Yog tias nws ua tsis tau, nws yuav sim khau raj hauv lub network. Feem ntau, cov zis tau nthuav dav heev, koj tuaj yeem pom qhov yuam kev thaum muaj teeb meem.
Es tsis txhob ib tug xaus
Koj puas paub tias lub hauv pliaj ntawm tus ntses taub ntswg tsis muaj nqaij? Nws yog lub qhov muag thib peb, lub ntsej muag rog rau echolocation!
Tau qhov twg los: www.hab.com