User Tools

Site Tools


doc:appunti:prog:qemu_arm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
doc:appunti:prog:qemu_arm [2014/02/20 21:23] – [Debian Squeeze o Wheezy] niccolodoc:appunti:prog:qemu_arm [2014/02/20 21:42] – [Con libvirt] niccolo
Line 75: Line 75:
 ===== Con libvirt ===== ===== Con libvirt =====
  
-In teoria **[[http://libvirt.org/|libvirt]]** dovrebbe supportare QEMU, in pratica la libreria non passa all'emulatore **''qemu-system-arm''** i parametri giusti per farlo avviare.+Con **[[http://libvirt.org/|libvirt]]** 0.9.12.3 fornito da Debian Wheezy non si riesce a creare un file di configurazione adeguato che avvii l'emulatore QEMU per arm come visto sopra. Si potrebbe scrivere un wrapper da eseguire in sostituzione di **''/usr/bin/qemu-system-arm''**, che modifica i parametri passati all'emulatore.
  
-Il file di configurazione .xml che più si avvicina ad una configurazione funzionante è il seguente:+Tuttavia il problema è risolvibile installando libvirt 1.2.1-1~bpo70 dai Debian backports, questa è un file di configurazione per ''/etc/libvirt/qemu/armel.xml'' che ottiene più o meno la stessa della riga di comando vista sopra:
  
 <code xml> <code xml>
-<domain type='kvm'>+domain type='qemu'>
   <name>armel</name>   <name>armel</name>
   <uuid>bf9adc6c-f05c-2698-1cf0-278fd86dc19a</uuid>   <uuid>bf9adc6c-f05c-2698-1cf0-278fd86dc19a</uuid>
Line 87: Line 87:
   <vcpu>1</vcpu>   <vcpu>1</vcpu>
   <os>   <os>
-    <type arch='arm' machine='versatileab'>hvm</type>+    <type arch='armv7l' machine='versatileab'>hvm</type>
     <kernel>/home/kvm/armel/vmlinuz-2.6.32-5-versatile</kernel>     <kernel>/home/kvm/armel/vmlinuz-2.6.32-5-versatile</kernel>
     <initrd>/home/kvm/armel/initrd.img-2.6.32-5-versatile</initrd>     <initrd>/home/kvm/armel/initrd.img-2.6.32-5-versatile</initrd>
-    <cmdline>root=/dev/sda1</cmdline> +    <!-- <initrd>/home/kvm/armel/initrd-installer.gz</initrd> --
-    <!--  +    <cmdline>root=/dev/sda1 console=ttyAMA0</cmdline>
-    <initrd>/home/kvm/armel/initrd-installer.gz</initrd> +
-    <cmdline>root=/dev/ram</cmdline+
-    -->+
     <boot dev='hd'/>     <boot dev='hd'/>
   </os>   </os>
Line 105: Line 102:
   <on_crash>destroy</on_crash>   <on_crash>destroy</on_crash>
   <devices>   <devices>
-    <!-- <emulator>/usr/bin/qemu-system-arm</emulator> --> +    <emulator>/usr/bin/qemu-system-arm</emulator>
-    <emulator>/usr/local/bin/qemu-system-arm-wrapper</emulator>+
     <disk type='file' device='disk'>     <disk type='file' device='disk'>
-      <source file='/home/kvm/armel/hda.img'/>+      <driver name='qemu' type='qcow2'/> 
 +      <source file='/home/kvm/armel/debian_squeeze_armel_standard.qcow2'/>
       <target dev='hda' bus='scsi'/>       <target dev='hda' bus='scsi'/>
     </disk>     </disk>
     <interface type='bridge'>     <interface type='bridge'>
-      <model type='virtio'/>+      <model type='rtl8139'/>
       <mac address='52:54:00:00:03:72'/>       <mac address='52:54:00:00:03:72'/>
       <source bridge='br0'/>       <source bridge='br0'/>
       <target dev='tap72'/>       <target dev='tap72'/>
-      <script path='no'/> 
     </interface>     </interface>
-    <graphics type='vnc' port='-1' listen='192.168.3.1'/> +    <serial type="tcp"> 
-    <serial type="null">+        <source mode="bind" host="127.0.0.1" service="4072"/> 
 +        <protocol type="telnet"/>
     </serial>     </serial>
   </devices>   </devices>
Line 127: Line 124:
 Alcune note: Alcune note:
  
-  * Se si tenta di allocare più di **256 Mb di RAM** all'emulatore, si ha un segmentation fault (pacchetto Debian quemy-system 0.12.5+dfsg-3).+  * Questa architettura emulata non consente più di **256 Mb di RAM**.
   * La configurazione di cui sopra la scheda di rete viene posta in [[..:linux:sa:virtualization#modalita_bridge|modalità bridge]], quindi la macchina ospite deve avere l'opportuna scheda **br0** configurata, la rete locale fornisce l'indirizzo via DHCP, ecc.   * La configurazione di cui sopra la scheda di rete viene posta in [[..:linux:sa:virtualization#modalita_bridge|modalità bridge]], quindi la macchina ospite deve avere l'opportuna scheda **br0** configurata, la rete locale fornisce l'indirizzo via DHCP, ecc.
 +  * Si è scelta l'architettura **versatileab** perché la versatilepb viene avviata con dei parametri sbagliati e si ha un errore **No PCI buses available**.
  
-Con questa configurazione vengono passati all'emulatore alcuni parametri errati o inutili, in particolare: 
- 
-  * **''-device virtio-net-pci,...''** 
-  * ... 
- 
-Per //filtrare// questi parametri ho scritto un piccolo wrapper, che riceve i parametri sbagliati, li corregge e quindi chiama l'emulatore in modo che funzioni. Lo potete scaricare qui: **{{qemu-system-arm-wrapper.txt|qemu-system-arm-wrapper}}** (togliere l'estensione .txt). 
doc/appunti/prog/qemu_arm.txt · Last modified: 2014/02/20 22:07 by niccolo