tl; dr: Ina gina hoton Kali Linux don kwamfutar ARM, a cikin shirin debootstrap
, linux
и u-boot
.
Idan kun sayi wasu da ba shahararriyar mai biyan kuɗi ɗaya ba, za ku iya fuskantar rashin hoton kayan rarraba da kuka fi so. Haka abin ya faru da yawa
Tsarin zazzagewa abu ne mai sauƙi:
- An fara kayan aikin.
- Daga wani yanki akan na'urar ajiya (katin SD/eMMC/da sauransu) ana karantawa kuma ana aiwatar da bootloader.
- Loader yana neman kernel na tsarin aiki kuma ya loda shi zuwa wani yanki na ƙwaƙwalwar ajiya yana aiwatar da shi.
- Kwayar tana loda sauran OS.
Don aikina, wannan matakin daki-daki ya isa, zaku iya karanta cikakkun bayanai
Gina tushen tsarin fayil
Da farko kuna buƙatar shirya sassan. Das U-Boot yana goyan bayan tsarin fayil daban-daban, na zaɓi FAT32 don /boot
da ext3 don tushen, wannan shine daidaitaccen alamar hoto don Kali a ƙarƙashin ARM. Zan yi amfani da GNU Parted, amma kuna iya yin daidai da saba fdisk
. Hakanan zaka buƙaci dosfstools
и e2fsprogs
don ƙirƙirar tsarin fayil: apt install parted dosfstools e2fsprogs
.
Rarraba katin SD:
- Alama katin SD kamar yadda ake amfani da rarrabuwar MBR:
parted -s /dev/mmcblk0 mklabel msdos
- Ƙirƙiri sashe don
/boot
don 128 megabyte:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB
. Dole ne a bar megabyte na farko da aka rasa don alamar da kanta da kuma na bootloader. - Ƙirƙiri tushen FS don sauran ƙarfin:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- Idan ba zato ba tsammani ba ku ƙirƙira ko canza fayilolin bangare ba, kuna buƙatar aiwatar da `partprobe', sannan za a sake karanta teburin ɓangaren.
- Ƙirƙiri tsarin fayil ɗin ɓangaren taya mai lakabi
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- Ƙirƙiri tushen tsarin fayil tare da lakabi
ROOTFS
:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
Mai girma, yanzu za ku iya cika shi. Wannan kuma zai buƙaci debootstrap
, mai amfani don ƙirƙirar tushen FS akan tsarin aiki kamar Debian: apt install debootstrap
.
Muna tattara FS:
- Dutsen bangare zuwa
/mnt/
(Yi amfani da wurin tudu mafi dacewa da kanka):mount /dev/mmcblk0p2 /mnt
- A gaskiya mun cika tsarin fayil:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali
. Siga--include
ya ƙayyade don ƙara shigar da wasu fakiti, Na ƙayyadadden ƙirar ƙirar QEMU da aka gina a tsaye. Yana ba ku damar yin aikichroot
zuwa yanayin ARM. Ana iya samun ma'anar sauran zaɓuɓɓuka a cikiman debootstrap
. Kar a manta cewa ba kowane kwamiti na ARM ke goyan bayan gine-gine baarmhf
. - Saboda bambancin gine-gine
debootstrap
ana yin shi a matakai biyu, na biyu kuma ana yin shi kamar haka:chroot /mnt/ /debootstrap/debootstrap --second-stage
- Yanzu kuna buƙatar juyawa:
chroot /mnt /bin/bash
- Mun cika
/etc/hosts
и/etc/hostname
manufa FS. Cika iri ɗaya da abun ciki akan kwamfutar gida, ku tuna maye gurbin sunan mai masauki kawai. - Kuna iya siffanta komai. Musamman, na shigar
locales
(maɓallai na ajiya), sake saita wurare da yankin lokaci (dpkg-reconfigure locales tzdata
). Kar a manta saita kalmar sirri tare da umarninpasswd
. - Saita kalmar sirri don
root
tawagapasswd
. - Ana kammala shirye-shiryen hoton a gare ni ta hanyar cikawa
/etc/fstab
a ciki/mnt/
.
Zan loda daidai da tags ɗin da aka ƙirƙira a baya, don haka abun ciki zai kasance kamar haka:
LABEL = Tushen / kurakurai ta atomatik = remount-ro 0 1
LABEL = BOOT / Boot auto Predefined 0 0
A ƙarshe, za ku iya hawa ɓangaren taya, za mu buƙaci shi don kernel: `mount /dev/mmcblk0p1 /mnt/boot/`
Gina Linux
Don gina kernel (sannan bootloader) akan Gwajin Debian, kuna buƙatar shigar da daidaitattun saitin GCC, GNU Make da fayilolin GNU C Library don gine-ginen da aka yi niyya (Ina da armhf
), da kuma masu kai na OpenSSL, kalkuleta na wasan bidiyo bc
, bison
и flex
: apt install crossbuild-essential-armhf bison flex libssl-dev bc
. Tunda tsoho mai lodi yana neman fayil zImage
a kan tsarin fayil na ɓangaren taya, lokaci ya yi da za a karya filasha.
- Rufe kwaya ya yi tsayi da yawa, don haka kawai zan zazzage:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
. Cire fakitin kuma je zuwa ga adireshin tushen:tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
- Saita kafin hadawa:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig
. Tsarin yana cikin kundin adireshiarch/arm/configs/
. Idan babu, kuna iya ƙoƙarin nemowa da zazzage wanda aka shirya kuma ku wuce sunan fayil ɗin a cikin wannan jagorar zuwa ma'aunin.KBUILD_DEFCONFIG
. A cikin matsanancin yanayi, nan da nan ci gaba zuwa sakin layi na gaba. - Kuna iya canza saitunan da zaɓin zaɓi:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- Kuma ku haɗa hoton:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- Yanzu zaku iya kwafi fayil ɗin kernel:
cp arch/arm/boot/zImage /mnt/boot/
- Da fayiloli daga DeviceTree (bayanin kayan aikin da ke akwai akan allo):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- Kuma shigar da kayayyaki da aka haɗa a matsayin fayiloli daban:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
An shirya kwaya. Kuna iya kwance komai: umount /mnt/boot/ /mnt/
Das U Boot
Tun da bootloader yana da ma'amala, hukumar kanta, na'urar ajiya, da na'urar USB-zuwa-UART na zaɓi sun isa don gwada aikinta. Wato, zaku iya jinkirta kernel da OS na gaba.
Yawancin masana'antun suna ba da shawarar amfani da Das U-Boot don taya na farko. Ana ba da cikakken tallafi a cikin cokali mai yatsu, amma kar a manta da bayar da gudummawa a cikin sama. A cikin yanayina, ana tallafawa hukumar a ciki
Muna tattara bootloader kanta:
- Klone tsayayyen reshe na ma'ajiya:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
- Mu je kan directory kanta:
cd u-boot
- Ana shirya tsarin ginawa:
make mx6ull_14x14_evk_defconfig
. Wannan yana aiki ne kawai idan tsarin yana cikin Das U-Boot da kansa, in ba haka ba kuna buƙatar nemo saitunan masana'anta kuma sanya shi cikin tushen ma'ajin a cikin fayil ɗin..config
, ko tattara ta wata hanyar da masana'anta suka ba da shawarar. - Muna tattara hoton bootloader kanta tare da mai haɗawa da giciye
armhf
:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
A sakamakon haka, muna samun fayil ɗin u-boot.imx
, wannan hoton da aka shirya ne wanda za'a iya rubutawa zuwa kebul na USB. Muna rubuta zuwa katin SD, muna tsallake 1024 bytes na farko. Me yasa na zabi manufa u-boot.imx
? Me yasa aka rasa daidai 1024 bytes? Wannan shi ne abin da suke ba da shawarar yin a ciki
Anyi, zaku iya saukewa. Bootloader yakamata ya ba da rahoton nau'in nasa, wasu bayanai game da allo, kuma yayi ƙoƙarin nemo hoton kernel akan ɓangaren. Idan ya kasa, zai yi ƙoƙarin yin boot akan hanyar sadarwar. Gabaɗaya, fitowar ta cika daki-daki, za ku iya samun kuskure idan akwai matsala.
Maimakon a ƙarshe
Shin ko kun san cewa goshin dabbar dolphin ba kashi ba ne? A zahiri ido na uku ne, ruwan tabarau mai kitse don ƙara girma!
source: www.habr.com