Re: Qemu+busybox for kernel development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The way I do it is by compiling the kernel as I would normaly do for a
real system.
Then, after copying vmlinuz and generating my initramfs, I run Qemu:

$ qemu-system-x86_64 -kernel vmlinuz -initrd initramfs.img -append
param1=value1

For me, as I am mostly testing, there is no need for a full-feature root
FS, since initramfs is perfect for containing small test application and
loadable kernel modules.

This might come in hand, though: https://lwn.net/Articles/660404/

On 06/28/2017 05:46 AM, Alexander Kapshuk wrote:
> 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.
> 
> 
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> 

-- 
- seds
~> https://seds.nl

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux