How to Download the Torvalds Linux Kernel Master, (Re)Compile It, and Boot It with Qemu

How to run Linux on a QEMU ARM Versatile machine?

I downloaded qemu and linux from github.
(qemu : https://github.com/qemu/qemu.git,
linux : https://github.com/torvalds/linux.git)

I think these two repositorys are the main project of them.

Anyway, I compiled linux with 2 steps.

  1. make ARCH=arm versatile_defconfig
  2. make all ARCH=arm CROSS_COMPILE=arm-none-eabi-

Also compiled qemu with 3 steps.

  1. ./configure
  2. make
  3. sudo make install

To mount the root filesystem, I downloaded busybox. (I'm not sure, but this busybox is the mostly used filesystem to develper when they want to make simple enviroment)

I downloaded busybox and i followed some steps.

  1. wget http://www.busybox.net/downloads/busybox-1.24.1.tar.bz2
  2. tar -xvf busybox-1.24.1.tar.bz2
  3. cd busybox-1.24.1/
  4. make defconfig
  5. make menuconfig (to make binary as static not shared)
  6. make -j8
  7. make install
  8. cd _install
  9. find . | cpio -o --format=newc > ../rootfs.img
  10. cd ..
  11. gzip -c rootfs.img > rootfs.img.gz

So, my final command is

../qemu/arm-softmmu/qemu-system-arm -M versatilepb -kernel ./arch/arm/boot/zImage -nographic -dtb arch/arm/boot/dts/versatile-pb.dtb -initrd ../rootfs.img.gz -append "root=/dev/ram0 initrd=/bin/sh"

I ran linux on qemu especially versatile version

here is my current status of file with 'ls' command

To run the upper command, the linux, qemu and filesystem images should be located like this (except other projects like FreeRTOS it's only for my situation)

Sample Image

How to modify the source of Buildroot packages for package development?

Please read the Buildroot manual about the <pkg>_OVERRIDE_SRCDIR functionality. It does exactly what you are looking for.



Related Topics



Leave a reply



Submit