########################################
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install qemu
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm
wget https://busybox.net/downloads/busybox-1.29.3.tar.bz2
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make install CROSS_COMPILE=arm-linux-gnueabi-
# cd busybox
mkdir -p rootfs/{dev,etc/init.d,lib,proc,sys}
sudo cp _install/* -r rootfs/
sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
sudo mknod rootfs/dev/tty1 c 4 1
sudo mknod rootfs/dev/tty2 c 4 2
sudo mknod rootfs/dev/tty3 c 4 3
sudo mknod rootfs/dev/tty4 c 4 4
touch rootfs/etc/init.d/rcS
vim rootfs/etc/init.d/rcS
#!/bin/sh
echo "INIT SCRIT"
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t debugfs none /sys/kernel/debug
mount -t devtmpfs none /dev
chmod a+x rootfs/etc/init.d/rcS
rm a9rootfs.ext3 tmpfs -rf
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
mkfs.ext3 a9rootfs.ext3
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/* tmpfs/
sudo umount tmpfs
sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0" -sd ../busybox-1.29.3/a9rootfs.ext3
sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0 loglevel=8" -sd ../busybox-1.29.3/a9rootfs.ext3