busybox rootfs 설치
$ wget https://busybox.net/downloads/busybox-1.36.0.tar.bz2
$ tar xvf busybox-1.36.0.tar.bz2
$ cd busybox-1.36.0
$ make ARCH=arm CROSS_COMPILE=arm-linux- defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
- menuconfig 설정변경
$ make -j8
$ make install
Creating initramfs
$ find . | cpio -H newc -ov --owner root:root > ../initramfs.cpio
$ cd .. && gzip initramfs.cpio
~/initramfs.cpio.gz
생성확인
qemu탑재
$ qemu-system-arm -M vexpress-a9 -kernel <kernel> \
-dtb <dtb> \
-append "console=ttyAMA0 rdinit=/bin/sh" -nographic \
-initrd <initramfs>
rdinit=
rdinit=
ramdisk
에서 실행하는 init process
- full path를 적을 것
Creating rootfs ext4
- 이번엔 rootfs용
ext4
파일시스템을 구성해보자.
- 빈 이미지를 생성한다.
$ sudo dd if=/dev/zero of=rootfs.ext4 bs=1M count=100
- 생성확인
- ext4로 포맷팅
$ sudo mkfs.ext4 ./rootfs.ext4
- 마운트해서 몇 가지 위의 busybox로 생성한
rootfs
내용 copy
$ mkdir temp_mount
$ sudo mount rootfs.ext4 ./temp_mount
$ sudo cp -r ~/rootfs/* ./temp_mount
$ sudo unmount temp_mount
qemu 탑재
$ qemu-system-arm -M vexpress-a9 -kernel <kernel> \
-dtb <dtb> \
-append "console=ttyAMA0 root=/dev/mmcblk0 rw" -nographic \
-sd <rootfs_image>