Your SlideShare is downloading. ×
Development platform virtualization using qemu
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Development platform virtualization using qemu

791
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
791
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Platform Virtualization(i386)for kernel booting, debugging and testing Requirements Linux machine (Virtual or Real) Qemu, busybox, initramfs, kernel packages : build-essential, libncurses5-dev, vnc4server
  • 2. InstallationsQemu: is a generic and open source machine emulator and virtualizer.http://wiki.qemu.orgMethod 1:Install a virtualbox virtual manager to run ubuntu 12.04 in windows 7. Then updated the ubuntupackages , means the initial updates. Then installed qemu ,# sudo apt-get install qemuafter installation check whether the qemu is installed correctly, run the command,# qemu-system-i386popup a black qemu windows shows some no disk found notification.Fig 1 : Qemu window
  • 3. Method 2:Download the latest qemu source from http://wiki.qemu.org. Extract the source and install# tar xf qemu-1.2.0.tar.bz2# cd qemu-1.2.0.tar.bz2# sudo ./configure --target-list=i386-softmmu# sudo make# sudo make installCheck the qemu working, run command# qemu-system-i386popup a black qemu windows shows some no disk found notification [Fig. 1].Fig 2 : working qemu window of a custom kernel
  • 4. Busybox: The Swiss Army Knife of Embedded Linuxhttp://busybox.netDownload latest busybox tar from the website and extract it.#tar xf busybox-1.20.2.tar.bz2#cd busybox-1.20.2#make allnoconfig#make menuconfigSelect appropriate options in menuconfig. busybox settings -> build options -> static binary[essential] coreutils -> enable cat, touch, chmod, chroot, cp, echo, ln, ls, mkdir, mknod, pwd, rm, rmdir console utils -> clear editor -> vi find -> find, grep init -> poweroff, init [essential] linux system utils -> mdev, mount[essential] network utils -> ping, arp, httpd, ifconfig shells -> ash, choose which shell is aliased to sh & bash name[essential]save the configuration.#make#make installmake install command copies the binaries generated to _install directory.
  • 5. initramfs: is a root filesystem which is embedded into the kernel and loaded at an early stage of the boot process.Create a main directory initramfs#mkdir initramfs#cd initramfsCreate a basic folder structure#mkdir -pv bin lib dev etc mnt/root proc root sbin sysCopy some default device nodes to device directory#sudo cp -va /dev/{null,console,tty} devNow copy the busybox binaries in _install directory into initramfs.#cd busybox-1.20.2#sudo cp -avR _install/* ../initramfsFig 3 : busybox copy to initramfs
  • 6. Create a init script in initramfs directory#cd initramfs#sudo gedit initFig 4: init scriptChange the permission settings of init script to executable#sudo chmod +x initFig 5 : initramfs folder structure
  • 7. Optional Steps for cpio archive[Optional]#find . -print0 | cpio --null -ov --format=newc> ../initram.cpioFig 6 : copy files to archives
  • 8. Kernel: Linux is a clone of the operating system Unix, written from scratch by LinusTorvalds with assistance from a loosely-knit team of hackers across the Net.http://www.kernel.org/Download a stable kernel and untar it,Fig 7 : Kernel.org# tar xf linux-2.6.34.tar.bz2# cd linux-2.6.34# make allnoconfig# make menuconfigselect appropriate options. general setup -> initial RAM filesystem and RAM disk support -> initramfs source [/home/premjith/linux_qemu/initramfs] Bus options -> PCI support ELF Format/Emulation -> Kernel support ELF binaries Networking Support [y] -> Networking options ->packet socket ->unix domain socket
  • 9. -> TCP/IP networking Device drivers -> ATA -> Network device support File systems -> second extended FS support -> ext3 Kernel hacking -> kernel debugging -> compile the kernel with debug infoFig 8 : kernel configurationsave the configuration and run make# makeIt generates a bzImage of kernel in arch/x86/boot/
  • 10. Virtual booting of kernel image in Qemu#qemu-system-i386 -kernel linux-2.6.34/arch/x86/boot/bzImageFig 9 : final qemu window

×