2014-02-17 11:38 GMT+01:00 Paolo Bonzini <pbonz...@redhat.com>: > Il 17/02/2014 11:01, Alex David ha scritto: > > I indeed don't use paravirtualization. >> > > Virtio _is_ paravirtualization. :) > > Ok, now that seems much more understandable... I missed that point ha.
> > I'm emulating a bunch of sensors/actuators. >> >> If I virtualize my sensors and attach them to the i2c-dev with -device, >> how do I get those data on the host then ? >> > > It depends on your use case. > > It could be that you can make them return a constant value. > > Otherwise, you may want to use a chardev for that purpose, or finally a > QOM (QEMU Object Model) property. For example, add > > CONFIG_TMP105=y > > to default-configs/x86_64-softmmu.mak before building QEMU, then do the > following (indented = in the guest): > > $ x86_64-softmmu/qemu-system-x86_64 --enable-kvm ~/test2.img -m 256 \ > -device tmp105,id=sensor,address=0x50 \ > -qmp unix:$HOME/qmp.sock,server,nowait > $ qmp/qom-list -s ~/qmp.sock /machine/peripheral/sensor > temperature > @parent_bus/ > address > hotpluggable > realized > type > $ scripts/qmp/qmp-shell ~/qmp.sock > (QEMU) qom-get path=/machine/peripheral/sensor property=temperature > {u'return': 0} > (QEMU) qom-get path=sensor property=address > {u'return': 80} > > # modprobe i2c-dev > # i2cget -y 0 0x50 0 w > 0x0000 > > (QEMU) qom-set path=sensor property=temperature value=20000 > {u'return': {}} > > # i2cget -y 0 0x50 0 w > 0x0014 > > For this particular sensor, you have to swap the two bytes and the result > is 8.8 fixed-point. > > Paolo > > > Thanks for your help. As you may see, I'm not that experienced in >> QEMU/Linux kernel. >> > > Ok, I'm gonna try these things. I might try to use a chardev also. Thanks for your help !