qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: hi, may I ask some help on the paravirtualization of KV


From: Liang YANG
Subject: [Qemu-devel] Re: hi, may I ask some help on the paravirtualization of KVM?
Date: Wed, 24 Mar 2010 11:35:09 +0800

Maybe I solove the problem.

I use the qemu-img make a new GustOS img. And install the debian5 on
the image file with option -net nic, model=virtio.
./x86_64-softmmu/qemu-system-x86_64 -hda debian.img -cdrom debian.iso
-net nic, model=virtio

Then I update the kernel image file with virtio, virtio_pci,
virtio_ring, virtio_blk, virtio_net modules added to file
/etc/initram-tools/modules.

Last, start the image Guest use qemu-system-x86_64 -net nic,
model=virtio. This time I can see virtio_net module in GuestOS, but it
doesn't work. The qemu didn't emulate the virtio net device. So I
update the code located in pc_init1(), where the net model is set.
After this time update, I can start the kvm-paravirtualization
successfully.

Thanks for your help.

On Tue, Mar 23, 2010 at 10:09 PM, Liang YANG <address@hidden> wrote:
> I use the qemu-kvm-0.12-3 version source file. Just follow the typical
> three steps: ./configure && make && make install.
>
> After I configure, following is output:
>
> Install prefix    /usr/local
> BIOS directory    /usr/local/share/qemu
> binary directory  /usr/local/bin
> Manual directory  /usr/local/share/man
> ELF interp prefix /usr/gnemul/qemu-%M
> Source path       /root/svt/qemu-kvm-0.12.3
> C compiler        gcc
> Host C compiler   gcc
> CFLAGS            -O2 -g
> QEMU_CFLAGS       -m32 -Wold-style-definition -Wold-style-declaration
> -I. -I$(SRC_PATH) -U_FORTIFY_SOURCE -D_GNU_SOURCE
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes
> -Wredundant-decls -Wall -Wundef -Wendif-labels -Wwrite-strings
> -Wmissing-prototypes -fno-strict-aliasing
> LDFLAGS           -Wl,--warn-common -m32 -g
> make              make
> install           install
> host CPU          i386
> host big endian   no
> target list       x86_64-softmmu
> tcg debug enabled no
> gprof enabled     no
> sparse enabled    no
> strip binaries    yes
> profiler          no
> static build      no
> -Werror enabled   no
> SDL support       yes
> curses support    yes
> curl support      yes
> check support     no
> mingw32 support   no
> Audio drivers     oss
> Extra audio cards ac97 es1370 sb16
> Block whitelist
> Mixer emulation   no
> VNC TLS support   yes
> VNC SASL support  yes
> xen support       no
> CPU emulation     yes
> brlapi support    no
> bluez  support    no
> Documentation     no
> NPTL support      yes
> GUEST_BASE        yes
> PIE user targets  no
> vde support       no
> IO thread         no
> Linux AIO support no
> Install blobs     yes
> KVM support       yes
> KVM PIT support   yes
> KVM device assig. yes
> KVM trace support no
> fdt support       no
> preadv support    no
> fdatasync         yes
> uuid support      yes
>
> All compile procedure seems normal. No warning exists. And I use this
> command to start the GuestOS:
>  ./x86_64-softmmu/qemu-system-x86_64 -m 1024 /root/redhat.img -net
> nic, model=virtio -net tap, script=/etc/qemu-ifup
>
> The qemu-ifup script is :
> #!/bin/sh
> #sample /etc/qemu-ifup to have bridged networking between qemu
> instances and your real net
> # You need "youruser ALL=(root) NOPASSWD: /etc/qemu-ifup" in /etc/sudoers
> # You also need enough rights on /dev/tun
> if [ $UID -ne 0 ]
> then
>    sudo $0 $1
>    exit
> fi
> /sbin/ifconfig $1 promisc 0.0.0.0
> if ! /sbin/ifconfig br0
> then
>    /usr/sbin/brctl addbr br0
>    /usr/sbin/brctl addif br0 eth0
>    /sbin/ifconfig br0 up
>    addr=`/sbin/ip addr | grep eth0 | grep inet | sed -e 's/eth0/dev
> br0/' -e s/inet//`
>    /sbin/ip addr add $addr
> fi
> /usr/sbin/brctl addif br0 $1
> /usr/sbin/brctl stp br0 off
> /sbin/ip route | grep eth0 | while read route
> do
> newroute=`echo $route | sed s/eth0/br0/ `
> /sbin/ip route del $route
> /sbin/ip route add $newroute
> done
>
>
>
> On Tue, Mar 23, 2010 at 9:59 PM, Amit Shah <address@hidden> wrote:
>> Hello,
>>
>> [any reason you dropped the CC list? CC'ing qemu-devel, where this is
>> relevant.]
>>
>> On (Tue) Mar 23 2010 [21:46:28], Liang YANG wrote:
>>> I check the 'lspci -v' result, only find RTL-8139 realtek ethernet. I
>>> think the option model=virtio does't make effect.
>>
>> Then something is wrong. I get a virtio ethernet device using
>> model=virtio.
>>
>> Which qemu version are you using?
>>
>>> Simultaneously, I have the a look at the code. The function pc_init1()
>>> seem not change the network model as the option assigned.
>>>
>>> Do you ever meet this case?
>>
>> I've not seen this.
>>
>>> On Tue, Mar 23, 2010 at 9:08 PM, Amit Shah <address@hidden> wrote:
>>> > On (Sun) Mar 21 2010 [20:18:53], Liang YANG wrote:
>>> >> I want to set up the virtio-net for the GuestOS on KVM. Following is my 
>>> >> steps:
>>> >>
>>> >> 1.Compile the kvm-88 and make, make install.
>>> >> 2.Compile the GuestOS(redhat) with kernel version 2.6.27.45(with
>>> >> virtio support). The required option are all selected.
>>> >>           o CONFIG_VIRTIO_PCI=y (Virtualization -> PCI driver for
>>> >> virtio devices)
>>> >>           o CONFIG_VIRTIO_BALLOON=y (Virtualization -> Virtio balloon 
>>> >> driver)
>>> >>           o CONFIG_VIRTIO_BLK=y (Device Drivers -> Block -> Virtio block 
>>> >> driver)
>>> >>           o CONFIG_VIRTIO_NET=y (Device Drivers -> Network device
>>> >> support -> Virtio network driver)
>>> >>           o CONFIG_VIRTIO=y (automatically selected)
>>> >>           o CONFIG_VIRTIO_RING=y (automatically selected)
>>> >> 3.Then start up the GuestOS by such command:
>>> >>           x86_64-softmmu/qemu-system-x86_64  -m 1024 /root/redhat.img
>>> >> -net nic,model=virtio -net tap,script=/etc/kvm/qemu-ifup
>>> >> 4.Result is this:
>>> >>           * The Guest OS start up.
>>> >>           * But the network not, no eth-X device found.
>>> >>           * lsmod | grep virtio get none module about virtio
>>> >
>>> > Since you selected the virtio options as 'y', they are directly compiled
>>> > into the kernel and hence you won't see the modules.
>>> >
>>> > Check your 'lspci -v' output. You should see the virtio device there.
>>> > You can also try some usual things like 'ifconfig eth0 up', etc., to get
>>> > the interface.
>>> >
>>> >                Amit
>>> > --
>>> > http://log.amitshah.net/
>>> >
>>>
>>>
>>>
>>> --
>>> BestRegards.
>>> YangLiang
>>> _____________________________________________
>>>  Department of Computer Science .
>>>  School of Electronics Engineering & Computer Science .
>>> _____________________________________________
>>
>>                Amit
>> --
>> http://log.amitshah.net/
>>
>
>
>
> --
> BestRegards.
> YangLiang
> _____________________________________________
>  Department of Computer Science .
>  School of Electronics Engineering & Computer Science .
> _____________________________________________
>



-- 
BestRegards.
YangLiang
_____________________________________________
 Department of Computer Science .
 School of Electronics Engineering & Computer Science .
_____________________________________________




reply via email to

[Prev in Thread] Current Thread [Next in Thread]