24/11/06: aggiornamento per includere un trucchetto per chi usa qemu con Compiz attivo (nel paragrafo “Utilizzo”)
Innanzi tutto dico che questo è un attrezzo per veri nerd. Qemu è un emulatore di processore, assolutamente open source, che permette trucchetti come questo:
Dapper dentro Dapper… ma vi giuro che si possono fare anche cose un po’ meno inutili :D
Carino no? In questo caso stavo emulando un x86 per avviare una Ubuntu Dapper virtuale all’interno della mia Dapper reale :-) C’è anche la possibilità di installare un’intero OS su un singolo hard disk virtuale che consiste di un solo file, di usare la macchina ospite come server dhcp
Vi spiego in pochi semplici passi cosa fare per installare Qemu e cominciare a “giocare” da subito :-)
Installazione
Prima cosa da fare: recuperare il binario già pronto per Dapper a questo indirizzo: http://fabrice.bellard.free.fr/qemu/download.html Non link direttamente il file ma dovreste scaricare quello denominato ” Binary distribution for linux-i386″. I sorci ci sarebbero ma ve li sconsiglio perché dovreste compilare usando gcc3, mentre Dapper ha gcc4.
Una volta recuperato il binario scompattiamolo direttamente nella root directory, in modo da sparpagliare correttamente il tutto nel filesystem, non temete: andrà tutto in /usr/local. Date questi comandi:
$: cd /
$: sudo tar zxf ~/qemu-0.8.2-i386.tar.gz
Ovviamente il numero di versione potrebbe essere diverso.
Adesso Qemu è già installato e pronto per l’uso, ma se abbiamo un procio x86 possiamo sfruttare un apposito modulo per il kernel Linux, che funziona da acceleratore di Qemu, rimandando molte chiamate direttamente al processore “ospite”.
Per installare il modulo abbiamo bisogno di far finta di installare da sorgenti, per cui recuperiamoli dalla stessa pagina indicata più su per il binario. Da quella pagina prendiamo anche il “Qemu Accelerator Module”. Piccola nota di dolore: il modulo kernel purtroppo non è liberamente distribuibile ed è software proprietario perché l’autore spera di poterlo vendere, o qualcosa del genere
Posizioniamoci nella nostra directory dei sorgenti (ne avete una, si?), e operiamo così:
$: cd ~/src
$: tar zxf ../qemu-0.8.2.tar.gz
$: cd qemu-0.8.2
$: tar zxf ../../kqemu-1.3.0pre9.tar.gz
Abbiamo cioè scompattato qemu in ~/src e successivamente scomppattato kqemu dentro la directory dei sorgenti di qemu, diamo un:
$: ./configure --disable-gcc-check
Per far finta di voler compilare qemu. L’operazione è velocissima, adesso possiamo finalmente entrare nella sottodirectory kqemu e compilare il modulo:
$: cd kqemu-1.3.0pre9
$: ./configure && make && sudo make install
Adesso il modulo è installato, ma per poterlo utilizzare da semplice utente è necessario creare il file /etc/modprobe.d/kqemu con questo contenuto:
options kqemu major=0 install kqemu /sbin/modprobe --ignore-install kqemu && chmod 666 /dev/kqemu
Per avere tutta la documentazione relativa a Qemu e Kqemu e come comportarsi col modulo in dettaglio visitate la pagina della documentazione.
Utilizzo
Qemu alle prese con BeOS qualche tempo fa (su una Ubuntu Breezy, credo)
Usare Qemu è molto semplice, basta farci un po’ la mano, ecco cosa uso per lanciare un LiveCD di Dapper appena scaricato:
$: qemu -boot d -cdrom ubuntu-6.06.1-desktop-i386.iso
Potrei anche usare direttamente un CD nel mio lettore in /dev/hdd:
$: qemu -boot d -cdrom /dev/hdd
La cosa divertente è che si può perfino installare un intero OS in un disco virtuale, che è un semplice file immagine. Qemu ci mette a disposizione l’utilità qemu-img per creare le immagini disco. Ecco come farei per creare un disco da 1GB e per avviare il CD di Dapper che ho in /dev/hdd con l’intenzione di installarla su quel disco, specificando che voglio dedicare a qemu 512MB di Ram:
$: qemu-img create ImmagineDiscoQemu.img 1GB
$: qemu -boot d -cdrom /dev/hdd -hda ImmagineDiscoQemu.img -m 512
Semplice! E anche divertente, in un modo tutto nerd di intendere il divertimento :D
Nota: se usate Compiz la finestra di Qemu vi apparirà quasi trasparente, per ovviare a questo basta impostare una variabile prima di lanciare Qemu:
XLIB_SKIP_ARGB_VISUALS=1 qemu eccetera eccetera
Occhio: non esportate la variabile e non impostatela dal vostro .bashrc o simili.. altrimenti Compiz non partirà più (beh, solo gtk-window-decorator)
Segnalo che ci sono immagini di S.O. liberi già pronti disponibili qui:
http://www.oszoo.org/wiki/index.php/Category:Operating_System_Images
L’unico vero problema è che, in alcuni casi, il supporto hardware emulato è insoddisfacente. A volte conviene fare uno sporco hack come questo:
http://www.levysoft.it/archivio/2006/07/25/qualche-hack-per-vmware-player/
io con qemu faccio girare (tristemente) win2000 nella mia debian sid che ci sono un macello di file *.mdb che devo maneggiare per l’universita’.
Dimenticavo: kqemu funziona bene anche per architettura x86_64 (e virtualizza anche S.O. x86).
Dice il saggio….
perche’ compilare quando hai a disposizione apt-get?
sudo apt-get install qemu
:)
@astars: semplicemente perchè i deb di Qemu per Ubuntu non includono il modulo kqemu…
qemu-launcher e passa la paura !
vorrei aggiungere che per i possessori di processori intel core duo e superiori e pentium D 9xx e superiori (che quindi hanno supporto VT) possono provare il nuovo kvm e’ un modulo del kernel che fa quello che fa kqemu ma sfruttando le istruzioni vt quindi teoricamente + veloce
e se non sono root sulla macchina? e’ la macchina del lavoro.
vorrei incapsularci dentra una ubuntu in cui sono root cosi’ da installare programmi con apt-get. e usare sempre e solo la ubuntu qemulata.
fattibile? consigliabile?
@paolo: Fattibile? Sì, scegliendo un target di installazione interno alla tua home, e precaricando eventuali librerie condivise che fossero necessarie (non lo ricordo sinceramente). Tieni presente che, però, dovresti farti installare in /lib/modules/[versionekernel] kqemu, altrimenti il sistema emulato sarà insopportabilmente lento – quindi, magari, a che ci sei, prova a farti installare l’intero applicativo system-wide.
@paolo: Il target di installazione lo specifichi all’atto dell’esecuzione di configure, con il parametro –prefix=/path/di/installazione.
grazie GS Defender! tendo di farmi installare qemu system wide
Sono riuscito a far partire qemu ma nn kqemu infatti quando lancioun’immagine qemu mi dice:
Could not open ‘/dev/kqemu’ – QEMU acceleration layer not activated
Eppure ho seguito tutti i passi della guida.
DOve ho sbagliato?
ma quella cartella
/dev/kqemu
la devo creare io?
@disturbo residuo:
Non è una “cartella” ma un file dispositivo, e viene creata automaticamente da udev. Prova a vedere se esiste e che permessi ha
@felipe no nn c’è nessun file chiamato cosi
ma il modulo kqemu è caricato?
sudo lsmod | grep kqemu
Se non restituisce niente prova a caricarlo con
sudo modprobe kqemu
Dovrebbe creare il file automaticamente
su ubuntu non c’è bisogno di fare questo lavoro: ci pensa questo script
http://ubuntuforums.org/showthread.php?t=187413
saluti
Pingback:Creare la propria Ubuntu personalizzata con UCK « pollycoke :)
Qualcuno sa se in futuro Qemu emulera’ finalmente anche qualche scheda video?
Diverse dalla Cirrus che emula ora, intendo :-D
(quindi schede con GPU e simili)
felipe bellissima guida solo che c’è un comando in cui invece di “tar” hai scritto “taz” :D
Tra le altre cose è successo pure a me il problema di Disturboresiduo (CCCP docet ?) ossia che seguendo tutti i passi non sembrava attivarsi “l’accelerazione”… fortunatamente il comando da te suggerito “sudo modprobe kqemu” ha risolto tutto.
Ciao e grazie.
@Arcimboldo:
Grazie! Sistemato :-)
ottima guida !!!
finalmente sono riuscito a installare qul maledetto modulo (kqemu) :-)
Cmq ho eseguito questa tua guida sulla edgy e funziona ancora benissimo!!
ehmm.. mi sono dimenticato una cosa prima:
ho letto da piu’ parti che le macchine virtuali create con qemu possono essere avviate anche con vmware player.
Qualcuno ha provato? E soprattutto come fà ad avviarle vmware se non ha il file di configurazione hardware (vmx) insieme alle img del sistema operativo??
ariciao
ERROR: QEMU requires SDL or Cocoa for graphical output
Da cosa può dipendere questo errore?
@Marco B:
Fai
dpkg -l | grep -i sdl
Se non ti esce niente devi installare le SDL.
Scusate….
…ho installato qemu e provato a far partire il cd di Win2000 seguendo diverse guide, ma non sono riuscita a creare l’immagine iso din winzoz per avviare l’installazione…
Ecco il risultato del tentativo fallito…
~/win2k$ dd if=/media/cdrom of=win2k.iso
dd: lettura di `/media/cdrom’: Is a directory
entrati 0+0 record
usciti 0+0 record
0 bytes transferred in 0,006834 seconds (0 bytes/sec)
Qualche suggerimento?
Grazie mille.
@Grisù:
$ dd if=/dev/cdrom of=win2k.iso
/dev, non /media!
In ogni caso sappi che puoi usare direttamente il cdrom, senza farne un’imamgine, basta usare il parametro:
-cdrom /dev/cdrom
e qemu userà direttamente il CD nel tuo lettore :)
Grazie mille! Perfetto!
O quasi…come preannunciato in una delle guide che avevo letto win2000prof ha problemi con msgina.dll e chiede di ripristinare la DLL originale.
Il problema è che dice di prendere il file da un altro pc con WIN2000 SP2 e copiare il file su un dischetto per poi riavviare con CDROM e floppy insieme.
Qui nascono i problemi:
1. non ho il floppy
2. non ho un altro PC con win2000 SP2 per prendere il file
3. inizio a pensare che winzoz sia veramente inutile!!!
Adesso mi chiedo…
…se prendo il file msgina.dll da un pc con win2000 SP4 cambia qualcosa?
…e se lo copio sull’harddisk del pc invece che su un dischetto?
…e…se ciò fosse possibile che comandi dovrei usare?
Ancora grazie mille e … per fortuna che esiste linux!!!
Ah…dimenticavo…un’altra domanda…
ho creato un file win2k.img che, da quel che ho capito, viene usato come HD del pc emulato…durante l’installazione di win2000 è stato formattato in FAT32…
La domanda è…qualsiasi casino di winzoz, crash, danni, ecc…avvengono lì dentro, vero? Cioè, il resto del pc, o meglio dell’HD, non rischia nulla…giusto?
Grazie ancora e scusate le domande un po’ banali, ma sono un’UTENTE linux, lo uso tranquillamente, mi diverto a cercare di fare pasticci ma non è che ci capisca molto…
@Grisù 28: Da quanto dicono qui sì.
@Grisù 29: Sì, tutta la merda resta dentro l’harddisk virtuale (è la ragione principale per cui tutti noi ci divertiamo a fare bordello con le VMs) :)
@Grisù 28: Dimenticavo di dirti che puoi accedere alla partizione virtuale usando il filesystem di loopback. Ti potrei spiegare tutto qui adesso, ma ho trovato sulla wiki di ArchLinux un pezzo fatto apposta per te.
GRAZIE!!!
Fantastico…ho montato, copiato msgina.dll nuovo e ora win2000 si avvia!
E direi che va anche bene, ho solo altre due domande…
1. qemu mi si apre in una finestrella piccolina e anche se la metto a tutto schermo windows rimane piccolino….c’è modo di impostare le dimensioni della finestra qemu?
2. è possibile accedere dal pc virtuale ai file del resto dell’HD? Cioè, se dvo aprire un file con word, per esempio, devo per forza copiarlo prima dentro alla partizione virtuale o posso riuscire a far vedere il resto del PC a winzoz “emulato”?
Grazie mille in anticipo!!!
@Grisù 32:
Per la 1) non so come aiutarti, sorry. In linea teorica dovresti poter aumentare la risoluzione del sistema guest sino all’infinito tramite Proprietà – Schermo, ma sinceramente non so se sia possibile farlo out-of-the-box.
Per la 2a invece puoi impostare a Samba sul computer vero e a Winzozz lo stesso nome di dominio (e nomi di sistema smb diversi), e farli comunicare tramite l’interfaccia di rete virtuale di qemu. Maggiori lumi li trovi nella documentazione di Qemu (io per ora non ho un’installazione di Qemu pronta, perchè sto testando VirtualBox per finirne l’articolo su Wikipedia Italia [sono il fesso che ha iniziato l’articolo e messo lo screenshot, se bazzichi pure lì]).
Dimenticavo, se non hai usato mai Samba fai man smbmount.
Ecco, ho combinato un pasticcio! Visto che, grazie ai vostri consigli, tutto funzionava a dovere….ho deciso di andare oltre e tentare di installare kqemu.
Premessa: qemu l’ho fatto installare ad Aptitude e mi mette la versione 0.7.0 … forse perchè ho una ubuntu vecchia.
Allora ho recuperato i sorgenti delle vecchie versioni qemu-0.7.0.tar.gz e la sua versione di kqemu-0.6.2-1.tar.gz
Fatto questo ho seguito la guida qui sopra e…arrivata a configurare kqemu mi dà errore…che la vecchia versione non preveda ./configure???
Cmq non mi importa che kqemu non vada…il fatto è che ora non mi parte proprio più qemu! Infatti non riesce ad aprire l’immagine del disco…
…cosa devo fare per ripristinare il mio qemu originale?
Immagino che sia stata colpa del comando
./configure –disable-gcc-check
ma come posso tornare indietro?
Grazie mille….prometto che se funziona stavolta mi fermo, altrimenti iniziate ad odiarmi!!!
Sono una ciuccia! Prima non ero uscita dalla directory…poi uscendo non funzionava comunque, ma chiudentdo il terminale e riavviando il tutto…non ho più avuto problemi. Non tento più di installare kqemu e per ora mi accontento.
Grazie siete stati gentilissimi, rapidissimi e chiarissimi nelle spiegazioni!
Posizioniamoci nella nostra directory dei sorgenti (ne avete una, si?), e operiamo così:
$: cd ~/src
$: tar zxf ../qemu-0.8.2.tar.gz
$: cd qemu-0.8.2
Io mi blocco qui.
Innanzitutto non ho una directory src. Me ne sono creata una nella Home (.src per l’esattezza, così non la vedo. Va bene lo stesso?).
Inoltre quando scompatto il tar di qemu non mi crea mica una cartella qemu, quindi non posso fare cd qemu ecc…
Forse dipende dal fatto che ho scaricato la versione 0.9.0?
@PiKappa:
1) Sì, va benissimo anche nascosta. Se avessimo voluto fare i megaformalisti, avremmo potuto scegliere come base di compilazione /usr/local/src, ma va bene uguale.
2) Può darsi che la directory sia diventata qemu-0.9.0. Tu prova a fare cd qemu* e ti metti al sicuro, altrimenti fai ls e ti verrà elencata la directory. Se invece ti decomprime tutti i file nella directory corrente, puoi forzare la creazione di una directory con
tar zxf [archivio] -C [directory]
Decomprimo il file compresso ‘qemu-0.9.0-i386.tar.gz’
Viene fuori un’unica cartella ‘usr’ che contiene un’unica cartella ‘local’ che contiene due cartelle, ‘usr’ e ‘share’
L’unica cartella ‘qemu’ in tutto l’archivio è contenuta nella cartella ‘share’
Va bene quindi la cartella ‘usr/local/share/qemu’?
Ah, ecco dov’è il problema.
Tu hai scaricato qemu-0.9.0-i386.tar.gz, che è una distribuzione binaria precompilata (nella pagina da dove l’hai preso c’è scritto), mentre dovevi scaricare questo se vuoi seguire la guida di Felipe.
Doh!
Ok, grazie.
Che ci volete fare, raramente esco da Synaptic…
Comunque anche dentro ‘qemu-0.9.0.tar.gz’ non c’è alcuna cartella ”qemu*’…
:-(
Nel file che ti ho linkato c’è una directory qemu-0.9.0, che è quella che ti serve
cd qemu* ti ci fa andare comunque, se hai correttamente decompresso il file.
Sono un rinco…
Grazie.
Ci provo.
Ce l’ho fatta e ho anche avviato una iso di ubuntu!!!
Bellissimo!!!
Non riesco però a far partire il boot dal cdrom:
$ qemu -boot d -cdrom /media/hda1
Could not configure ‘/dev/rtc’ to have a 1024 Hz timer. This is not a fatal
error, but for better emulation accuracy either use a 2.6 host Linux kernel or
type ‘echo 1024 > /proc/sys/dev/rtc/max-user-freq’ as root.
qemu: could not open hard disk image ‘/media/hda1′
Ho messo hda1, perchè la partizione dove ho più spazio libero.
E’ una fat32 con dentro WinXP.
Dove sbaglio?
Attenzione: specificando
-cdrom /media/hda1
dici a QEMU che il CD-ROM si trova in /media/hda1, cosa che è alquanto improbabile, se non altro perchè /media/hda1 è una locazione mountata.
Il parametro -cdrom vuole un’immagine ISO o un device fisico, quindi credo che la tua cmdline vada modificata in
qemu -boot d -cdrom immagine.iso -hda /dev/hda
perchè mi sembra di ricordare che non si possono usare locazioni mountate, ma solo device fisici o file immagine.
scusate. ho installato tutto come da guida..
qemu e kqemu..
come faccio a disinstallare il tutto sempre usando terminale?
grazie
Dovrebbero bastare:
sudo apt-get –purge remove qemu
cd /lib/modules/$(uname -r)/misc
sudo rm kqemu.ko
Innanzitutto .. buongiorno!
ho provato a seguire la guida su edgy con kernel 2.6.17-11 e durante la compilazione tutto sembra funzionare correttamente, salvo un warning durante il make di kqemu :
WARNING: could not find /home/paul/src/qemu-0.9.0/kqemu-1.3.0pre11/.kqemu-mod.o.
Avviando qemu però vengo avvisato che:
Could not open ‘/dev/kqemu’ – QEMU acceleration layer not activated
Ed infatti provando, come suggerito da felipe,
sudo modprobe kqemu
ottengo:
FATAL: Module –ignore_install not found.
FATAL: Error running install command for kqemu
Avete qualche idea ?
Risolto. Il messaggio di warning in compilazione non era legato al fatal error in esecuzione..
Il problema stava nel contenuto del file “/etc/modprobe.d/kqemu”, che avevo copiato ed incollato dal testo di felipe senza far caso che, in questo passaggio, i “–” erano stati sotituiti da un unico differente carattere.
E dire che leggo spesso nei post che è molto comune..
Comunque ho pensato di scriverlo qualora servisse ad altri.
Ciao.
@Paul:
Grazie, in ogni caso credo di averlo sistemato. Mi confermi che la guida funziona con Qemu 0.9.0?
Eventualmente mi segnali se c’è qualcosa da cambiare/sistemare (a parte il numero di versione)? :)
@felipe
Funziona tutto perfettamente con Qemu 0.9.0 e KQemu 1.3.0pre11.
(edgy e Kernel 2.6.17-11)
Alla compilazione “fasulla” dei sorgenti di Qemu in realtà mi è stata segnalata la mancanza delle librerie sdl 1.2, che ho installato con synaptic. (forse non era necessario, dovendosi fermare al “configure”)
Felipe ho fatto come dici però l’acceleration layer non mi va:
coobox@coobox-desk:~$ qemu -boot d -cdrom /media/hda/ISO/Windows\ XP\ SP2.iso -hda /media/hda/ISO/WindowsXPSP2.img
Could not open ‘/dev/kqemu’ – QEMU acceleration layer not activated
XP Parte cmq e mi pare assai veloce
risolto scusa
@Coobox
prova a seguire le istruzioni del commento #15.
Se il messaggio restituito digitando “sudo modprobe kqemu” è qualcosa di simile a “Fatal Error” prova a controllare di aver compilato correttamente il file “/etc/modprobe.d/kqemu”. (vedi mio messaggio #49)
SI ho risolto. Ora vorrei provare KVM.
Come faccio a sapere se il mio AMD Athlon X2 3800+ supporta SVM ?
Guida p-e-r-f-e-t-t-a, funzionato tutto al primo colpo
Salve a tutti devo dire che questa guida è veramente utile. Stò installando Winzozz ma è un pò (parecchio) lento…. in konsole c’è scritto ” Could not open ‘/dev/kqemu’ – QEMU acceleration layer not activated “… che posso fare per velocizzare l’emulazione?
Grazie
ops… dimenticavo. Uso fedora core 6 :P
# modprobe kqemu
FATAL: Module kqemu not found.
è lento lento…. come faccio?
Pingback:Semi-transparent, unreadable window using Compiz (for the very first time, for the very first app) « 0.5 Hartree
skusate ho fatto nn so kome danno potete dirmi kome rimontare /dev/kqemu?
Could not open ‘/dev/kqemu’ – QEMU acceleration layer not activated
ho risolto con il punto 15 kmnq va lentissimo :| 10 anni per installare winzoz
ma si potrebbe impostare a tutto schermo la finestra di qemu?
Bella guida come sempre! Grazie mille! :)
per chi nn trova /dev/kqemu
date da root
‘mknod /dev/kqemu c 250 0’ per creare il nodo
‘chmod 666 /dev/kqemu’ per dargli i giusti permessi
io sono utente debian ma credo debba funzionare anche per voi!!
ciao
bella guida, grazie pollyNERD ^^
segnalo che io ho installato il pacchetto libsdl-dev per far andare sdl
ciao
Pingback:VMGL: piena accelerazione 3D OpenGL virtualizzata « pollycoke :)