Utente:MaXeR: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(51 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
==Installazione QEMU con qvm86/kqemu per Debian/Ubuntu==
=About MaXeR=
Mi chiamo Claudio, ho 22 anni e studio Informatica presso l'Università degli Studi di Verona.


=== Qemu con supporto qvm86 (libero, ma sperimentale) ===
==Contatti==
; Blog : http://www.knio.it


====1. Fase Preliminare====
; MaXeR@fsfe.org : http://www.fsfe.org/Members/maxer/
Assicuratevi di aver installato i pacchetti necessari a scaricare e compilare il tutto:
* '''ssh''' e '''cvs''' (per scaricare qvm86 occorre andare via cvs remoto)
* '''patch''' (per usare qvm86 con qemu occorre effettuare una piccola patch ai sorgenti di qemu)
* '''gcc-3.3''' oppure '''gcc-3.4''' (qemu non � ancora compilabile col gcc 4.0)
* '''libsdl1.2-dev'''
* '''zlib1g-dev'''
* '''make'''
* '''kernel-headers-'''''versione_del_kernel_in_uso'' (oppure '''linux-headers-'''''versione_del_kernel_in_uso'' se avete una Ubuntu od usate una Debian unstable con un kernel recente). La versione pu� essere individuata eseguendo il comando <code>uname -r</code>.


====2. Recupero file QEMU====
; MaXeR@persone.softwarelibero.it : http://persone.softwarelibero.org/person/MaXeR
Scaricate da [http://fabrice.bellard.free.fr/qemu/download.html http://fabrice.bellard.free.fr/qemu/download.html] gli archivi dei codici sorgenti di QEMU, e come '''utente diverso da root''' scompattateli in una directory e poi entrateci.
$ tar zxvf qemu-0.8.0.tar.gz
$ cd qemu-0.8.0


====3. Recupero file qvm86====
; em@il : [mailto:maxer@debianizzati.org maxer@debianizzati.org]<br/>[mailto:maxer@knio.it maxer@knio.it]<br/>[mailto:maxer@fsfe.org maxer@fsfe.org]
Scaricate via cvs i sorgenti di qvm86, in modo che siano all'interno della directory dei sorgenti di qemu, sempre con un utente '''diverso da root'''.
$ export CVS_RSH=ssh
$ export CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qvm86
$ cvs -z3 co qvm86


====4. Applicazione patch====
Applicate dalla directory dei sorgenti di qemu la patch provvista da qvm86.
$ patch -p0 < qvm86/patch.qvm86


====5. Configurazione====
; jabber : maxer@jabber.linux.it
Configurate l'ambiente di compilazione avviando lo script <code>./configure</code>.  
: maxer@jabber.fsfe.org
Verificate che sia tutto ok, poi compilate il tutto ed installate.
$ ./configure --cc=gcc-3.3
$ make
Se avviando <code>./configure</code> avete errori del tipo che non si riesce a trovare la parte di sviluppo di libsdl, avete scompattato gli archivi come root. Leggete meglio sopra e ricominciate da capo.


Se dopo aver avviato <code>make</code> ci sono errori di compilazione, ci si pu� limitare a compilare il solo modulo di emulazione x86, aggiungendo l'opzione <code>--target-list=i386-softmmu</code> al comando <code>./configure</code>.
; icq : 161200863
$ make clean
$ ./configure --cc=gcc-3.3 --target-list=i386-softmmu
$ make


Se non ci sono errori, ora potete diventare root ed installare qemu.
$ su
Password:
# make install


A questo punto qemu � installato in <code>/usr/local/bin/qemu</code>, ed il modulo qvm86 si trova in <code>/lib/modules/''versione_del_kernel''/misc/qvm86.ko</code>.
[http://www.fsfe.org http://www.knio.it/images/a-happy-fellow.png]


====6. Caricamento modulo====
=Le Mie Guide=
Prima di eseguire qemu va caricato il modulo del kernel <code>qvm86</code>, va eventualmente creato <code>/dev/qvm86</code> (usato per interagire col kernel) e gli vanno dati permessi adeguati.
# [[La struttura della Distribuzione]]
# [[I repository ed il loro utilizzo]]
# [[Introduzione all'APT System]]
# [[Pulire Debian]]
# [[Applicare una patch ad un pacchetto Debian]]
# [[Apt-build: ottimizzazione dei pacchetti | '''Apt-build''': ottimizzazione dei pacchetti]]
# [[Apt-cdrom | '''Apt-cdrom''': aggiunta di cd/dvd nella lista dei repository]]
# [[Apt-file: ricerca all'interno dei pacchetti | '''Apt-file''': ricerca all'interno dei pacchetti]]
# [[Apt-listbugs: come monitorare i bug | '''Apt-listbugs''': come monitorare i bug]]
# [[Apt-zip: aggiornamenti senza una connessione veloce | '''Apt-zip''': aggiornamenti senza una connessione veloce]]
# [[Make-jpkg: Pacchettizziamo Java| '''Make-jpkg''': Pacchettizziamo Java]]
# [[Apt-Proxy: un proxy per i pacchetti Debian| '''Apt-Proxy''': un proxy per i pacchetti Debian]]
# [[Debmirror: creiamo un mirror Debian |'''Debmirror''': creiamo un mirror Debian]]
# [[Password sicure: la base della sicurezza informatica]]
# [[Come abilitare il completamento automatico 'avanzato']]
# [[Convertire immagini .nrg in immagini .iso]]
# [[Gestione della banda in Apache]]
# [[Mrtg: monitoriamo la banda]]
# [[UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione]]
# [[Powernowd: CpuScaling per AMD]]
# [[ cacti | Cacti per monitorare il sistema ]]
# [[ Debian_on_a_compaq_Presario_2154EA ]]
# [[ Munin ]]
# [[ Debian Fun ]]
# [[LAMP: Linux, Apache, MySQL e PHP]] Collaborazione con [[Utente:Keltik|Keltik]]
# [[ SysV ]]
# [[ jigdo ]]
# [[ Wireless Support ]]
# [[ Apache, SSL e CaCert.Org ]] (stub)
# [[ Pacchettizzare un tema per Bootsplash ]]
# [[ Gestione di un repository con debarchiver ]]
# [[ Ssh e autenticazione tramite chiavi ]]
# [[ Dupload per l'upload dei pacchetti Debian ]]
# [[ Synaptics touchpad ]]
# [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH | Montare una directory remota con sshfs]]
# [[Unison e la sincronizzazione di directory]]
# [[Pbuilder: compilazione in ambienti puliti]]
# [[Madwifi | Installazione Driver Madwifi]]
# [[Old:Repository Debianizzati.Org]]
# [[Old:Kde e mount automatico]]
# [[Recuperare i dati da un Hard Disk danneggiato]]
# Rileggere la tabella delle partizioni (cancellata)
# [[Java in Debian]]
# [[APT: Errori (non così) frequenti]]
# [[Controllare lo stato di un pacchetto]]
# [[Postgrey: filtrare lo spam con il greylisting]]
# [[Spostare il tasto di chiusura delle tab di Firefox 2]]
# [[Postfix e autenticazione su smtp remoto]]
# [[Tmpreaper: pulire le directory contenenti file temporanei]]
# [[Creare DVD Cover con GLabels]]
# [[Alternatives]]


Esempio di procedura manuale (per chi '''non ha''' installato il pacchetto udev):'''
=Pagine in Lavorazione=
# Queste due operazioni sono da fare come root una volta sola:
* [[Repository non ufficiali]]
# mknod /dev/qvm86 c 222 0
* [[Copiare-Spostare Debian]] (titolo non definitivo)
# chmod 666 /dev/qvm86
* [[Logrotate: configurare la rotazione automatica dei log]]
#
* [[Nagios: monitorare server e servizi]]
# Questa operazione va eseguita come root ad ogni avvio del sistema per usare qemu
* [[Integrit: file verification system]]
# modprobe qvm86


Esempio di procedura manuale (per chi '''ha''' installato il pacchetto udev):
=Ho scritto anche in=
# Queste due operazioni vanno eseguite come root ad ogni avvio del sistema
* [[ Speciale:Contributions/MaXeR | dove ho ficcato il naso ;) ]]
# modprobe qvm86
* [[wg111v2 con ndiswrapper e crittografia WPA]]
# chmod 666 /dev/qvm86


Per far eseguire '''automaticamente''' queste operazioni ad ogni avvio del sistema (consigliato):
=Pagine Varie riportate da altre fonti=
* diventate root (<code>su -</code>)
# [[Vendere Software Libero]]
* modificate il file <code>/etc/modules</code> aggiungendo la riga <code>qvm86</code>, in modo che il modulo venga automaticamente caricato al boot.
# [[Perché il software non deve avere padroni]]
* create il file <code>/etc/modprobe.d/qvm86</code> contenente le seguenti righe:
# [[La comunità del software libero dopo 20 anni]]
** per chi '''non ha''' installato il pacchetto udev:
# [[Ricompense e Motivazione]]
install qvm86 /sbin/modprobe --ignore-install qvm86 \
&& (test -c /dev/qvm86 || mknod /dev/qvm86 c 222 0) \
&& chmod 666 /dev/qvm86
:* per chi '''ha''' installato il pacchetto udev:
install qvm86 /sbin/modprobe --ignore-install qvm86 && chmod 666 /dev/qvm86
 
Una volta caricato il modulo e dati i permessi di lettura a /dev/qvm86 siamo pronti per eseguire il nuovo qemu.
 
Accertatevi che il qemu che andrete ad eseguire '''sia quello compilato in <code>/usr/local/bin/qemu</code>''': potete farlo eseguendo <code>type qemu</code>.
 
=== Qemu col supporto kqemu (proprietario) ===
 
====1. Fase Preliminare====
Assicuratevi di aver installato i pacchetti necessari a compilare il tutto:
* '''gcc-3.3''' oppure '''gcc-3.4''' (qemu non � ancora compilabile col gcc 4.0)
* '''libsdl1.2-dev'''
* '''zlib1g-dev'''
* '''make'''
* '''kernel-headers-'''''versione_del_kernel_in_uso'' (oppure '''linux-headers-'''''versione_del_kernel_in_uso'' se avete una Ubuntu od usate una Debian unstable con un kernel recente). La versione pu� essere individuata eseguendo il comando <code>uname -r</code>.
 
====2. Recupero file QEMU/KQEMU====
Scaricate archivi dei codici sorgenti di [http://fabrice.bellard.free.fr/qemu/download.html QEMU e KQEMU], e come '''utente diverso da root''' scompattateli in modo che la directory di kqemu venga estratta all'interno della directory di qemu. Quindi entrate nella directory dei sorgenti.
$ tar zxvf qemu-0.8.0.tar.gz
$ tar zxvf kqemu-0.7.2.tar.gz -C qemu-0.8.0
$ cd qemu-0.8.0
 
====3. Configurazione====
Configurate l'ambiente di compilazione avviando lo script <code>./configure</code>.
Verificate che sia tutto ok e che il supporto kqemu sia attivato, in modo che venga compilato
il modulo corretto per il vostro kernel. Poi compilate il tutto ed installate.
$ ./configure --cc=gcc-3.4
$ make
Se avviando <code>./configure</code> avete errori del tipo che non si riesce a trovare la parte di sviluppo di libsdl, avete scompattato gli archivi come root invece che come utente comune. Leggete meglio sopra e ricominciate da capo.
Chi utilizza Ubuntu Breezy (5.10) definisca anche la variabile di  ambiente CC che punti a gcc-3.4 (<code>export CC='/usr/bin/gcc-3.4'</code>), altrimenti il linking di kqemu verra' fatto con gcc-4.0 (compilatore di default su Ubuntu Breezy 5.10) e in fase di caricamento del modulo si avra' l'errore '''Invalid module format''', poiche' il kernel standard di questa distribuzione e' compilato con gcc-3.4. La variabile va definita prima di eseguire il <code>make</code>; se cio' non e' stato fatto per tempo allora e' necessario entrare nella directory <code>kqemu/</code> ed eliminare quanto gia' compilato con <code>make clean</code>, poi ritornare nella directory principale e rilanciare <code>make</code>.
 
Se dopo aver avviato <code>make</code> ci sono errori di compilazione, ci si pu� limitare a compilare il solo modulo di emulazione x86, aggiungendo l'opzione <code>--target-list=i386-softmmu</code> al comando <code>./configure</code>.
$ make clean
$ ./configure --cc=gcc-3.4 --target-list=i386-softmmu
$ make
 
Se non ci sono errori, ora potete diventare root ed installare qemu.
$ su
Password:
# make install
 
A questo punto qemu � installato in <code>/usr/local/bin/qemu</code>, ed il modulo kqemu si trova in <code>/lib/modules/''versione_del_kernel''/misc/kqemu.ko</code>.
 
====4. Caricamento modulo====
Prima di eseguire qemu va caricato il modulo del kernel <code>kqemu</code>, va eventualmente creato <code>/dev/kqemu</code> (usato per interagire col kernel) e gli vanno dati permessi adeguati.
 
Esempio di procedura manuale (per chi '''non ha''' installato il pacchetto udev):'''
# Queste due operazioni sono da fare come root una volta sola:
# mknod /dev/kqemu c 250 0
# chmod 666 /dev/kqemu
#
# Questa operazione va eseguita come root ad ogni avvio del sistema
# modprobe kqemu
 
Esempio di procedura manuale (per chi '''ha''' installato il pacchetto udev):
# Queste due operazioni vanno eseguite come root ad ogni avvio del sistema
# modprobe kqemu major=0
# chmod 666 /dev/kqemu
 
Per far eseguire '''automaticamente''' queste operazioni ad ogni avvio del sistema (consigliato):
* diventate root (<code>su -</code>)
* modificate il file <code>/etc/modules</code> aggiungendo la riga <code>kqemu</code>, in modo che il modulo venga automaticamente caricato al boot.
* create il file <code>/etc/modprobe.d/kqemu</code> contenente le seguenti righe:
** per chi '''non ha''' installato il pacchetto udev:
install kqemu /sbin/modprobe --ignore-install kqemu \
&& (test -c /dev/kqemu || mknod /dev/keqmu c 250 0) \
&& chmod 666 /dev/kqemu
:* per chi '''ha''' installato il pacchetto udev:
options kqemu major=0
install kqemu /sbin/modprobe --ignore-install kqemu && chmod 666 /dev/kqemu
 
Una volta caricato il modulo e dati i permessi di lettura a /dev/kqemu siamo pronti per eseguire il nuovo qemu.
 
Accertatevi che il qemu che andrete ad eseguire '''sia quello compilato in <code>/usr/local/bin/qemu</code>''': potete farlo eseguendo <code>type qemu</code>.
 
== Utilizzo QEMU ==
 
===Creazione immagine===
(facoltativo) Creazione di un file immagine per il disco (facoltativo)
$ qemu-img create hd.img 5G
 
===Esecuzione QEMU===
''(cambiare il boot per fare l'installazione da cd etc..)''
 
Per semplicita` qui avviamo qemu da root (gli utenti comuni in Debian solitamente non possono leggere direttamente /dev/cdrom), tuttavia qemu puo` tranquillamente essere eseguito come utente comune (consigliato).
# qemu -boot c -cdrom /dev/cdrom -hda /home/rob/hd.img \
-user-net -pci -m 256 -k it -localtime
 
Le principali opzioni di qemu sono:
 
* '''-m ''megabyte'' ''' --> memoria per l'emulatore = 256MB
* '''-k it''' --> tastiera italiana
* '''-localtime''' --> usa ora locale (default UTC)
* '''-pci''' --> emula scheda di rete rtl8029 PCI
* '''-boot c''' --> avvia dal dico rigido emulato (usare '''-boot d''' per il boot dal cdrom emulato)
* '''-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 ===
 
'''Sezione da revisionare per i cambiamenti nella versione 0.8.0'''
 
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
 
[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 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 piuttosto grezzo: [http://www.itaca.coopsoc.it/download/sources/vde_qemu 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 [http://klingon.homelinux.net/files/amnhltm.zip qui], va installata sul Win9x GUEST.
 
==Collegamenti esterni==
*[http://ubuntuforums.org/showthread.php?t=39513 http://ubuntuforums.org/showthread.php?t=39513]
*[http://fabrice.bellard.free.fr/qemu/index.html http://fabrice.bellard.free.fr/qemu/index.html]
*[http://fabrice.bellard.free.fr/qemu/qemu-doc.html http://fabrice.bellard.free.fr/qemu/qemu-doc.html]
*[http://www.debian-administration.org/?article=40 http://www.debian-administration.org/?article=40]
*[http://oui.com.br/n/content.php?article.21 http://oui.com.br/n/content.php?article.21]
*[http://www.carlsonhome.net/computer_help_log.php http://www.carlsonhome.net/computer_help_log.php]
*[http://savannah.nongnu.org/projects/qvm86/ http://savannah.nongnu.org/projects/qvm86/]
 
==Conributi==
[[Utente:Themonkey|Themonkey]] 20:31, Ago 19, 2005 (EDT) The_monk_ey ( skype: the_monk_ey )
 
[[Utente:ianezz|ianezz]] 17:40, Nov 25, 2005 (CET) ''(per la parte di compilazione ed installazione)''
 
[[Utente:Paulox|Paulox]] 11:13, Dic 21, 2005 (EST) ''(aggiornamento alla versione 0.8.0 e riformattazione della pagina)''

Versione attuale delle 07:05, 13 apr 2021

About MaXeR

Mi chiamo Claudio, ho 22 anni e studio Informatica presso l'Università degli Studi di Verona.

Contatti

Blog
http://www.knio.it
MaXeR@fsfe.org
http://www.fsfe.org/Members/maxer/
MaXeR@persone.softwarelibero.it
http://persone.softwarelibero.org/person/MaXeR
em@il
maxer@debianizzati.org
maxer@knio.it
maxer@fsfe.org


jabber
maxer@jabber.linux.it
maxer@jabber.fsfe.org
icq
161200863


a-happy-fellow.png

Le Mie Guide

  1. La struttura della Distribuzione
  2. I repository ed il loro utilizzo
  3. Introduzione all'APT System
  4. Pulire Debian
  5. Applicare una patch ad un pacchetto Debian
  6. Apt-build: ottimizzazione dei pacchetti
  7. Apt-cdrom: aggiunta di cd/dvd nella lista dei repository
  8. Apt-file: ricerca all'interno dei pacchetti
  9. Apt-listbugs: come monitorare i bug
  10. Apt-zip: aggiornamenti senza una connessione veloce
  11. Make-jpkg: Pacchettizziamo Java
  12. Apt-Proxy: un proxy per i pacchetti Debian
  13. Debmirror: creiamo un mirror Debian
  14. Password sicure: la base della sicurezza informatica
  15. Come abilitare il completamento automatico 'avanzato'
  16. Convertire immagini .nrg in immagini .iso
  17. Gestione della banda in Apache
  18. Mrtg: monitoriamo la banda
  19. UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione
  20. Powernowd: CpuScaling per AMD
  21. Cacti per monitorare il sistema
  22. Debian_on_a_compaq_Presario_2154EA
  23. Munin
  24. Debian Fun
  25. LAMP: Linux, Apache, MySQL e PHP Collaborazione con Keltik
  26. SysV
  27. jigdo
  28. Wireless Support
  29. Apache, SSL e CaCert.Org (stub)
  30. Pacchettizzare un tema per Bootsplash
  31. Gestione di un repository con debarchiver
  32. Ssh e autenticazione tramite chiavi
  33. Dupload per l'upload dei pacchetti Debian
  34. Synaptics touchpad
  35. Montare una directory remota con sshfs
  36. Unison e la sincronizzazione di directory
  37. Pbuilder: compilazione in ambienti puliti
  38. Installazione Driver Madwifi
  39. Old:Repository Debianizzati.Org
  40. Old:Kde e mount automatico
  41. Recuperare i dati da un Hard Disk danneggiato
  42. Rileggere la tabella delle partizioni (cancellata)
  43. Java in Debian
  44. APT: Errori (non così) frequenti
  45. Controllare lo stato di un pacchetto
  46. Postgrey: filtrare lo spam con il greylisting
  47. Spostare il tasto di chiusura delle tab di Firefox 2
  48. Postfix e autenticazione su smtp remoto
  49. Tmpreaper: pulire le directory contenenti file temporanei
  50. Creare DVD Cover con GLabels
  51. Alternatives

Pagine in Lavorazione

Ho scritto anche in

Pagine Varie riportate da altre fonti

  1. Vendere Software Libero
  2. Perché il software non deve avere padroni
  3. La comunità del software libero dopo 20 anni
  4. Ricompense e Motivazione