tl; dr: kujenga picha ya Kali Linux kwa kompyuta ya ARM, katika programu debootstrap, linux и u-boot.
Ikiwa ulinunua programu isiyo maarufu sana ya ubao mmoja, unaweza kukabiliwa na ukosefu wa picha ya usambazaji unaopenda kwa hiyo. Takriban kitu kimoja kilifanyika na Kali Linux Hakuna mtu wa IMX6 (ninaandaa moja), kwa hivyo lazima niikusanye mwenyewe.
Mchakato wa kupakua ni rahisi sana:
- Vifaa vimeanzishwa.
- Kutoka kwa eneo fulani kwenye kifaa cha kuhifadhi (kadi ya SD/eMMC/n.k) kipakiaji kinasomwa na kutekelezwa.
- Bootloader hutafuta kernel ya mfumo wa uendeshaji na kuipakia kwenye eneo fulani la kumbukumbu na kuitekeleza.
- Kernel hupakia OS iliyobaki.
Kiwango hiki cha maelezo kinatosha kwa kazi yangu, unaweza kusoma maelezo . Maeneo "baadhi" yaliyotajwa hapo juu yanatofautiana kutoka kwa ubao hadi ubao, ambayo hujenga matatizo fulani ya ufungaji. Inapakia mifumo ya seva ya ARM kutumia UEFI, lakini wakati hii haipatikani kwa kila mtu, itabidi kukusanya kila kitu kando.
Kuunda mfumo wa faili wa mizizi
Kwanza unahitaji kuandaa sehemu. Das U-Boot inasaidia mifumo tofauti ya faili, nilichagua FAT32 kwa /boot na ext3 kwa mzizi, huu ndio mpangilio wa kawaida wa picha wa Kali kwenye ARM. Nitatumia GNU Iliyogawanywa, lakini unaweza kufanya vivyo hivyo kwa njia inayojulikana zaidi fdisk. Utahitaji pia dosfstools и e2fsprogs kuunda mfumo wa faili: apt install parted dosfstools e2fsprogs.
Tunaweka alama kwenye kadi ya SD:
- Weka alama kwenye kadi ya SD kama kutumia ugawaji wa MBR:
parted -s /dev/mmcblk0 mklabel msdos - Unda sehemu chini
/bootkwa megabytes 128:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. Megabyte ya kwanza iliyokosa lazima iachwe kwa markup yenyewe na kwa bootloader. - Tunaunda mfumo wa faili wa mizizi kwa uwezo mzima uliobaki:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100% - Ikiwa ghafla faili zako za kizigeu hazijaundwa au hazijabadilika, unahitaji kuendesha `partprobe`, kisha jedwali la kizigeu litasomwa tena.
- Unda mfumo wa faili kwa kizigeu cha buti na lebo
BOOT:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1 - Unda mfumo wa faili wa mizizi na lebo
ROOTFS:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
Vizuri, sasa unaweza kuijaza. Kwa hili utahitaji zaidi debootstrap, matumizi ya kuunda FS ya mizizi Debian- mifumo ya uendeshaji inayofanana: apt install debootstrap.
Tunakusanya FS:
- Weka kizigeu ndani
/mnt/(tumia sehemu ya mlima inayofaa zaidi):mount /dev/mmcblk0p2 /mnt - Kwa kweli tunajaza mfumo wa faili:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali. Kigezo--includeinaonyesha kusakinisha vifurushi vingine, nilitaja emulator ya QEMU iliyojengwa kwa takwimu. Inakuruhusu kufanyachrootkatika mazingira ya ARM. Maana ya chaguzi zilizobaki zinaweza kupatikana katikaman debootstrap. Usisahau kwamba sio kila bodi ya ARM inasaidia usanifuarmhf. - Kwa sababu ya tofauti katika usanifu
debootstrapinafanywa kwa hatua mbili, ya pili inafanywa kama hii:chroot /mnt/ /debootstrap/debootstrap --second-stage - Sasa unahitaji kuifuta:
chroot /mnt /bin/bash - Tunajaza
/etc/hostsи/etc/hostnamelengo la FS. Jaza sawa na yaliyomo kwenye kompyuta yako ya karibu, kumbuka tu kubadilisha jina la mwenyeji. - Unaweza kubinafsisha kila kitu kingine. Hasa, mimi kufunga
locales(funguo za hazina), rekebisha eneo na eneo la saa (dpkg-reconfigure locales tzdata) Usisahau kuweka nenosiri kwa amripasswd. - Weka nenosiri kwa
roottimupasswd. - Maandalizi ya picha kwangu yanaisha na kujaza
/etc/fstabndani/mnt/.
Nitapakia kwa mujibu wa lebo zilizoundwa awali, kwa hivyo maudhui yatakuwa kama hii:
LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /chaguo-msingi otomatiki 0 0
Mwishowe, unaweza kuweka kizigeu cha buti, tutaihitaji kwa kernel: `mount /dev/mmcblk0p1 /mnt/boot/`
Mkutano Linux
Ili kujenga kernel (na bootloader baadaye) Debian Upimaji unahitaji kusakinisha seti ya kawaida ya faili za kichwa cha GCC, GNU Make, na GNU C Library kwa usanifu lengwa (Nina armhf), pamoja na vichwa vya OpenSSL, kikokotoo cha koni bc, bison и flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. Kwa kuwa kipakiaji chaguo-msingi hutafuta faili zImage kwenye mfumo wa faili wa ugawaji wa boot, ni wakati wa kugawanya gari la flash.
- Inachukua muda mrefu sana kuunda kernel, kwa hivyo nitapakua tu:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz. Wacha tufungue na tuende kwenye saraka ya chanzo:tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1 - Sanidi kabla ya mkusanyiko:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. Mipangilio iko kwenye sarakaarch/arm/configs/. Ikiwa hakuna, unaweza kujaribu kupata na kupakua iliyotengenezwa tayari na kupitisha jina la faili kwenye saraka hii kama parameta.KBUILD_DEFCONFIG. Kama suluhu ya mwisho, mara moja nenda kwenye hatua inayofuata. - Kwa hiari unaweza kurekebisha mipangilio:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig - Na unganisha picha:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- - Sasa unaweza kunakili faili ya kernel:
cp arch/arm/boot/zImage /mnt/boot/ - Na faili kutoka kwa DeviceTree (maelezo ya vifaa kwenye ubao):
cp arch/arm/boot/dts/*.dtb /mnt/boot/ - Na usakinishe moduli zilizokusanywa kwa namna ya faili tofauti:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
Punje iko tayari. Unaweza kushusha kila kitu: umount /mnt/boot/ /mnt/
Das U-Boot
Kwa kuwa bootloader inaingiliana, unachohitaji ili kupima uendeshaji wake ni bodi yenyewe, kifaa cha kuhifadhi, na kwa hiari kifaa cha USB-to-UART. Hiyo ni, unaweza kuahirisha kernel na OS kwa baadaye.
Watengenezaji wengi wanapendekeza kutumia Das U-Boot kwa buti ya kwanza. Usaidizi kamili hutolewa kwa uma wao wenyewe, lakini hawasahau kuchangia kwenye mto. Kwa upande wangu, bodi inaungwa mkono katika Hivyo Nilipuuza.
Wacha tukusanye bootloader yenyewe:
- Tunatengeneza tawi thabiti la hazina:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10 - Wacha tuende kwenye saraka yenyewe:
cd u-boot - Kuandaa usanidi wa muundo:
make mx6ull_14x14_evk_defconfig. Hii inafanya kazi tu ikiwa usanidi uko kwenye Das U-Boot yenyewe, vinginevyo utahitaji kupata usanidi wa mtengenezaji na kuiweka kwenye mzizi wa hazina kwenye faili..config, au kukusanyika kwa njia nyingine yoyote iliyopendekezwa na mtengenezaji. - Tunakusanya picha ya bootloader yenyewe kwa kutumia mkusanyaji wa msalaba
armhf:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
Kama matokeo, tunapata faili u-boot.imx, hii ni picha iliyopangwa tayari ambayo inaweza kuandikwa kwenye gari la flash. Tunaandika kwa kadi ya SD, kuruka baiti 1024 za kwanza. Kwa nini nilichagua Target u-boot.imx? Kwa nini nilikosa hasa ka 1024? Hivi ndivyo wanapendekeza kufanya ndani . Kwa bodi zingine, ujenzi wa picha na mchakato wa kurekodi unaweza kuwa tofauti kidogo.
Imekamilika, unaweza kuwasha. Kiboreshaji cha boot lazima kiripoti toleo lake mwenyewe, habari fulani kuhusu ubao, na jaribu kupata picha ya kernel kwenye kizigeu. Ikiwa haitafanikiwa, itajaribu kuwasha mtandao. Kwa ujumla, matokeo ni ya kina kabisa, unaweza kupata kosa ikiwa kuna shida.
Badala ya hitimisho
Je! unajua kuwa paji la uso la pomboo sio mfupa? Kwa kweli ni jicho la tatu, lenzi ya mafuta kwa echolocation!
Chanzo: mapenzi.com
