Old:Installazione Qemu con supporto accelerazione Kqemu: differenze tra le versioni
Riga 89: | Riga 89: | ||
* -user-net --> Il sistema GUEST deve essere configurato in DHCP. | * -user-net --> Il sistema GUEST deve essere configurato in DHCP. | ||
Qemu assegna un indirizzo dinamico "10.0.2.15" al SO guest, | Qemu assegna un indirizzo dinamico "10.0.2.15" al SO guest, | ||
il quale | il quale sarà in grado di pingare solo il suo GW che è | ||
"10.0.2.2" Per testare la rete quindi avviare le applicazioni | "10.0.2.2" Per testare la rete quindi avviare le applicazioni | ||
di rete, visto che il ping <host> non funziona. | di rete, visto che il ping <host> non funziona. | ||
Riga 95: | Riga 95: | ||
=== Qemu Networking === | === Qemu Networking === | ||
Con la soluzione indicata qui sopra, il sistema Guest riesce a navigare in Internet, ma non riesce ad accedere alle risorse del proprio host. La maniera | Con la soluzione indicata qui sopra, il sistema Guest riesce a navigare in Internet, ma non riesce ad accedere alle risorse del proprio host. La maniera più facile per configurare qemu in modo che possa fare entrambe le cose, è quella di installare vde e usare tun/tap con un bridge. | ||
Prima di iniziare, dovete verificare che il vostro kernel supporti i seguenti moduli: | Prima di iniziare, dovete verificare che il vostro kernel supporti i seguenti moduli: | ||
Riga 107: | Riga 107: | ||
</pre> | </pre> | ||
[http://vde.sourceforge.net Vde] sta per Virtual Distributed Ethernet ed | [http://vde.sourceforge.net Vde] sta per Virtual Distributed Ethernet ed è un programma open source che vi permette di creare un network virtuale. Noi lo utilizzeremo per far fare in modo che il sistema Guest veda se stesso come un'unità distinta dal sistema host e possa colloquiare con questi. | ||
Per quel che ne so io, non esiste (ancora) un pacchetto deb | Per quel che ne so io, non esiste (ancora) un pacchetto deb già pronto per l'uso, ma per installare vde sono sufficenti poche righe: | ||
<pre> | <pre> | ||
wget http://puzzle.dl.sourceforge.net/sourceforge/vde/vde-1.5.9.tar.gz | wget http://puzzle.dl.sourceforge.net/sourceforge/vde/vde-1.5.9.tar.gz | ||
tar -xvzf vde-1.5.9.tar.gz | tar -xvzf vde-1.5.9.tar.gz | ||
cd | cd vde-1.5.9 | ||
./configure | ./configure | ||
make | make | ||
Riga 129: | Riga 129: | ||
ifconfig eth0 0.0.0.0 promisc up | ifconfig eth0 0.0.0.0 promisc up | ||
ifconfig tun0 0.0.0.0 promisc up | ifconfig tun0 0.0.0.0 promisc up | ||
#l'IP qui sotto | #l'IP qui sotto è quello del computer host; modificatelo per adeguarlo alle vs esigenze | ||
ifconfig br0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255 up | ifconfig br0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255 up | ||
Riga 137: | Riga 137: | ||
brctl addif br0 eth0 | brctl addif br0 eth0 | ||
brctl addif br0 tun0 | brctl addif br0 tun0 | ||
#questo invece | #questo invece è l'indirizzo IP del gateway | ||
route add default gw 192.168.0.1 | route add default gw 192.168.0.1 | ||
</pre> | </pre> | ||
NB: Una volta verificato che tutto funziona, queste istruzioni vanno inserite in uno script in modo da essere eseguite automaticamente all'accensione del computer | NB: Una volta verificato che tutto funziona, queste istruzioni vanno inserite in uno script in modo da essere eseguite automaticamente all'accensione del computer | ||
qui ne trovate uno mooolto grezzo: [http://klingon.homelinux.net/files/vde_qemu vde_qemu], che va salvato in /etc/init.d. | qui ne trovate uno mooolto grezzo: [http://klingon.homelinux.net/files/vde_qemu vde_qemu], che va salvato in /etc/init.d. Dopodiché: <pre>chmod u+x /etc/init.d/vde_qemu | ||
update-rc.d -n vde_qemu defaults 90</pre> | update-rc.d -n vde_qemu defaults 90</pre> | ||
Ora tutto | Ora tutto è pronto per lanciare qemu, con l'ultima avvertenza che dovete usare l'apposito wrapper vdeqemu: | ||
<pre> | <pre> | ||
vdeqemu -hda disk.img -localtime | vdeqemu -hda disk.img -localtime | ||
</pre> | </pre> | ||
Potete utilizzare tutte le opzioni di qemu, | Potete utilizzare tutte le opzioni di qemu, fuorché -user-net, che disattiverebbe tun. | ||
Ora il sistema guest dovrebbe accedere a tutte le porte del sistema host, in maniera totalmente trasparente: da risorse di rete dovreste vedere il vostro server samba con le sue partizioni; dal browser dovreste accedere alle pagine del vostro server web, etc. etc. | Ora il sistema guest dovrebbe accedere a tutte le porte del sistema host, in maniera totalmente trasparente: da risorse di rete dovreste vedere il vostro server samba con le sue partizioni; dal browser dovreste accedere alle pagine del vostro server web, etc. etc. | ||
Riga 159: | Riga 159: | ||
Per quanto riguarda l'utilizzo della CPU, a quanto pare | Per quanto riguarda l'utilizzo della CPU, a quanto pare | ||
Windows 9x non fa un uso corretto della istruzione CPU HLT e | Windows 9x non fa un uso corretto della istruzione CPU HLT e | ||
quindi spara la cpu a 100% quando | quindi spara la cpu a 100% quando è in idle (non fa nulla) e | ||
invece la usa regolarmente quando | invece la usa regolarmente quando è sotto "sforzo", paradossalmente | ||
infatti, se viene utilizzata la cpu di qemu l'utilizzo di | infatti, se viene utilizzata la cpu di qemu l'utilizzo di | ||
cpu si abbassa su linux in proporzione. | cpu si abbassa su linux in proporzione. |
Versione delle 05:55, 21 ago 2005
INSTALLAZIONE QEMU / KQEMU PER DEBIAN / UBUNTU
1. Scaricare da: http://fabrice.bellard.free.fr/qemu/download.html i codici sorgenti di QEMU e di KQEMU, scompattarli in modo che la directory src di kqemu sia estratta all'interno della directory di quemu e settare i diritti con chmod 775 a tutto l'albero quemu/kquemu.
2.rob@klingon:/home/rob# tar zxvf qemu-0.7.1.tar.gz 3.rob@klingon:/home/rob# chmod -R 775 /path/to/qemu-0.7.1 4.rob@klingon:/home/rob# cd qemu-0.7.1 5.rob@klingon:/home/rob/qemu-0.7.1# tar zxvf /home/rob/kqemu-0.6.2-1.tar.gz
Ora va trovata la path del kernel-headers (linux-headers su ubuntu) per inserirla nel file "configure" della directory sorgente di qemu.
6.rob@klingon:/home/rob/qemu-7.0.1#uname -r (legge la versione kernel) 7.rob@klingon:/home/rob/qemu-7.0.1#gedit configure
cambiare la riga: kernel_path="" in kernel_path="/usr/src/kernel-headers-2.6.10-k7" per debian o in kernel_path="/usr/src/linux-headers-2.6.10-k7" per ubuntu, ricordandosi di inserire la propria versione del kernel ricavabile con "uname -r"
Ora vanno installate le librerie necessarie (qualora non fossero presenti)
8.rob@klingon:/home/rob/qemu-7.0.1#apt-get install libsdl1.2-dev 9.rob@klingon:/home/rob/qemu-7.0.1#apt-get install zlib1g-dev
Verifichiamo che sia tutto ok e che il supporto kqemu sia attivo, in modo che venga compilato il modulo corretto per il nostro kernel. Poi compiliamo ed installiamo.
10.rob@klingon:/home/rob/qemu-7.0.1#./configure (verifichiamo che sia tutto ok e che kqemu sia attivo) 11.rob@klingon:/home/rob/qemu-7.0.1#make (compilazione) 12.rob@klingon:/home/rob/qemu-7.0.1#make install (installazione)
Ora va installato il modulo del kernel
13.rob@klingon:/home/rob/qemu-7.0.1#modprobe kqemu (fa partire la base kernel dell'acceleratore di qemu "kqemu")
Se si vuole che il modulo kernel kquemu parta all'avvio (consigliato) seguire la segg. procedura:
14.rob@klingon:/#gedit /etc/init.d/bootmisc.sh
ed inserire le seguenti righe nel file bootmisc.sh subito prima di "exit;"
# Start Qemu with KQemu accelerator /sbin/modprobe kqemu mknod /dev/kqemu c 250 0 # Create the KQEMU device chmod 666 /dev/kqemu # Make it accessible to all users
Creazione di un disco immagine (facoltativo)
15. rob@klingon:/home/rob#qemu-img create hd.img 3500M
Riga di comando per partenza qemu con acceleratore kqemu (cambiare il boot per fare l'installazione da cd etc..)
rob@klingon#qemu -boot c -cdrom /dev/cdrom -hda /home/rob/hd.img -user-net -pci -m 256 -k it -localtime
Opzioni:
- -m --> memoria per l'emulatore = 256MB
- -k it --> tastiera italiana
- -localtime --> usa ora locale (default UTC)
- -pci --> emula scheda di rete rtl8029 PCI
- -boot c --> boot da dico rigido
- -user-net --> Il sistema GUEST deve essere configurato in DHCP.
Qemu assegna un indirizzo dinamico "10.0.2.15" al SO guest, il quale sarà in grado di pingare solo il suo GW che è "10.0.2.2" Per testare la rete quindi avviare le applicazioni di rete, visto che il ping <host> non funziona.
Qemu Networking
Con la soluzione indicata qui sopra, il sistema Guest riesce a navigare in Internet, ma non riesce ad accedere alle risorse del proprio host. La maniera più facile per configurare qemu in modo che possa fare entrambe le cose, è quella di installare vde e usare tun/tap con un bridge.
Prima di iniziare, dovete verificare che il vostro kernel supporti i seguenti moduli:
tun: "Network device support" -> "Universal TUN/TAP device driver support" IP masquerade: "Networking options" -> "IP: Netfilter Configuration" bridging: "Networking options" -> "802.1d Ethernet Bridging"
e dovete installare il pacchetto bridge-utils:
apt-get install bridge-utils
Vde sta per Virtual Distributed Ethernet ed è un programma open source che vi permette di creare un network virtuale. Noi lo utilizzeremo per far fare in modo che il sistema Guest veda se stesso come un'unità distinta dal sistema host e possa colloquiare con questi.
Per quel che ne so io, non esiste (ancora) un pacchetto deb già pronto per l'uso, ma per installare vde sono sufficenti poche righe:
wget http://puzzle.dl.sourceforge.net/sourceforge/vde/vde-1.5.9.tar.gz tar -xvzf vde-1.5.9.tar.gz cd vde-1.5.9 ./configure make make install
Una volta fatto questo, siete pronti per configurare tun e il bridge:
vde_switch -tap tun0 -daemon chmod 777 /tmp/vde.ctl ifconfig eth0 down brctl addbr br0 ifconfig eth0 0.0.0.0 promisc up ifconfig tun0 0.0.0.0 promisc up #l'IP qui sotto è quello del computer host; modificatelo per adeguarlo alle vs esigenze ifconfig br0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255 up brctl stp br0 off brctl setfd br0 1 brctl sethello br0 1 brctl addif br0 eth0 brctl addif br0 tun0 #questo invece è l'indirizzo IP del gateway route add default gw 192.168.0.1
NB: Una volta verificato che tutto funziona, queste istruzioni vanno inserite in uno script in modo da essere eseguite automaticamente all'accensione del computer
qui ne trovate uno mooolto grezzo: vde_qemu, che va salvato in /etc/init.d. Dopodiché:
chmod u+x /etc/init.d/vde_qemu update-rc.d -n vde_qemu defaults 90
Ora tutto è pronto per lanciare qemu, con l'ultima avvertenza che dovete usare l'apposito wrapper vdeqemu:
vdeqemu -hda disk.img -localtime
Potete utilizzare tutte le opzioni di qemu, fuorché -user-net, che disattiverebbe tun.
Ora il sistema guest dovrebbe accedere a tutte le porte del sistema host, in maniera totalmente trasparente: da risorse di rete dovreste vedere il vostro server samba con le sue partizioni; dal browser dovreste accedere alle pagine del vostro server web, etc. etc.
PATCH PER WINDOWS
Per quanto riguarda l'utilizzo della CPU, a quanto pare Windows 9x non fa un uso corretto della istruzione CPU HLT e quindi spara la cpu a 100% quando è in idle (non fa nulla) e invece la usa regolarmente quando è sotto "sforzo", paradossalmente infatti, se viene utilizzata la cpu di qemu l'utilizzo di cpu si abbassa su linux in proporzione.
la patch puo' essere scaricata qui, va installata sul Win9x GUEST.
http://klingon.homelinux.net/files/amnhltm.zip
Link utili (in inglese):
- http://ubuntuforums.org/showthread.php?t=39513
- http://fabrice.bellard.free.fr/qemu/index.html
- http://fabrice.bellard.free.fr/qemu/qemu-doc.html
- http://www.debian-administration.org/?article=40
- http://oui.com.br/n/content.php?article.21
- http://www.carlsonhome.net/computer_help_log.php
-- Themonkey 20:31, Ago 19, 2005 (EDT) The_monk_ey ( skype: the_monk_ey )