เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GNU/Linux เปƒเบ™เบเบฐเบ”เบฒเบ™ ARM เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เปƒเบŠเป‰ Kali เปเบฅเบฐ iMX.6 เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡)

tl dr: เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš Kali Linux เบชเปเบฒเบฅเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบต ARM, เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ debootstrap, linux ะธ u-boot.

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GNU/Linux เปƒเบ™เบเบฐเบ”เบฒเบ™ ARM เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เปƒเบŠเป‰ Kali เปเบฅเบฐ iMX.6 เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡)

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบŠเบทเป‰เบŠเบญเบšเปเบงเบเบฐเบ”เบฒเบ™เบ”เปˆเบฝเบงเบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบเบฒเบ™เบ‚เบฒเบ”เบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™. เบ›เบฐเบกเบฒเบ™เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเบฑเบš Flipper One เบ—เบตเปˆเบงเบฒเบ‡เปเบœเบ™เป„เบงเป‰. เบšเปเปˆเบกเบต Kali Linux เบชเปเบฒเบฅเบฑเบš IMX6 (เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เบเบฐเบเบฝเบก), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบ›เบฐเบเบญเบšเบกเบฑเบ™เป€เบญเบ‡.

เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบ”เบฒเบงโ€‹เป‚เบซเบผเบ”โ€‹เปเบกเปˆเบ™โ€‹เบ‚เป‰เบญเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹:

  1. เบฎเบฒเบ”เปเบงเปเบกเปˆเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
  2. เบˆเบฒเบเบšเบฒเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ (SD card/eMMC/etc) bootloader เป„เบ”เป‰เบ–เบทเบเบญเปˆเบฒเบ™ เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.
  3. bootloader เบŠเบญเบเบซเบฒ kernel เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเบฐเป‚เบซเบฅเบ”เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™.
  4. kernel เป‚เบซเบผเบ”เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡ OS.

เบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป„เบ”เป‰ เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบญเบทเปˆเบ™. เบžเบทเป‰เบ™เบ—เบตเปˆ "เบšเบฒเบ‡" เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบเบฐเบ”เบฒเบ™เป„เบ›เบซเบฒเบเบฐเบ”เบฒเบ™, เป€เบŠเบดเปˆเบ‡เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบเบณเบฅเบฑเบ‡เป‚เบซเบฅเบ”เปเบžเบฅเบ”เบŸเบญเบกเป€เบŠเบตเบšเป€เบงเบต ARM เบžเบฐเบเบฒเบเบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ UEFI, เปเบ•เปˆเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ™เบตเป‰เบšเปเปˆเบกเบตเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฐเบเบญเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบฎเบฒเบ

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ—เปˆเบฒเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฐเบเบฝเบกเบžเบฒเบเบชเปˆเบงเบ™เบ•เปˆเบฒเบ‡เป†. Das U-Boot เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบทเบญเบ FAT32 เบชเปเบฒเบฅเบฑเบš /boot เปเบฅเบฐ ext3 เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบ, เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบฎเบนเบšเบžเบฒเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบš Kali เปƒเบ™ ARM. เบ‚เป‰เบญเบเบˆเบฐเปƒเบŠเป‰ GNU Parted, เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบงเปˆเบฒ fdisk. เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเบฐเบ•เป‰เบญเบ‡ dosfstools ะธ e2fsprogs เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ: apt install parted dosfstools e2fsprogs.

เบžเบงเบเป€เบฎเบปเบฒเปเบฒเบเปƒเบชเปˆ SD card:

  1. เปเบฒเบ SD card เบงเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™ MBR: parted -s /dev/mmcblk0 mklabel msdos
  2. เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบžเบฒเบเปƒเบ•เป‰ /boot เบชเปเบฒเบฅเบฑเบš 128 megabytes: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. megabyte เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบžเบฒเบ”เป„เบ›เบ•เป‰เบญเบ‡เบ–เบทเบเบ›เบฐเป„เบงเป‰เบชเปเบฒเบฅเบฑเบš markup เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš bootloader.
  3. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบฎเบฒเบเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบ—เบฑเบ‡เบซเบกเบปเบ”: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบขเปˆเบฒเบ‡โ€‹เบเบฐโ€‹เบ—เบฑเบ™โ€‹เบซเบฑเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹, เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™ 'partprobeโ€‹'โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹เบ„เบทเบ™โ€‹เปƒเบซเบกเปˆโ€‹.
  5. เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบชเปเบฒเบฅเบฑเบš boot partition เบเบฑเบšเบ›เป‰เบฒเบเบŠเบทเปˆ BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบฎเบฒเบเบ—เบตเปˆเบกเบตเบ›เป‰เบฒเบเบŠเบทเปˆ ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

เบ”เบตเบซเบผเบฒเบ, เบ”เบฝเบงเบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ•เบทเปˆเบกเบกเบฑเบ™เบญเบญเบเป„เบ”เป‰. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ debootstrap, เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบฎเบฒเบเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบท 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 เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบšเบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบ‚เป‰เบญเบเป„เบ”เป‰เบฅเบฐเบšเบธเบ•เบปเบง emulator QEMU เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ. เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” chroot เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก ARM. เบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™ man debootstrap. เบขเปˆเบฒเบฅเบทเบกเบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเป†เบเบฐเบ”เบฒเบ™ ARM เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ armhf.
  3. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ debootstrap เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปƒเบ™โ€‹เบชเบญเบ‡โ€‹เป„เบฅโ€‹เบเบฐโ€‹, เบ„เบฑเป‰เบ‡โ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹: chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰ screw เบกเบฑเบ™เบ‚เบถเป‰เบ™: chroot /mnt /bin/bash
  5. เบžเบงเบเป€เบฎเบปเบฒเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ /etc/hosts ะธ /etc/hostname เป€เบ›เบปเป‰เบฒเปเบฒเบ FS. เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ„เบทเบเบฑเบ™เบเบฑเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบขเบนเปˆเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบžเบฝเบ‡เปเบ•เปˆเบˆเบทเปˆเบˆเปเบฒเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบŠเบทเปˆเป€เบˆเบปเป‰เบฒเบžเบฒเบš.
  6. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เป„เบ”เป‰. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ‚เป‰เบญเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡ locales (เบเบฐเปเบˆ repository), เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ เปเบฅเบฐเป€เบ‚เบ”เป€เบงเบฅเบฒเบ„เบทเบ™เปƒเปเปˆ (dpkg-reconfigure locales tzdata). เบขเปˆเบฒเบฅเบทเบกเบ•เบฑเป‰เบ‡เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ passwd.
  7. เบ•เบฑเป‰เบ‡เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบš root เบ—เบตเบกเบ‡เบฒเบ™ passwd.
  8. เบเบฒเบ™เบเบฐเบเบฝเบกเบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™ /etc/fstab เบžเบฒเบเปƒเบ™ /mnt/.

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบญเบฑเบšโ€‹เป‚เบซเบผเบ”โ€‹เปƒเบซเป‰โ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบเบฑเบš tags เบ—เบตเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ™เบตเป‰โ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹:

LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /boot auto defaults 0 0

เบชเบธเบ”เบ—เป‰เบฒเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ boot partition, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบš kernel: `mount /dev/mmcblk0p1 /mnt/boot/`

Linux เบชเป‰เบฒเบ‡

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ kernel (เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ bootloader) เปƒเบ™ Debian Testing, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡ GCC, GNU Make เปเบฅเบฐ GNU C Library header files เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ (เบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบ. armhf), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš OpenSSL headers, console calculator bc, bison ะธ flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ•เบปเบงเป‚เบซเบผเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒ zImage เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ‚เบญเบ‡ boot partition, เบกเบฑเบ™เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™ flash drive.

  1. เบกเบฑเบ™โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ”เบปเบ™โ€‹เป€เบเบตเบ™โ€‹เป„เบ›โ€‹เป€เบžเบทเปˆเบญ clone kernelโ€‹, เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบˆเบฐโ€‹เบ”เบฒเบงโ€‹เบ™โ€‹เปŒโ€‹เป‚เบซเบฅเบ”โ€‹: 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. config เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต 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. เบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒ kernel เป„เบ”เป‰: 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

เปเบเปˆเบ™เปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ” unmount เบ—เบธเบโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบธเบโ€‹เบขเปˆเบฒเบ‡โ€‹: umount /mnt/boot/ /mnt/

Das U-Boot

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ bootloader เบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบเบฐเบ”เบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เบญเบธเบ›เบฐเบเบญเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™ USB-to-UART. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเปˆเบญเบ™ kernel เปเบฅเบฐ OS เบชเปเบฒเบฅเบฑเบšเบ•เปเปˆเบกเบฒ.

เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบชเปˆเบงเบ™เปƒเบซเบเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เปƒเบŠเป‰ Das U-Boot เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปƒเบชเปˆเป€เบเบตเบšเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบเบฒเบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบธเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเปเบกเปˆเบ™เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบชเป‰เบญเบกเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบฅเบทเบกเบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ•เบปเป‰เบ™เบ™เป‰เปเบฒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ เบชเบฒเบเบซเบผเบฑเบเป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™ เบชเป‰เบญเบก เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบปเบ™เปƒเบˆเบกเบฑเบ™.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบฅเบงเบšเบฅเบงเบก bootloader เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡:

  1. เบžเบงเบเป€เบฎเบปเบฒ clone เบชเบฒเบ‚เบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡ repository: 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 เบ‚เบญเบ‡เบœเบนเป‰เบœเบฐเบฅเบดเบ”เปเบฅเบฐเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบฎเบฒเบเบ‚เบญเบ‡ repository เปƒเบ™เป„เบŸเบฅเปŒ. .config, เบซเบผเบทเบ›เบฐเบเบญเบšเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบญเบทเปˆเบ™เป†เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบœเบนเป‰เบœเบฐเบฅเบดเบ”.
  4. เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบเบญเบšเบฎเบนเบšเบžเบฒเบš bootloader เบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ cross-compiler armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเป„เบŸเบฅเปŒ u-boot.imx, เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เปƒเบชเปˆ flash drive. เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เปƒเบชเปˆ SD card, เบ‚เป‰เบฒเบก 1024 bytes เบ—เปเบฒเบญเบดเบ”. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบˆเบถเปˆเบ‡เป€เบฅเบทเบญเบเป€เบ›เบปเป‰เบฒเปเบฒเบ u-boot.imx? เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบˆเบถเปˆเบ‡เบžเบฒเบ” 1024 bytes? เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เป€เบฎเบฑเบ”เปƒเบ™ เป€เบญเบเบฐเบชเบฒเบ™. เบชเปเบฒเบฅเบฑเบšเบเบฐเบ”เบฒเบ™เบญเบทเปˆเบ™เป†, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ.

เป€เบฎเบฑเบ”เปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” boot เป„เบ”เป‰. bootloader เบ•เป‰เบญเบ‡เบฅเบฒเบเบ‡เบฒเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบšเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฐเบ”เบฒเบ™, เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเบฎเบนเบšเบžเบฒเบš kernel เปƒเบ™เบžเบฒเบ—เบดเบŠเบฑเบ™. เบ–เป‰เบฒเบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”, เบกเบฑเบ™เบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบšเบนเบ”เบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบฅเบฐเบญเบฝเบ”, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เบ–เป‰เบฒเบกเบตเบšเบฑเบ™เบซเบฒ.

เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเบซเบฅเบธเบšเป„เบ”เป‰

เป€เบˆเบปเป‰เบฒเบฎเบนเป‰เบšเปเบงเปˆเบฒเปœเป‰เบฒเบœเบฒเบเบ‚เบญเบ‡เบ›เบฒเป‚เบฅเบกเบฒเบšเปเปˆเปเบกเปˆเบ™เบเบฐเบ”เบนเบ? เบกเบฑเบ™เป€เบ›เบฑเบ™เบ•เบฒเบ—เบตเปˆเบชเบฒเบกเปเบ—เป‰เป†, เป€เบ›เบฑเบ™เป€เบฅเบ™เบ—เบตเปˆเบกเบตเป„เบ‚เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบš echolocation!

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GNU/Linux เปƒเบ™เบเบฐเบ”เบฒเบ™ ARM เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เปƒเบŠเป‰ Kali เปเบฅเบฐ iMX.6 เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡)

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GNU/Linux เปƒเบ™เบเบฐเบ”เบฒเบ™ ARM เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เปƒเบŠเป‰ Kali เปเบฅเบฐ iMX.6 เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡)

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com