Search This Blog

Thursday, June 26, 2014

QEMU ARM Linux boot + initramfs

Build script for QEMU build
----------------------------------------------------------------------------
#!/bin/bash
if [ "$1" == "config" ]; then
./configure --prefix=/opt/qemu --target-list=arm-softmmu,arm-linux-user --enable-debug
fi

if [ "$1" == "build" ]; then
make -s
fi

if [ "$1" == "install" ]; then
sudo make install -s
export PATH=/opt/qemu/bin:$PATH
fi

Binraries qemu-system-arm are generated at install directory.

Build Linux ARM versatile configuration
----------------------------------------------------------------------------
1. Tested with linux-3.15
make ARCH=arm versatile_defconfig
make ARCH=arm CROSS_COMPILE=$TOOLS_PATH zImage

Use zImage for QEMU platform.

BUILD SCRIPT FOR BUSYBOX + INITRAMFS
----------------------------------------------------------------------------
#!/bin/bash
# build script for busybox+initramfs

rm -rf _install
rm rootfs.img*
make ARCH=arm defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install

cd _install
mkdir proc sys dev etc etc/init.d

echo "#!/bin/sh" > etc/init.d/rcS
echo "mount -t proc none /proc" >> etc/init.d/rcS
echo "mount -t sysfs none /sys" >> etc/init.d/rcS
echo "/sbin/mdev -s" >> etc/init.d/rcS
chmod +x etc/init.d/rcS

# libc
cp -rf $TOOLS_PATH/arm-none-linux-gnueabi/libc/lib .

find . | cpio -o --format=newc > ../rootfs.img
cd ..
gzip -c rootfs.img > rootfs.img.gz

RUN
-------------------------------------------------------------------------------
$ qemu-system-arm -m 128M -kernel zImage -initrd rootfs.img -append "console=ttyAMA0 root=/dev/ram rdinit=/sbin/init" -M versatilepb -nographic



No comments:

Post a Comment