Келгиле, GNU/баштайлыLinux ARM тактасында нөлдөн баштап (мисалы, Kali жана iMX.6 колдонуп)

курал; доктор: Кали образын түзүү Linux ARM компьютери үчүн, программада debootstrap, linux и u-boot.

Келгиле, GNU/баштайлыLinux ARM тактасында нөлдөн баштап (мисалы, Kali жана iMX.6 колдонуп)

Эгер сиз анча популярдуу эмес бир такталуу программалык камсыздоону сатып алсаңыз, анда ал үчүн сүйүктүү дистрибуцияңыздын сүрөтүнүн жоктугуна туш болушуңуз мүмкүн. Болжол менен ошол эле нерсе менен болгон пландаштырылган Flipper OneКали Linux IMX6 үчүн жөн гана эч ким жок (мен бирөөсүн даярдап жатам), ошондуктан аны өзүм чогултушум керек.

Жүктөө процесси абдан жөнөкөй:

  1. Аппараттык камсыздоо инициализацияланган.
  2. Сактагыч түзмөгүндөгү кээ бир аймактан (SD карта/eMMC/ж.б.) жүктөгүч окулат жана аткарылат.
  3. Жүктөгүч операциялык системанын өзөгүн издейт жана аны кандайдыр бир эс тутум аймагына жүктөйт жана аны аткарат.
  4. Ядро ОСтун калган бөлүгүн жүктөйт.

Бул детал деңгээли менин тапшырмам үчүн жетиштүү, сиз майда-чүйдөсүнө чейин окуй аласыз башка макалада. Жогоруда айтылган "кээ бир" аймактар ​​тактайча айырмаланып турат, бул орнотууда айрым кыйынчылыктарды жаратат. ARM сервер платформалары жүктөлүүдө стандартташтырууга аракет кылып жатышат UEFI колдонуп, бирок бул бардыгына жеткиликтүү болбосо да, бардыгын өзүнчө чогултушуңуз керек болот.

Тамыр файлдык системасын куруу

Биринчиден, сиз бөлүмдөрдү даярдоо керек. Das U-Boot ар кандай файл системаларын колдойт, мен үчүн FAT32ди тандадым /boot жана тамыр үчүн ext3, бул ARMдеги Кали үчүн стандарттык сүрөт схемасы. Мен GNU Partedди колдоном, бирок сиз дагы тааныш жол менен ошону жасай аласыз fdisk. Сизге да керек болот dosfstools и e2fsprogs файл системасын түзүү үчүн: apt install parted dosfstools e2fsprogs.

Биз SD картаны белгилейбиз:

  1. SD картаны MBR бөлүү катары белгилеңиз: parted -s /dev/mmcblk0 mklabel msdos
  2. астында бөлүм түзүү /boot 128 мегабайт үчүн: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. Өткөрүлгөн биринчи мегабайт белгилөөнүн өзү жана жүктөгүч үчүн калтырылышы керек.
  3. Биз калган бардык кубаттуулук үчүн тамыр файл тутумун түзөбүз: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. Эгер күтүлбөгөн жерден бөлүү файлдарыңыз түзүлбөй калса же өзгөрбөсө, анда сиз `partprobe` иштетишиңиз керек, анда бөлүм таблицасы кайра окулат.
  5. Белги менен жүктөө бөлүмү үчүн файл тутумун түзүңүз BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. этикетка менен тамыр файл системасын түзүү ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

Жакшы, эми аны толтурсаңыз болот. Бул үчүн сизге кошумча керек болот debootstrap, root FS түзүү үчүн утилита Debian- окшош операциялык системалар: apt install debootstrap.

Биз FS чогултабыз:

  1. Бөлүктү орнотуңуз /mnt/ (бир кыйла ыңгайлуу монтаждоо пунктун колдонуңуз): mount /dev/mmcblk0p2 /mnt
  2. Биз чындыгында файл тутумун толтурабыз: debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali... Параметр --include кээ бир пакеттерди кошумча орнотууну көрсөтүп турат, мен статикалык курулган QEMU эмуляторун көрсөттү. аткарууга мүмкүндүк берет chroot ARM чөйрөсүндө. Калган варианттардын мааниси менен таанышууга болот man debootstrap. Ар бир ARM тактасы архитектураны колдобой турганын унутпаңыз armhf.
  3. Архитектурадагы айырмачылыктан улам debootstrap эки этапта аткарылат, экинчиси төмөнкүдөй аткарылат: chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. Эми сиз аны бузушуңуз керек: chroot /mnt /bin/bash
  5. Биз толтурабыз /etc/hosts и /etc/hostname максаттуу FS. Жергиликтүү компьютериңиздеги мазмунду толтуруңуз, жөн гана хосттун атын алмаштырууну унутпаңыз.
  6. Калганынын баарын ыңгайлаштыра аласыз. Атап айтканда, мен орнотуу locales (репозиторий ачкычтары), тилдерди жана убакыт алкагын кайра конфигурациялаңыз (dpkg-reconfigure locales tzdata). Буйрук менен сырсөздү коюуну унутпаңыз passwd.
  7. үчүн сырсөз коюу root команда passwd.
  8. Мен үчүн образды даярдоо толтуруу менен аяктайт /etc/fstab ичинде /mnt/.

Мен мурда түзүлгөн тэгдерге ылайык жүктөйм, андыктан мазмун төмөнкүдөй болот:

LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=ЖҮКТӨТҮҮ / жүктөө авто демейки 0 0

Акырында, сиз жүктөө бөлүмүн орното аласыз, ал бизге ядро ​​үчүн керек болот: `mount /dev/mmcblk0p1 /mnt/boot/`

жыйналыш Linux

Ядрону (жана кийинчерээк жүктөгүчтү) куруу үчүн Debian Тестирлөө максаттуу архитектура үчүн GCC, GNU Make жана GNU C китепканасынын стандарттуу баш файлдарын орнотууну талап кылат (менде бар armhf), ошондой эле OpenSSL аталыштары, консолдук калькулятор bc, bison и flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. Анткени демейки жүктөгүч файлды издейт zImage жүктөө бөлүмүнүн файл тутумунда, флэш-дискти бөлүүгө убакыт келди.

  1. Ядрону клондоо өтө көп убакытты талап кылат, андыктан мен жөн гана жүктөп алам: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz. Келгиле, таңгакты ачып, булак каталогуна баралы: tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
  2. Компиляциядан мурун конфигурациялаңыз: make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. Конфигурация каталогдо жайгашкан arch/arm/configs/. Эгерде жок болсо, сиз даяр файлды таап, жүктөп алууга жана бул каталогдогу файлдын атын параметр катары өткөрүп берүүгө аракет кылсаңыз болот. KBUILD_DEFCONFIG. Акыркы чара катары, дароо кийинки пунктка өтүңүз.
  3. Каалоо боюнча сиз орнотууларды өзгөртө аласыз: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. Жана сүрөттү кайчылаш түзүңүз: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. Эми сиз өзөк файлын көчүрө аласыз: cp arch/arm/boot/zImage /mnt/boot/
  6. Жана DeviceTree файлдары (тактадагы жабдыктын сүрөттөлүшү): cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. Ал эми өзүнчө файлдар түрүндө чогултулган модулдарды орнотуу: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

ядро даяр. Сиз баарын ажырата аласыз: umount /mnt/boot/ /mnt/

Das U-Boot

Жүктөгүч интерактивдүү болгондуктан, анын иштешин текшерүү үчүн тактайдын өзү, сактагыч түзмөгү жана кошумча түрдө USB-UART түзмөгү керек. Башкача айтканда, сиз өзөктү жана ОСти кийинкиге калтырсаңыз болот.

Өндүрүүчүлөрдүн басымдуу көпчүлүгү баштапкы жүктөө үчүн Das U-Boot колдонууну сунуштайт. Толук колдоо, адатта, өз айры менен камсыз кылынат, бирок алар жогорку агымына салым кошууну унутпагыла. Менин учурда, башкармалык колдоого алынат негизги линияошондуктан айры Мен көңүл бурбай койдум.

Келгиле, жүктөгүчтүн өзүн чогулталы:

  1. Биз репозиторийдин туруктуу бутагын клондойбуз: git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. Келгиле, каталогдун өзүнө баралы: cd u-boot
  3. Куруу конфигурациясын даярдоо: make mx6ull_14x14_evk_defconfig. Бул конфигурация Das U-Boot'дун өзүндө болсо гана иштейт, антпесе өндүрүүчүнүн конфигурациясын таап, аны файлдагы репозиторийдин тамырына коюшуңуз керек болот. .config, же өндүрүүчү сунуш кылган башка ыкма менен чогултуңуз.
  4. Биз жүктөгүчтүн сүрөтүн кайчылаш компилятордун жардамы менен чогултабыз armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

Натыйжада биз файлды алабыз u-boot.imx, бул флешкага жазууга мүмкүн болгон даяр сүрөт. Биз биринчи 1024 байтты өткөрүп жиберип, SD картага жазабыз. Эмне үчүн мен Максатты тандадым u-boot.imx? Эмне үчүн мен так 1024 байтты өткөрүп жибердим? Булар эмне кылууну сунуштап жатышат документтер. Башка такталар үчүн сүрөттү түзүү жана жазуу процесси бир аз башкача болушу мүмкүн.

Бүттү, сиз жүктөй аласыз. Жүктөгүч өзүнүн версиясын, такта жөнүндө кээ бир маалыматты билдирип, бөлүмдөн ядронун сүрөтүн табууга аракет кылышы керек. Эгер ийгиликсиз болсо, ал тармак аркылуу жүктөөгө аракет кылат. Жалпысынан алганда, чыгаруу абдан деталдуу, көйгөй бар болсо, катаны таба аласыз.

Ордуна корутундусу

Дельфиндин чекеси сөөктүү эмес экенин билесизби? Бул түз мааниде үчүнчү көз, эхолокация үчүн майлуу линза!

Келгиле, GNU/баштайлыLinux ARM тактасында нөлдөн баштап (мисалы, Kali жана iMX.6 колдонуп)

Келгиле, GNU/баштайлыLinux ARM тактасында нөлдөн баштап (мисалы, Kali жана iMX.6 колдонуп)

Source: www.habr.com

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster