Qemu+busybox for kernel development

Alexander Kapshuk alexander.kapshuk at gmail.com
Wed Jun 28 04:46:52 EDT 2017


I am trying to setup a build environment where I can run the kernel and see
how the changes I have made to the kernel source work.
My understanding, based on googling, is that it is common practice in the
kernel community to use a virtualised environment for that purpose.
What I have done so far is create a ramfs that is built into the kernel, as
described here [1] and here [2].

[1] https://landley.net/writing/rootfs-howto.html
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/early-userspace/README?h=v4.12-rc7

a). I have generated a minimal initramfs_list file:
scripts/gen_initramfs_list.sh -d >usr/initramfs_list
Which looks like this:
# This is a very simple, default initramfs

dir /dev 0755 0 0
nod /dev/console 0600 0 0 c 5 1
dir /root 0700 0 0
# file /kinit usr/kinit/kinit 0755 0 0
# slink /init kinit 0755 0 0
slink /bin/sh busybox 777 0 0
file /init /bin/busybox 755 0 0

b). Set CONFIG_INITRAMFS_SOURCE:
CONFIG_INITRAMFS_SOURCE="/home/sasha/linux/usr/initramfs_list"

c). And had the kernel generate the initramfs image:
make
...
GEN     usr/initramfs_data.cpio.gz
  CHK     include/generated/compile.h
  AS      usr/initramfs_data.o
  LD      usr/built-in.o
...

When I run the kernel in qemu I get an error message which complains about
/etc/init.d/rcS missing.
The posts online seem to suggest that this has got to do with the busybox
configuration.
So far, I have not been able to get my head around this problem.
Any points or suggestions would be much appreciated.

Alexander Kapshuk.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20170628/c1138e1c/attachment.html 


More information about the Kernelnewbies mailing list