tl; dr: ããã°ã©ã å
㧠ARM ã³ã³ãã¥ãŒã¿ãŒçšã® Kali Linux ã€ã¡ãŒãžãæ§ç¯ããŠããŸã debootstrap
, linux
О u-boot
.
ããŸã人æ°ã®ãªãã·ã³ã°ã«ããŒã ãœãããŠã§ã¢ã賌å
¥ããå Žåããæ°ã«å
¥ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã€ã¡ãŒãžãäžè¶³ããŠããããšã«çŽé¢ãããããããŸããã ã»ãŒåæ§ã®ããšãèµ·ãããŸãã
ããŠã³ããŒãã®ããã»ã¹ã¯éåžžã«ç°¡åã§ãã
- ããŒããŠã§ã¢ãåæåãããŸãã
- ã¹ãã¬ãŒãž ããã€ã¹ (SD ã«ãŒã/eMMC/ãªã©) ã®äžéšã®é åããããŒãããŒããŒãèªã¿åãããŠå®è¡ãããŸãã
- ããŒãããŒããŒã¯ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã«ãŒãã«ãæ€çŽ¢ãããããã¡ã¢ãªé åã«ããŒãããŠå®è¡ããŸãã
- ã«ãŒãã«ã¯ OS ã®æ®ãã®éšåãããŒãããŸãã
ãã®ã¬ãã«ã®è©³çŽ°ã¯ç§ã®ã¿ã¹ã¯ã«ã¯ååã§ãã詳现ãèªãã§ãã ããã
ã«ãŒããã¡ã€ã«ã·ã¹ãã ã®æ§ç¯
ãŸãã»ã¯ã·ã§ã³ãæºåããå¿
èŠããããŸãã Das U-Boot ã¯ããŸããŸãªãã¡ã€ã« ã·ã¹ãã ããµããŒãããŠããŸãããç§ã¯ FAT32 ãéžæããŸããã /boot
ã«ãŒã㯠ext3 ã§ããããã¯ãARM äžã® Kali ã®æšæºã€ã¡ãŒãž ã¬ã€ã¢ãŠãã§ãã ããã§ã¯ 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
.
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
㯠XNUMX 段éã§å®è¡ãããXNUMX çªç®ã®æ®µéã¯æ¬¡ã®ããã«å®è¡ãããŸãã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 / èªåãšã©ãŒ=remount-ro 0 1
LABEL=BOOT /boot èªåããã©ã«ã 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/
ãã¹ U ããŒã
ããŒãããŒããŒã¯å¯Ÿè©±åã§ããããããã®åäœããã¹ãããããã«å¿ èŠãªã®ã¯ãããŒãèªäœãã¹ãã¬ãŒãž ããã€ã¹ãããã³ãªãã·ã§ã³ã§ USB-to-UART ããã€ã¹ã ãã§ãã ã€ãŸããã«ãŒãã«ãš OS ãåŸåãã«ããããšãã§ããŸãã
ã»ãšãã©ã®ã¡ãŒã«ãŒã¯ãåæããŒãã« 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 ãã€ããã¹ãããããŠãSD ã«ãŒãã«æžã蟌ã¿ãŸãã ã¿ãŒã²ãããéžãã çç± u-boot.imx
? ã¡ããã© 1024 ãã€ããèŠéããã®ã¯ãªãã§ãã? ããã圌ããããããšããŠããããšã
å®äºããããèµ·åã§ããŸãã ããŒãããŒããŒã¯ãç¬èªã®ããŒãžã§ã³ãšããŒãã«é¢ããæ å ±ãå ±åããããŒãã£ã·ã§ã³äžã®ã«ãŒãã« ã€ã¡ãŒãžãèŠã€ããããšããå¿ èŠããããŸãã 倱æããå Žåã¯ããããã¯ãŒã¯çµç±ã§ã®èµ·åãè©Šè¡ãããŸãã äžè¬ã«ãåºåã¯éåžžã«è©³çŽ°ã§ãããããåé¡ãããå Žåã¯ãšã©ãŒãèŠã€ããããšãã§ããŸãã
代ããã«ãçµè«ã®
ã€ã«ã«ã®é¡ã«ã¯éªšããªãããšããåç¥ã§ããïŒ ããã¯æåéã第 XNUMX ã®ç®ããšã³ãŒãã±ãŒã·ã§ã³ã®ããã®èèªã¬ã³ãºã§ãã
åºæïŒ habr.com