mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-06-16 02:15:47 +00:00
d583df25ed1efca38c629612e3c5f703db41b2ad
when starting with custom kernel and disk options, kernel_cmdline is
NULL; it results in a segfault while trying to look for a string
using `strstr`:
__strstr_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S:40
0x00000000004056bf in kvm_cmd_run_init (argc=<optimized out>, argv=<optimized out>) at builtin-run.c:608
0x000000000040639d in kvm_cmd_run (argc=<optimized out>, argv=<optimized out>, prefix=<optimized out>) at builtin-run.c:659
0x0000000000412b8f in handle_command (command=0x62bbc0 <kvm_commands>, argc=5, argv=0x7fffffffe840) at kvm-cmd.c:84
0x00007ffff7211b45 in __libc_start_main (main=0x403540 <main>, argc=6, argv=0x7fffffffe838, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffe828) at libc-start.c:287
0x0000000000403962 in _start ()
this patch suggests to set a minimal cmdline when kernel_cmdline is NULL
Fixes: 8a7163f3db ("kvmtool/run: append cfg.kernel_cmdline at the end of real_cmdline")
Signed-off-by: William Dauchy <william@gandi.net>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Native Linux KVM tool ===================== kvmtool is a lightweight tool for hosting KVM guests. As a pure virtualization tool it only supports guests using the same architecture, though it supports running 32-bit guests on those 64-bit architectures that allow this. From the original announcement email: ------------------------------------------------------- The goal of this tool is to provide a clean, from-scratch, lightweight KVM host tool implementation that can boot Linux guest images (just a hobby, won't be big and professional like QEMU) with no BIOS dependencies and with only the minimal amount of legacy device emulation. It's great as a learning tool if you want to get your feet wet in virtualization land: it's only 5 KLOC of clean C code that can already boot a guest Linux image. Right now it can boot a Linux image and provide you output via a serial console, over the host terminal, i.e. you can use it to boot a guest Linux image in a terminal or over ssh and log into the guest without much guest or host side setup work needed. -------------------------- This is the stand-alone version which does not live inside a Linux kernel tree. 1. To check it out, clone the main git repository: git clone git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git 2. Compile the tool (for more elaborate instructions see INSTALL): cd kvmtool && make 3. Download a raw userspace image: wget http://wiki.qemu.org/download/linux-0.2.img.bz2 && bunzip2 linux-0.2.img.bz2 4. The guest kernel has to be built with the following configuration: - For the default console output: CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y - For running 32bit images on 64bit hosts: CONFIG_IA32_EMULATION=y - Proper FS options according to image FS (e.g. CONFIG_EXT2_FS, CONFIG_EXT4_FS). - For all virtio devices listed below: CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=y - For virtio-blk devices (--disk, -d): CONFIG_VIRTIO_BLK=y - For virtio-net devices ([--network, -n] virtio): CONFIG_VIRTIO_NET=y - For virtio-9p devices (--virtio-9p): CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y CONFIG_9P_FS=y - For virtio-balloon device (--balloon): CONFIG_VIRTIO_BALLOON=y - For virtio-console device (--console virtio): CONFIG_VIRTIO_CONSOLE=y - For virtio-rng device (--rng): CONFIG_HW_RANDOM_VIRTIO=y - For vesa device (--sdl or --vnc): CONFIG_FB_VESA=y 5. And finally, launch the hypervisor: ./lkvm run --disk linux-0.2.img \ --kernel ../../arch/x86/boot/bzImage \ or sudo ./lkvm run --disk linux-0.2.img \ --kernel ../../arch/x86/boot/bzImage \ --network virtio The tool has been written by Pekka Enberg, Cyrill Gorcunov, Asias He, Sasha Levin and Prasad Joshi. Special thanks to Avi Kivity for his help on KVM internals and Ingo Molnar for all-around support and encouragement! See the following thread for original discussion for motivation of this project: http://thread.gmane.org/gmane.linux.kernel/962051/focus=962620 Another detailed example can be found in the lwn.net article: http://lwn.net/Articles/658511/ Contributing ------------ Please send patches for kvmtool to kvm@vger.kernel.org , in the usual git patch format. Include "kvmtool" in the mail subject.
Description
Languages
C
96.6%
Makefile
2.6%
Assembly
0.5%
Shell
0.3%