 Hi everybody, I'm Aurelien Jarno and I'm going to present you a QMU Which is something which can be very useful in the development so first of all what is QMU so QMU is an open source machine emulator and more recently a virtualizer and You can run a virtual a full virtual machine as a simple user on a machine There is that's the system mode emulation There is also another mode which is the user mode emulation to run a single binary Compile which for a Linux BSD Darwin From one CPU to another CPU keeping the same OS But on another CPU for example army albinari on nice radix so the supported system are Alpha arm called fire attracts microblast meeps meep sell poor pcsh 4 spark x86 x86 64 so it represents a Big subset of the Debian supported architecture Oh, it can be useful in the Debian context, so it can be very useful to port To do porting work another architecture So you can install the package you want without Asking the essay to install a package on the portal machine You can also be root on the machine so for some debugging you need to be root also the good point is that you have Access to different architecture without Having network access so you can be on a plane or an airport or something and still debugging For example some package on arm It's also very useful on the minister or Debian live development You don't have to burn a new CD image and try to to test it by rebooting your machine or having the second machine to do it Or to test the boot process testing upgrade also a kernel debugging because you with QM you can't boot a kernel and Starts to debug a very early in the kernel and Debug really the first part of the kernel and it can also be very useful across compiling. I'm sure you are You have also plenty of idea of use cases The performance are good compared to some of the emulators like box for example, but You have to be prepared for something which is slow So So all QM you works I won't spend a lot of time on that I would but just to give you an idea which is done inside So to achieve a reasonable performance to a new use a dynamic translation that is the instruction from the CPU want to emulate Converted trans dynamically translated only before trying to execute them. They are converted into an internal language Then there is a code optimization pass On this language, there is a register allocation and then the code is translated the code From the machine you want to emulate it's generated Translated into the DOS code to have good performance As there are a lot of loops or the same code is executed a lot of time There is a translation cache. So the translation is done as few as possible The only problem is that the CPU context can change So in a lot of cases you lost the translation cache, but it's helps a lot When some parts of the code are then translated into the host code They are a chain together. So you execute the first part of the codes. There is a loop You execute again that those are part of the code To be also a fast to use condition conoptimization that is For example on the X86 there is a flag register Computing the carry the zero flags for after each instruction. It takes a lot of time to do that So instead QM you just save all what it needs To compute this flag, but don't compute them and if later those flags are needs They are recomputed on the fly And in the CPU there is also emulation emulation so the memory management is done there and SMP support that is you can emulate multiple CPU For example having a machine emulating quad core machine QMU Hems to be fast. So the goal is not to be cycle accurate. So it's not something that can be used For benchmarking for example If this part of code is faster than the other, it's really the target is to be able to run as fast as possible The virtual machine So I said in the introduction there are two Main mode in QMU. So one of the mod is a system emulation It is based on the CPU emulation But if you really want to run an OS you need the CPU and some devices So there is also Device emulation so it emulates memory ship set buses a lot of IO device I mean keyboard serial and prior ports on the PC speaker also you have to have storage So it emulates disk interface either ID or that's cozy associated with some hard drives or DVD run and It have a lot of other devices like graphic card sound card network interface USB emulation Bluetooth emulation and In order to be with all two devices and the CPU emulation you are able to run an unmodified OS directly under QMU It's not very fast because some device are very as to be emulated. So your Colonel in the virtual machine translates for example the network packets into a Instruction to the network card and QMU has to do exactly the reverse Coverting them in the other side. So that's why there are para virtualized devices Which means if your guest OS as a special driver You can have a faster network card removing these translations steps so it's mainly useful for Linux and even if You are using that between for emulating an arm machine on the x86 Computer that can improve the speed of the network or the hard drive and the second mode Of QMU is the user mode. So it's only a subset of the system emulation it mainly uses CPU emulation only part of it actually and It takes a binary in emulate the instructions of the binary And when in it find a Cisco instruction are depending on the architecture the Cisco is different It's translate all the Cisco argument to the host Kernel that is changing the Indian is the structure alignment and some specific Stuff then the Cisco is executed on the host kernel and the result is translated again So if you are running an application, which is not CPU limited. So no Computation code for example mainly doing this access graphic interface interface and so on it can be really fast So with that you can run take an army of binary and execute it directly on your computer And test it so it can be useful for example So if you have an arm CPU and you want to run a proprietary software It can be very useful, but also to do cross compiling to another for another system So there are some helpers to QMU to make it's running faster So there is the old I will say QMU kernel module. So it's a module running the kernel It's only works on x86 and x86 64 and Does not need hardware support on your CPU The way it works is instead of translating instructions, which takes time execute part of the this code directly on your CPU in rings free so there is typically no Security issue But to do that, there are a lot of assumption done under guest OS Which means you have good performance, but sometimes it may crash So it's mainly tested on Windows and Linux, but still there is some strange behavior at some point And it's not maintained anymore. So I don't even think the module compiler on the recent corner The reason why it is not maintained is that are recently a Lot of CPU manufacturers have introduced hardware support for the virtualization It's done on x86 x86 64 on Intel and AMD CPU So or a recent AMD CPU have that but on Intel you have to make sure the model you buy as The virtualization instructions because Intel want to segment the market and disable them on some CPU On poor PC. It's also possible on some CPU is 64 and 390 QM is able to To use the hardware supports to the virtualization So the target instruction in this mode are not translated anymore But executed directly under CPU and the CPU take care about that Depending on the CPU you have its hands So it also can also under some MMU support or not either it has been done in the corner or directly on the CPU and With that you can achieve close to native performance so for the story KVM the kernel virtual machine started as a fork from QMU and Now the code is being reintegrated into QMU It's not the two projects KVM is mostly used as a development branch and When it is stable it is merged into QMU, but it starts to be really usable known QMU So what's a host and CPU? The QMU support so it can run on GNULI NUX, BSD, OpenCeleris, macOS and Windows and It doesn't run on every host because there is this translation step So it translates into the internal language and then to support a new CPU you have to Write the code which translate the internal language into the assembly code of the CPU. So it supports a still Good subset so x86 poor PC ARM are working very nicely HPPA is very experimental. I think it's not really maintained anymore. I haven't tried it yet I don't know if it works spark works well for some Architecture, but not for the others. So it's still a bit experimental and S390X I've just mentioned in there. So it's a 64-bit version of S390 It's currently only a set of patches that have been posted a few days ago on the mailing list Seems to works well, but I haven't tried I cannot tell you and What interests probably you more because I guess most of you have a x86 or x64 machine or poor PC It's what which targets you can run which virtual machine you can emulate with QMU so I will run quickly about all the The supported architecture was so having Debian so you can see the state of this architecture And if you can use it for debugging or you should be prepared to something which doesn't really work. So So the x86-x86-x64 support so 32 or 64 bits it supports in terror It's emulated in terror in the CPU even with recent generation sets so MMX SSS2 and It's emulated a standard PC with a very old chipset but Still runs a Lot of OS with that it's as PCI USB graphic card support It's if you emulate a phenom AMD phenom CPU there is also at the virtualization instruction sets supported So an inside QMU can develop the KVM module Because it is able to emulate those instructions and And I think recently it's seven you can even run a virtualized QMU under QMU under QMU there is nested virtualization support on AMD In 32-bit it can emulate up to 64 gigabyte of RAM and a shooter abide in 64-bit mode I think the main limit in 64-bit mode is just testing Very few person have access to such machine to test if it works or not So in short, it's very good emulation In the user mode and in system mode. There is no real problem with this target. You can really use it The ARM support so it supports various CPU from ARMv4 to ARMv7 so you can choose them Demulation on the CPU side is very good except for the recent instruction sets So Vfp and Neon are there, but they are not really tested and I've seen recently on the QMU mailing list that some persons are trying to use a FFN peg with them and they are Fixing the bugs currently detecting and fixing the bugs It supports a various board or devices so the Versatil review board the Nokia N800 N810 and if you want to run it in Debian the best is to use the Versatil board because we have a kernel in Debian That that is available and can run onto the board One of the main problem is that most board are limited to 256 megabyte of RAM so It was still a good value until recently Compar for example to the to the slug which has only 32 megabyte of RAM But now there are very fast-term devices with a lot more memory so QMU is a bit lagging behind for that It also supports PCI and USB Interface it has an emulated graphic card And nothing more support meaning you have to run the kernel and in Italy directly and a good emulation user mode so it's Compar for example to a slug device if you have a two gigahertz machine QMU will be faster than The slug and it will have a faster IOS support because it have not Esk emulated SCSI interface instead of USB drive and a lot more of memory So it's it can be an alternative to you to using a slug if you are doing arm development MIP support so MIP support 32 and 64 bit mode with various CPU Including MIP 32 and 64 It's even support very recent CPU MIP 64 R2 for people knowing that The main problem is that very few machine are supported So many the MIPS Malta and very old MIPS machine like the Pica 61 or the Magnum machines that's Means that's if you really wanted to use it for Debian development The only same option is the Malta board which had also an imitation to 256 megabyte of memory It also has PCI and USB support, but it has no Really working Graphic card So you have to be prepared to use the CL port or SSH to work on it And the emulation is user mode works, but not to the same level as our army L8674 The poor PC targets so it supports also 32 and 64 bits The 64th kernel doesn't the 64 bit emulation on the CPU side is not fully tested And there is no real machine emulated machine to test it So the only usable machine is the old G3 beige poor PC Which run is started to be it mode. You can have up to 2 gigabyte of emulated RAM PCI USB support So there is a broken ID emulation, meaning that currently QMU emulates another ID board to be able to have a CD-ROM support But it's still usable and the frame buffer emulation is also broken Meaning the color reversed and you are not really able to use X on it So if you want to to use it for development be prepared to not have X support But otherwise the CPU is working very correctly And another architecture we have in Debian is the spark The 32 bit emulation is very working very correctly With almost complete emulation of send for a machines There are only a few small devices that are not emulated, but it's almost complete You can depending on the machine you can have up to 2 gigabyte of RAM emulated The only problem is that Debian doesn't support the 32-bit spark Since Edge. Edge was the last release with this emulation And the 64 bit emulation is not really working It's still in development. There are people working on it currently, but it crushes after a few lines of kernel printk And the emulation user mode is also basic. So it's not really used and not compared to the level of the others And we there are also the targets that we don't really have in Debian or they are currently integrated in Debian So you can see the support So That for example, we have SH for supports. I know there is an SH port in development. Maybe That can be useful And also for s390 there is Some development on it and it seems to be quite fast Except that it will be limited to the 64 bit emulation to 64 bit os2 port cpu So how I tested these targets Okay, oh, I tested a bit targets. I told you the emulation on the cpu is correct I tried to build gdpc, bnewtils and gcc And they're treating you and on the real machine and then compare the binary that are produced All the resulting binaries, but also all the The build tree comparing event config.log files trying to see if there are different and if they're explainable or not And on all those targets The previous one on the other targets We have exactly the same result on The Debian side on the virtual machine side and the real machine side So it's really something That can be useful for debugging. I have debug a lot of things with qmu a problem tracker on the Debian build elements and they were reproducible under qmu even for some strange internal cpu functions or So it works very well for that which doesn't mean You can build your Packages and qmu and upload them to the archive That's something which is not allowed in Debian. There have been some discussion about that and Don't use it To upload packages now For kivm is different. I I don't know what is the main opinion, but given in my opinion given That's the there is no emulation on this on the instruction set that the instructions are emulated directly Uh, I had executed directly on the stpu. I don't think there is a real problem to use kvm to To build packages and also we already have some kvm build elements in running in Debian So it looks very cool, but now what you want is getting it working on your computer so The first is probably to test a very simple mode which is the user emulation So I will Do that actually I plan to do a demo at the end, but I think for the qmu user emulation the best is to do it now So you can run directly Oops You can run a binary compile for another architecture on the same os Using directly qmu and the architecture and the name of the binary So that works, but that's works only for static binaries if your binary are using libraries for dynamic binaries You have to you need a root tree so Of this architecture including all the the libraries and you have to start with a prefix. So that's where the demo is Maybe useful. So I'm doing that with the army. I don't know. Maybe I should increase the size of the I don't know Yeah, right Configuration No, it's not that Model Okay, and I guess increasing the font size are you able to see now? Or a bit more Okay Like that. So here I have an army l3 So I can run fine. You can see there are some binaries and some libraries may need the ellipse So imagine I want to do a simple ls I can run qmu arm And if I try to run the ls it won't work because it doesn't find the jlpc So that's a moment with minus l You say where is the root directory on So basically the prefix to a tool binaries And now you are able to use the ls and I can show you that it's an army Binary so it's arm lsb You can even try to run for example bin sh So it's really up to date. So it's use dash And you you can see your tree and execute a few command cuts and so on I don't think there is a lot more to see about to Know about that the only Maybe other useful option if you are doing debugging There is an s trace option. So you can see like if you are using your s trace you can see all the syscoles that are used So that can be useful for for debugging and then you just have to have some imagination about how to use it What are the use cases? That's for the user emulation. I think it's very simple And let's continue With the system emulation. So as you warning first Yeah, it's better to use a very written version. So the the qmu development has told her bits before a version O10 so There When kvm support has been added to qmu Development started again. And so there is a huge difference between versions o9. Unfortunately at the version we have In lenny and the version o10 and later. Yes, the version o10 has been released a bit too late for any so Really prefer version 0.10 or even 0.11. I will see a few words later So there is no guise or get ready to use the command line or there are also a lot of front ends available The goal of qmu is really to stay simple and Uh, if people really want a guy, uh, to configure the emulation and so on to use a front end for that there are many And uh, sometimes you You see some function that doesn't work you you for example network configuration But remember there is no point running a qmu as a root even if it seems to work Is this is the only way to work A qmu Is probably very secure, but still it's a complex software. So there might be a Security issue somewhere. So if you run it as a user you prevent this kind of thing So if we want to start You can just uh, run the qmu system and the name of the architecture be aware that for um md64 it's the official name of the architecture. So it's e86 64 And what you want to run for example cd rom and run the bian live So it's something, uh, I think I've prepared So I can run the bian live It's just a ssh, uh, script that is contained in the same lines. So you can, uh, boot The bian live You can probably make it bigger Well, oh, oh, what's that? That's the official cd. We have a release with linear. I probably there is a new version now So just for the demonstration, I'm running it with a kvm enabled So it's a bit faster. So you don't have to wait for for the whole boots, but And then you have your it's the kv version. So well, maybe I'm not sure it works continuing up to the end of the boot But that's basically how it works But we want probably to do a bit more. Well, it's not finished to boot actually You can use it as a full screen Oh, it doesn't finish to boot so Let's continue So the main interface you have seen the interface By default, it's a just x11 interface which is actually fdl behind Uh, you can use control plus alt to grab into the interface So then you are sure all your keys and your mouse are sent to qmu and not to your host You can switch to window mode to full screen mode, uh using control plus alt plus f and vis versa So when you are using the grabbing mode, your mouse stay inside your Your uh window But it's sometimes you really want to be able to change from qmu to your host directly So for that, there is a an option which is usb device tablet. So instead of emulating a mouse it emulates a tablet So it uses a absolutely, uh, coordinate and so you can directly Move your mouse into the qmu window and back to your host without doing anything And another option that can be very useful is a knock retoption Uh, it's just to prevent uh closing with qmu by mistake doing a lf4 Clicking on the cross so you will see that it's something that can happen when you are using it very often and switching Towards the application. So that's the x11 interface by default There is also a cross interface which only work in text mode But that can be very useful if you want to boot a system remotely for example through ssh Uh, and also if you want to run it, uh as a As a demo on somewhere on the machine on the server and access it from remote including the graphic interface it can Emulate a vnc server so then you can connect to this server And have in the last version you can even have multiple clients simultaneously And for that you probably if you are not using a us keyboard probably have to Select your keyboard because as you are going through vnc qmu is sending the rocky codes to Your guests so exactly like a keyboard would send and qmu have to know how to translate The key receives through vnc Into rocky code of a keyboard. So for example to select the fr keyboard minus qfr And you may also want to disable the graphic output and you can use the no graphic output So For the demo and until now i've just run a cd rom of the main live, but you probably want to Install uh the bn on it or another system and save The result so for for dive recently until recently there was a hda to select to Send tax to select the first hard drive. So it's a deprecated interface Now we should use a drive file equal syntax because it's uh, um allow to To pass a lot more arguments So for example, it's uh, you can select if your drive should be emulated as id or sk as cozy you can also select The file formats you are using by default it auto detects the file format, but it can be a security issue So if you are running that on a server you should force them The image formats to formats which is really using in the image and so that's uh the point are Different image formats so which stores the image of your drive of your military drive So first of all the raw image which is just storing the drive direct the content of the drive directly It can be very fast if you emulate a 40 gigabyte drive it takes 40 gigabyte That's big, but at the same time it's it's fast. So There is also a two copy and write format. So the kiko format, uh, which Only stores and the really used Um Sectors in the other drives, uh, it's slower slower, but uh, it's also very small Kiko was the old format, uh, which doesn't support a lot of Things except being copy and write And it will be deprecated. Uh, probably soon with the next versions There is because there is a kiko two formats which are support for transparent compression and encryption But it was really broken version previous to out and so can secure me is moving a lot currently And there were things broken, but now start to stabilize and also when there is a release, there is a stable branch so they will Be more stable versions So the question in that case how to get fast i o so Sometimes people are reporting back things. It's very slow on their drives So first of all try to use a kernel without the f thing bug because it can really affect QMU Especially if you are running a browser like a swizzle or firefox at the same time for that you have to use a 2630 Kernel or later If you really want faster you'll use a raw image and not on a file system But directly and into a partition so lvm on a partition on a disk So you are removing one layer And also there is an option Added recently Which controls all the disk access are cached so There is Different option either there is no cache at all cache in read mode only in read write So if you want the fastest i o possible you have to use cache equal write back Which means that all the data are not written on the may not be written on the disk When your guest machines think it has been written So if your host crash with a problem or whatever You may have data corrections, but it's really the the fastest mode and there is a huge difference between the different modes And if you want to do some development sometimes you don't want to you have a working image You don't want to break it. You can use a minus tap shots It only works with kiko and kiko to images Um, but it doesn't store The change in on their drive. So if you restart it later if you break everything and you restart it It will be the same as previous It's a very useful option in when developing There is also something which is a bit uh complicated in qm racing is the most complicated part and Why persons are having problems? Uh, so a virtual card is emulated in the guests It can there are different card availability different models and they are um I believe there are different cards tends 100 and gigabit cards And that it's only virtual cards. So It's the theoretical speed and a 10 megabit card can go and can run faster than that on qm but faster cards Many gigabit cards tends to have network overloading features. So it helps to use those cards under qm. It's it's faster So that that's on the guest side on the host side you have to connect your guest to the network So the default mode is user mode and working. So it runs as a default user. You don't need to be root and use standard functions from the libc to connect to to the network Using the sleep ip stack It's only support is cp and udp not icmp because you need to be root for that And it only support ipv4. So it the speed is reasonable And it's very easy to set up So that's how it's done. So, um You Your guest is there and is seeing a virtual router with a virtual dhcp server A virtual dns server and a virtual samba server if enabled and Your it's connected to use to your networks with gpc function just as a user If you want That's the false net is in 10 something. So if you are at depthcon for example, it will collide with the network You can change it within using this option and if you want to Access to your qme image from the outside. You can redirect some ports of your host to your guest. I will show you a demo later about that The other option are tap networking That's creating a tap interface in the linux Which is connected to virtual nix. So it's difficult to set up because you also have a lot of configuration of the outside on the outside But it provides a full emulated ip stack with ipv6 whatever you want on it and very high transfer rate but It's complicated to set up the alternative is dvd networking virtual disability internet. So it's Basically the same feature. It's very easy to set up on the qme side. You are just moving the configuration On the vd side, but it can be shared by different software And also sometimes you don't just want to disable networking. So there is an option for that To make sure your host doesn't access to the network A few other tips that can be very useful You can boot directly a kernel Using the kernel ineterity and upland arguments. So you don't need a bootloader. It can boot faster. It's very useful in kernel development You can change your machine or the cpu with some options You can export a usb device that is for example You have a usb pendrive. You want to have it available in your guest. So You can use usb device option and it is seen directly in the guest There is smp support. So you can emulate multiple cpu So if you are using qme, it's only use one without virtualization You only use one cpu host. So if you emulate 64 cpu, it will be very slow at the end, but it boots If you want to enable kvm support, if you have virtualization, you just have to pass minus enable kvm And on debian, if you are a member of the group kvm, that's enough to get access to virtualization Also on different distribution, I don't know if it's done, but I guess it's the same And if you have a qme image and you want to access it without booting qme, there is a qme on video tool You can connect to a network block device and you can mount So with this option, for example, this qme image is then available on the host as slash dev nbd 0 0p1p2p3p4 for the partitions and you can mount them and access them directly Even if you are using a qcode 2 or compressed support, it works So I told you before there is a new version that will be available soon Which is planned for september The main things in it is the kvm integration So the virtualization really works with it in qme 0.10 it is there, but it's clearly slower than the kvm software There is a huge improvement of the qme as a site so you can run more binaries there are more sysco emulated The qcode 2 image support has been Really improved and really it's really stable because it will be the Really the default image support in this version There are new actions that have been added and small features a lot of small features have been added bug fixed and speed improvement also So I guess well one of the things In devian we are basically two recovery pro and me maintaining qme As we are both developing on the upstream side, we don't really use the qme package So we are really I will walk looking for commentaries to help us So if there are some people wanting to help you're welcome And so there are a few links you can see my presentation about how to so I've prepared not a pre built image for most Devian architecture. So if you don't really Need to install them yourself. You can just grab them and Run them and if you prefer to install them from from scratch, you have the installation instruction on my website So now I will do some demonstration like I've did but with most different architectures And I'm also open to question if you have some especially given it may take time to boot so Okay, so that's my demo. I will close that So I've prepared a few Demonstration so for example, we can boot an army machine So you can see the boot running And so that's a bit slow, but still the boot is quite fast and it will Uh Run xorg later. So I let it booting and doing this time and starting another machine So I told you on the MIPS emulation. For example, you don't have a graphic card. So if you run it It's just uh connected to a serial To the serial port But it's still uh usable So you can see it booting also will connect with later I And I will start also show the images and while they boot I will take some question if there are some Yeah, sorry Uh, I will put it currently it is not there, but I will put it on my website after I'm not fixing the shoe typo of remarketing the talk. So Yes, I've tried to use the mtd block stuff with qmu. Yeah, uh and haven't succeeded So how do you actually do that? Because there's some thing that the board actually that you're emulating actually has to have mtd on it In order to be able to on the the image I am providing there is Then do not use mtd supports because you can basically use The canal and enter the option directly so you can just start your canal this way There is mtd supports for arm for example Uh and sh4 so it has been added I haven't really tried it to be honest, but I know there have been a lot of development on that For the version or point 11. So I don't know if you have tried this version or not, but Clearly things probably have improved on that So let's see if there are Okay, so the images are still booting so there is a spark machine There are I think that's a poor pc machine So what you mentioned that the latest version has got integration with kvm Why um, I mean I've had had a little go when I was trying to test a dvd But why would I want to use that integration rather than using kvm directly? You know, what what are the relative merits of the two? What is wrong? Okay, so kvm currently is mostly a user the development branch so and For each new version there is a lot of new features, but also in a lot of new bugs so currently with version 10 is not really a good idea to use The kvm emulation kvm support on it, but with version or point 11 Clearly it's it will there will be a stable branch with bug fixes So the kvm support would be very more stable than the kvm software itself So it's just that kvm is currently you're saying kvm is on stables and qm u m qm u Is this yeah, he's taking the stable parts of the working part of kvm. Yeah, so that's our arm machine starting currently x Well, maybe my cpu is a bit Starting I have only the work core one and starting from machine at the same time Maybe not a very good idea Any other questions Okay, so Uh, I will take I have a white one. Yeah Okay, so What I've done so I will show you Oh, it's cool for the debian No demo For the poor pc Machine I've specified a radial parameters Which I mean now my port 2222 of my machine is connected to the 22 port inside the poor pc machine So if you don't really want to use the okay, I don't remember which one is it The poor pc machine is this one So it's possible to look in there But you still have a console and With qm interface is probably not very nice. You don't have cut and paste and so on So this way you can connect Directly to the machine without having a complex support It should not work because and now You are on the poor pc machine so Okay, so you can run it's still booting. I think so that's why it's a bit slow But you can see it's a it's a g3 cpu It's a lany canal the default canal so you can really do the poor pc development this way The same so it sparks only from it's still an edge version But there is a spark machine booting Logging out foot for example I can show you It's a Your lycra spark machine with the same kind of cpu Uh and then for example, let's try to log in On the rml machine So we are starting so it's a bit slow because we are emulating but it's a work normal environment so But you will see it's seven possible to run open office in it and It it works And so for this machine I started with usb tablet so you can see that My mouse maybe it's there on the on the left side. I can enter directly to the To the to the virtual machine Without having to grab and and so on it just follow. So that's the nice feature of the usb tablet Option something really you want to use Well, it's really slow Any other question maybe You say that in order for to have better io performance And it would be better to use a kernel Which is currently only in unstable Is that kernel available in backports and does it work on backports as well as it does on unstable If it QMU is well backport at all No QMU, I don't think it is backported. I don't have the answer for the kernel What I know is I am using directly the unstable kernel On a stable machine it works. I mean you can install it directly with the package So it's not directly related to QMU. It's just that it's also it will really improve the The net the Ios speed on the world your war machine, but it's really something important for QMU especially that Given of this bug your host machine can Be stuck for a few seconds All the disk access for a few seconds and in QMU if you're Emulate the kernel of your emulated machine doesn't get news from the ideas because it arrived for a few seconds it starts to To sometimes mounted again at read only or stuff like that, so It's a really good idea to not have this bug And it will improve for example if you are using fire for service It will also improve a lot Yeah Yeah, I wanted to use QMU like right now, but like later it The latest in the git repository Then do you think I can build it with the? Debian so from the devian source package Put the latest git in there and build the package Yeah, I mean taking the QMU The packaging taking the packaging stuff from devian source Put it into the git and currently not but the plan is to package a new version in experimental soon. I mean the 0.11 so Well, there might be some differences because in upstream for QMU to work The virtual machines needs to have BIOS or open firmware or stuff like that so On the upstream side, they are provided directly as binaries There are the sources, but they are provided as binaries and they are not rebuilt At all in the on the devian side We rely on external packages for that. So that's probably the the main difference that You may encounter it may if you package the upstream Git repository with the devian directory You will probably end up with the firmware in the devian package and make conflicts with the Official package we have for this firmware Any other question? Okay, stop Okay, so if you have more questions you can come after