ืื; ืืจ: ืืื ืืืืขื ืึท ืงืึทืื ืืื ืืงืก ืืืื ืคึฟืึทืจ ืึท ืึธืจืขื ืงืึธืืคึผืืืืขืจ ืืื ืืขื ืคึผืจืึธืืจืึทื debootstrap
, linux
ะธ u-boot
.
ืืืื ืืืจ ืืขืงืืืคื ืขืืืขืืข ื ืืฉื ืืืืขืจ ืคืึธืืงืก ืืืื-ืืึธืจื ืืืืืืืืืจื, ืืืจ ืงืขื ืืืื ืคืืืกื ืืื ืื ืคืขืื ืคืื ืึท ืืืื ืคืื ืืืื ืืึทืืืืกืืข ืคืึทืจืฉืคึผืจืืืืื ื ืคึฟืึทืจ ืขืก. ืืขืจื ืื ืืขืืืข ืืื ืืื ืืขืฉืขื ืืื
ืืขืจ ืืจืืคืงืืคืืข ืคึผืจืึธืฆืขืก ืืื ืืึทื ืฅ ืคึผืฉืื:
- ืื ืืึทืื ืืืึทืจื ืืื ืื ืืฉืึทืืืืื.
- ืคึฟืื ืขืืืขืืข ืฉืื ืืืืฃ ืื ืกืืึธืจืืืืฉ ืืืื (ืกื ืงืึธืจื / eMMC / ืขืืง) ืื ืืึธืึธืืืึธืึทืืขืจ ืืื ืืืืขื ืขื ืืื ืขืงืกืึทืงืืืืึทื.
- ืื ืืึธืึธืืืึธืึทืืขืจ ืงืืงื ืคึฟืึทืจ ืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืงืขืจื ืืื ืืึธืืื ืขืก ืืื ืขืืืขืืข ืืึผืจืื ืืขืื ื ืืื ืขืงืกืึทืงืืืฅ ืขืก.
- ืืขืจ ืงืขืจื ืืึธืืื ืื ืจืขืฉื ืคืื ืื ืึทืก.
ืืขืจ ืืืจืื ืคืื ืืขืืึทื ืืื ืืขื ืื ืคึฟืึทืจ ืืืื ืึทืจืืขื, ืืืจ ืงืขื ืขื ืืืืขื ืขื ืื ืืขืืึทืืืก
ืืืืขื ืื ืืืึธืจืฆื ืืขืงืข ืกืืกืืขื
ืขืจืฉืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืฆืืืจืืืื ืื ืกืขืงืฉืึทื ื. ืืึธืก U-Boot ืฉืืืฆื ืคืึทืจืฉืืืขื ืข ืืขืงืข ืกืืกืืขืืขื, ืืื ืืืืกืืขืจืืืืืื FAT32 ืคึฟืึทืจ /boot
ืืื ext3 ืคึฟืึทืจ ืืืึธืจืฆื, ืืึธืก ืืื ืืขืจ ื ืึธืจืืึทื ืืืื ืืืืกืืืื ืคึฟืึทืจ ืงืึทืื ืืืืฃ ARM. ืืื ืืืขื ื ืืฆื GNU Parted, ืึธืืขืจ ืืืจ ืงืขื ืขื ืืึธื ืื ืืขืืืข ืืื ืึท ืืขืจ ืืึทืงืึทื ื ืืืขื fdisk
. ืืืจ ืืืขื ืืืื ืืึทืจืคึฟื dosfstools
ะธ e2fsprogs
ืฆื ืฉืึทืคึฟื ืึท ืืขืงืข ืกืืกืืขื: apt install parted dosfstools e2fsprogs
.
ืืืจ ืฆืืืื ืื 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
, ืึท ื ืืฆื ืคึฟืึทืจ ืงืจืืืืืื ื ืืืึธืจืฆื ืืขืงืข ืกืืกืืขืืขื ืคึฟืึทืจ ืืขืืืึทื-ืืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขืืขื: apt install debootstrap
.
ืืืจ ืงืืืึทืื FS:
- ืฉืืขืื ืื ืฆืขืืืืืื ื ืืื
/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
ืฆืื FS. ืคึผืืึธืืืืจื ืืื ืื ืืขืืืข ืืื ืื ืืื ืืึทืื ืืืืฃ ืืืื ืืืืข ืงืึธืืคึผืืืืขืจ, ื ืึธืจ ืืขืืขื ืงืขื ืฆื ืคืึทืจืืืึทืื ืื ืืึธืกืื ืึทืืข. - ืืืจ ืงืขื ืขื ืงืึทืกืืึทืืืื ืึทืืฅ ืึทื ืืขืจืฉ. ืืื ืืึทืืื ืืขืจ, ืืื ืื ืกืืึทืืืจื
locales
(ืจืืคึผืึทืืึทืืึธืจื ืฉืืืกืืขื), ืจืขืงืึธื ืคืืืืจืืจื ืืึธืืงืึทืื ืืื ืฆืืื ืืึธื ืข (dpkg-reconfigure locales tzdata
). ืื ืืืืกื ื ืืฉื ืคืึทืจืืขืกื ืฆื ืฉืืขืื ืื ืคึผืึทืจืึธื ืืื ืื ืืึทืคึฟืขืpasswd
. - ืฉืืขืื ืึท ืคึผืึทืจืึธื ืคึฟืึทืจ
root
ืืึทื ืฉืึทืคึฟืpasswd
. - ืืขืจ ืฆืืืจืืืืื ื ืคืื ืื ืืืื ืคึฟืึทืจ ืืืจ ืขื ืืก ืืื ืคืืืื ื
/etc/fstab
ืื/mnt/
.
ืืื ืืืขื ืฆืืคึฟืขืืืงืขืจ ืืื ืืืื ืืื ืื ืคืจืืขืจ ืืืฉืืคื ืืึทืืก, ืึทืืื ืืขืจ ืืื ืืึทืื ืืืขื ืืืื ืืื ืืึธืก:
LABEL=ROOTFS / ืึทืืืึธ ืขืจืจืึธืจืก = ืจืขืืึธืื ื-ืจืึธ 0 1
LABEL = ืฉืืืืื / ืฉืืืืื ืึทืืืึธ ืืืคืึธืืฅ 0 0
ืฆืื ืกืืฃ, ืืืจ ืงืขื ืขื ืึธื ืงืืึทืคึผื ืื ืฉืืืืื ืฆืขืืืืืื ื, ืืืจ ืืึทืจืคึฟื ืขืก ืคึฟืึทืจ ืื ืงืขืจื: `mount /dev/mmcblk0p1 /mnt/boot/`
ืืื ืืงืก ืืืืขื
ืฆื ืืืืขื ืืขื ืงืขืจื (ืืื ืืขืจื ืึธื ืื ืืึธืึธืืืึธืึทืืขืจ) ืืืืฃ ืืขืืืึทื ืืขืกืืื ื, ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืึท ื ืึธืจืืึทื ืืึทื ื ืคืื GCC, GNU Make ืืื GNU C ืืืืืืึธืืขืง ืืขืืขืจ ืืขืงืขืก ืคึฟืึทืจ ืื ืฆืื ืึทืจืงืึทืืขืงืืฉืขืจ (ืคึฟืึทืจ ืืืจ). 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/
ืืืก ื-ืฉืืืืื
ืืื ื ืื ืืึธืึธืืืึธืึทืืขืจ ืืื ืื ืืขืจืึทืงืืืื, ืึทืืข ืืืจ ืืึทืจืคึฟื ืฆื ืคึผืจืืืืจื ืื ืึธืคึผืขืจืึทืฆืืข ืืื ืื ืืจืขื ืืื, ืึท ืกืืึธืจืืืืฉ ืืืื ืืื ืึธืคึผืืืึธื ืึทืืื ืึท ืืกื-ืฆื-UART ืืืื. ืึทื ืืื, ืืืจ ืงืขื ืขื ืึธืคึผืืืืื ืื ืงืขืจื ืืื ืึทืก ืคึฟืึทืจ ืฉืคึผืขืืขืจ.
ืื ืืืึทืกื ืืขืจืืืึทื ืคืื ืืึทื ืืึทืคืึทืงืืฉืขืจืขืจื ืคืึธืจืฉืืึธืื ืฆื ื ืืฆื Das U-Boot ืคึฟืึทืจ ืื ืขืจืฉื ืฉืืืืื. ืืึทื ืฅ ืฉืืืฆื ืืื ืืืืฉืึทืืืึทืื ืฆืืืขืฉืืขืื ืืื ืืืืขืจ ืืืืื ืืึธืคึผื, ืึธืืขืจ ืืื ืืึธื ื ืื ืคืึทืจืืขืกื ืฆื ืืืืฉืืืืขืจื ืฆื ืื ืึทืคึผืกืืจืื. ืืื ืืืื ืคืึทื, ืื ืืจืขื ืืื ืืขืฉืืืฆื ืืื
ืืึธืืืจ ืึทืกืขืืืึทื ืื ืืึธืึธืืืึธืึทืืขืจ ืืื:
- ืืืจ ืงืืึธืื ืื ืกืืึทืืื ืฆืืืืึทื ืคืื ืื ืจืืคึผืึทืืึทืืึธืจื:
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
, ืืึธืก ืืื ืึท ืคืึทืจืืืง ืืืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืฉืจืืื ืฆื ืึท ืืืืฅ ืคืึธืจ. ืืืจ ืฉืจืืึทืื ืฆื ืื ืกื ืงืึธืจื, ืกืงืืคึผืื ื ืื ืขืจืฉืืขืจ 1024 ืืืืขืก. ืคืืจืืืืก ืืึธื ืืื ืืืืกืืขืจืืืืืื ืฆืื u-boot.imx
? ืคืืจืืืืก ืืื ืืื ืคืึทืจืคืืจื ืคึผืื ืงื 1024 ืืืืขืก? ืืึธืก ืืื ืืืึธืก ืืื ืคืึธืจืฉืืึธืื ืฆื ืืึธื ืืื
ืืขืืื, ืืืจ ืงืขื ืขื ืฉืืืืื. ืื ืืึธืึธืืืึธืึทืืขืจ ืืืื ืืึทืจืืื ืืืื ืืืืืขื ืข ืืืขืจืกืืข, ืขืืืขืืข ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขื ืืจืขื, ืืื ืคึผืจืืืืจื ืฆื ืืขืคึฟืื ืขื ืื ืงืขืจื ืืืื ืืืืฃ ืืขืจ ืฆืขืืืืืื ื. ืืืื ื ืื ืืขืจืึธืื, ืขืก ืืืขื ืคึผืจืืืืจื ืฆื ืฉืืืืื ืืืืขืจ ืื ื ืขืฅ. ืืื ืึทืืืขืืืื, ืืขืจ ืจืขืืืืืึทื ืืื ืืึทื ืฅ ืืืืืืื, ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืื ืืขืืช ืืืื ืขืก ืืื ืึท ืคึผืจืึธืืืขื.
ืึธื ืฉืืึธื ืึท ืืกืงื ื
ืฆื ืืึธื ืืืจ ืืืืกื ืึทื ืึท ืืขืืคืื ืก ืฉืืขืจื ืืื ื ืืฉื ืืืื ืขืจ? ืขืก ืืื ืืืฉ ืึท ืืจืื ืืืื, ืึท ืคืึทืื ืึธืืืขืงืืืื ืคึฟืึทืจ ืขืงืึธืืึธืงืึทืืืึธื!
ืืงืืจ: www.habr.com