tl;dr: ΡΠΎΠ±ΠΈΡΠ°Ρ ΠΎΠ±ΡΠ°Π· Kali Linux Π΄Π»Ρ ARM-ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ debootstrap
, linux
ΠΈ u-boot
.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΊΡΠΏΠ°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΎΠ΄Π½ΠΎΠΏΠ»Π°ΡΠ½ΠΈΠΊ, ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ Ρ
ΠΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ:
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΆΠ΅Π»Π΅Π·ΠΎ.
- ΠΠ· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (SD-ΠΊΠ°ΡΡΠ°/eMMC/etc) ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ.
- ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΡΠ΅Ρ ΡΠ΄ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ.
- Π―Π΄ΡΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΠ‘.
ΠΠ»Ρ ΠΌΠΎΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ
Π²Π°ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ
Π‘Π±ΠΎΡΠΊΠ° ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ. Das U-Boot ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π€Π‘, Ρ Π²ΡΠ±ΡΠ°Π» FAT32 Π΄Π»Ρ /boot
ΠΈ ext3 Π΄Π»Ρ ΠΊΠΎΡΠ½Ρ, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄Π»Ρ Kali ΠΏΠΎΠ΄ ARM. Π― Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ GNU Parted, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ fdisk
. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ dosfstools
ΠΈ e2fsprogs
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π€Π‘: apt install parted dosfstools e2fsprogs
.
Π Π°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ SD-ΠΊΠ°ΡΡΡ:
- ΠΡΠΌΠ΅ΡΠ°Π΅ΠΌ SD-ΠΊΠ°ΡΡΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ MBR-ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ:
parted -s /dev/mmcblk0 mklabel msdos
- Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄
/boot
Π½Π° 128 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB
. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ΄ ΡΠ°ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΈ ΠΏΠΎΠ΄ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ. - Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π€Π‘ Π½Π° Π²ΡΡ ΠΎΡΡΠ°Π²ΡΡΡΡΡ ΡΠΌΠΊΠΎΡΡΡ:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- ΠΡΠ»ΠΈ Π²Π΄ΡΡΠ³ Ρ Π²Π°Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π½Π°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ `partprobe`, ΡΠΎΠ³Π΄Π° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°Π½Π°.
- Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π€Π‘ Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ
ROOTFS
:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ debootstrap
, ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΡΡ
Π€Π‘ Debian-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ: apt install debootstrap
.
Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π€Π‘:
- ΠΠΎΠ½ΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π» Π²
/mnt/
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠΎΡΠΊΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ):mount /dev/mmcblk0p2 /mnt
- Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali
. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ--include
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Ρ ΡΠΊΠ°Π·Π°Π» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠΌΡΠ»ΡΡΠΎΡ QEMU. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡchroot
Π² ARM-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΡΡΠ» ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²man debootstrap
. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅, ΡΡΠΎ Π½Π΅ Π»ΡΠ±Π°Ρ ARM-ΠΏΠ»Π°ΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡarmhf
. - ΠΠ·-Π·Π° ΡΠ°Π·Π½ΠΈΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ
debootstrap
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°, Π²ΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊ:chroot /mnt/ /debootstrap/debootstrap --second-stage
- Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΡΡΡΠΈΡΡΡΡ:
chroot /mnt /bin/bash
- ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ
/etc/hosts
ΠΈ/etc/hostname
ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π€Π‘. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π½Π° Π²Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Ρ ΠΎΡΡΠ°. - ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ½Π°ΡΡΡΠΎΠΈΡΡ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Ρ Π΄ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ
locales
(ΠΊΠ»ΡΡΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ), ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Ρ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡ (dpkg-reconfigure locales tzdata
). ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉpasswd
. - ΠΠ°Π΄Π°ΡΠΌ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ
root
ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉpasswd
. - ΠΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ
/etc/fstab
Π²Π½ΡΡΡΠΈ/mnt/
.
ΠΠ°Π³ΡΡΠΆΠ°ΡΡ Π±ΡΠ΄Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π½Π΅Π΅ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /boot auto defaults 0 0
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π», ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΡΠ΄ΡΠ°: `mount /dev/mmcblk0p1 /mnt/boot/`
Π‘Π±ΠΎΡΠΊΠ° Linux
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° (ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΏΠΎΡΠΎΠΌ) Π½Π° Debian Testing Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ· GCC, GNU Make ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² GNU C Library Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ (Ρ ΠΌΠ΅Π½Ρ armhf
), Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ OpenSSL, ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ bc
, bison
ΠΈ flex
: apt install crossbuild-essential-armhf bison flex libssl-dev bc
. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠ΅Ρ ΡΠ°ΠΉΠ» zImage
Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΏΠΎΡΠ° ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΠ»Π΅ΡΠΊΡ.
- ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΡΠ°Ρ:
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
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig
. ΠΠΎΠ½ΡΠΈΠ³ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈarch/arm/configs/
. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π½Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π°ΠΉΡΠΈ ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡKBUILD_DEFCONFIG
. Π ΠΊΡΠ°ΠΉΠ½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ. - ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΊΡΡΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- Π ΠΊΡΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π·:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»ΠΈΠΊ Ρ ΡΠ΄ΡΠΎΠΌ:
cp arch/arm/boot/zImage /mnt/boot/
- Π ΡΠ°ΠΉΠ»Ρ Ρ DeviceTree (ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΆΠ΅Π»Π΅Π·Π°):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- Π Π΄ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»ΠΈ:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
Π―Π΄ΡΠΎ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΠΎΠΆΠ½ΠΎ Π²ΡΡ ΠΎΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ: umount /mnt/boot/ /mnt/
Das U-Boot
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ, Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° USB-to-UART. Π’ΠΎ Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΡΠΎ ΠΈ ΠΠ‘ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ Π½Π° ΠΏΠΎΡΠΎΠΌ.
ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Das U-Boot Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΠΊΠ΅, Π½ΠΎ ΠΈ Π² Π°ΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΈΡΡ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ. Π ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ»Π°ΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²
CΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ:
- ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
- ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°ΠΌΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
cd u-boot
- ΠΠΎΡΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ:
make mx6ull_14x14_evk_defconfig
. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Das U-Boot, Π² ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΡΠ°ΠΉΠ».config
, ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. - Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΌ ΠΎΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ
armhf
:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» u-boot.imx
, ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΡΠΊΡ. ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π½Π° SD-ΠΊΠ°ΡΡΡ, ΠΏΡΠΎΠΏΡΡΡΠΈΠ² ΠΏΠ΅ΡΠ²ΡΠ΅ 1024 Π±Π°ΠΉΡΠ°. ΠΠΎΡΠ΅ΠΌΡ Ρ Π²ΡΠ±ΡΠ°Π» ΡΠ°ΡΠ³Π΅Ρ u-boot.imx
? ΠΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΠΈΠΌΠ΅Π½Π½ΠΎ 1024 Π±Π°ΠΉΡΠ°? Π’Π°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²
ΠΠΎΡΠΎΠ²ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ»Π°ΡΠ΅ ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ° Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. Π ΡΠ΅Π»ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π Π²Ρ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ Π»ΠΎΠ± Ρ Π΄Π΅Π»ΡΡΠΈΠ½Π° Π½Π΅ ΠΊΠΎΡΡΠΈΡΡΡΠΉ? ΠΡΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΡΡΠ΅ΡΠΈΠΉ Π³Π»Π°Π·, ΠΆΠΈΡΠΎΠ²Π°Ρ Π»ΠΈΠ½Π·Π° Π΄Π»Ρ ΡΡ ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΈ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com