/usr/src
directory.
tar -xvf linux-x.x.xx.x.tar.bz2
cd linux-x.x.xx.x folder
sudo su
/boot/config-x.x.xx.x
)
to the current working directory (linux-x.x.xx.x
) and rename it
to .config
.
cp /boot/config-`uname -r` ./.config
apt-get install libncurses5-dev
.make menuconfig
..config
. Click Yes
.M
).
-custom
,
for example.config
. Select Yes
.CONCURRENCY_LEVEL
to be the one greater than the number of processors
on your system.
export CONCURRENCY_LEVEL=3
make -j $CONCURRENCY_LEVEL && make_modules install && make install && make headers_install
makeinitramfs -o initrd.img-new_kernel_version new_kernel_version
.
The new_kernel_version is appended to newly created vmlinuz-x.x.xx.x img, for exampleupdate-grub
if using
GRUB on Ubuntu.--enable-kvm
flag to your Qemu commandline.
For example: qemu --enable-kvm linux.img
recompile
) in your linux
source folder /usr/src/linux-x.x.xx.x
. Here are the contents of
the recompile
shell script:
make M=arch/x86/kvm rmmod kvm_intel kvm cp arch/x86/kvm/*ko /lib/modules/LINUX_KERNEL_VERSION/kernel/arch/x86/kvm/ modprobe kvm_intel modprobe kvm
chmod +x recompile
modprobe
commands in the script reload the
modules (without the need to reboot): sudo ./recompile
qemu-img create -f qcow2 winxp.img 3G
qemu -m 256 -hda winxp.img -cdrom winxpsp2.iso -boot d
qemu -m 256 -hda winxp.img -cdrom /dev/cdrom -boot d
qemu -m 256 -hda winxp.img -cdrom winxpsp2.iso -kernel-kqemu
qemu-system-x86_64 -m 256 -hda winxp.img -cdrom winxpsp2.iso -kernel-kqemu
--enable-kvm
flag for faster creation using KVM Virtualization.
0
using outb
instruction to the standard output of the QEMU process. For example, the guest
can use the following code to print "hello world" to the standard output of
the Qemu process:
outb $0, $104 outb $0, $101 outb $0, $108 outb $0, $108 outb $0, $111 outb $0, $20 outb $0, $119 outb $0, $111 outb $0, $114 outb $0, $118 outb $0, $100Notice that the second argument in each instruction is the ASCII code of the corresponding character in the string "hello world". You will need to make changes to the Qemu source code to implement this device. Your guest will exit on each I/O access to this device.
movb $104, VA movb $101, VA movb $108, VA movb $108, VA movb $111, VA movb $20 , VA movb $119, VA movb $111, VA movb $114, VA movb $118, VA movb $100, VAFor this to work, the virtual address
VA
must be mapped in the
guest to the physical address corresponding
to the device register.