Qemu

  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
Tux

Hjemmesiden : www.qemu.com
Skrevet til Qemu version 0.7.2

Du har lige downloadet en Linux Live CD, som du meget gerne vil afprøve på computeren. Men ak SU'en rækker ikke særligt langt og du har desværre overskredet dit budget på et overforbrug af pastaskruer og fiskepinde. Så du har ikke råd til flere brændbare CD-rom'er.

Heldigvis findes der råd for dette. Med Qemu kan du bl.a. emulere en PC. Installationen er ganske ligefrem da, du enten kan installerer den med apt-get eller smutte ind på Qemu's hjemmesiden og hente den derfra både som kildekode eller præcompilet.

Qemu med en LiveCD

I dette eksempel vil vi bruge Kanotix som eksempel. Åben op for din terminal og skriv :

qemu -boot d -cdrom /dev/cdrom
qemu : er det program som emulerer PC'en.

-boot d : fortæller Qemu, at der skal boote fra CD-rom drevet.

-cdrom /dev/cdrom : Fortæller Qemu, at den skal bruge CD-rom drevet hvor Kanotix ligger i. Man kan også henvise til en *.iso fil så man slipper for at brænde en CD-rom.

Sådan ser det ud når Qemu emulerer en PC, der kører med Kanotix som OS.

kanotixqemu

Tip : hvis du trykker ctrl+alt+f når du er inde i den virtuelle PC, så kommer den i fuldskærm. Tryk den samme tastekombination igen og vupti. Du nu er tilbage med den virtuelle PC i et vindue.

Qemu til at installere et OS på en virtuel maskine

Vi vil i dette eksempel benytte Ubuntu som prøveklud. Benyt følgende kommando til at lave en harddisk :

qemu-img create ubuntu.img 8G

qemu-img : er programmet der laver en virtuel harddisk.

create : fortæller programmet, at den skal lave en harddisk.

ubuntu.img : er navnet på harddisken.

8G : er størrelsen på harddisken, G står for gigabyte.

Indsæt din Ubuntu CD-rom og skriv :

qemu -hda /home/mads/qemu-0.7.0-i386/ubuntu/ubuntu.img -cdrom /dev/cdrom -boot d -monitor stdio -user-net

qemu : Er det program som emulerer PC'en

-hda : er stien hvor det aktuelle harddisk image ligger eller hvilken harddisk enhed der skal bruges.

-cdrom : fortæller Qemu at den skal bruge mit CD-rom drev hvor Ubuntu installations CD'en ligger i. Man kan også henvise til en *.iso fil så man slipper for at brænde en CD-rom.

-boot d : fortæller Qemu at den skal boote fra CD-rom drevet, husk at ændre den til -boot c når den ikke skal bruge installations CD-rom'en.

-monitor stdio : Muliggøre at du kan sende kommandoer til Qemu, imens din virtuelle PC kører. Det kan eksempelvis være at du vil gemme din virtuelle maskine på et bestemt punkt. Brug "help" hvis du er i tvivl, der er mange funktioner her.

-user-net : Muliggører at den deler netkortet, så man kan komme på nettet med den virtuelle maskine.

Følg installationsproceduren for Ubuntu og forhåbentlig ender det med denne brune desktop :

ubuntuqemu

Husk at det kan tage lang tid at installerer et operativsystem afhængig af din hardware du kører emulatoren på.

tip : Du kan også kører en virtuel PC hvis du dualbooter, så kan du undgå at skulle installere på en virtuel harddisk. Læs godt om snapshot funktionen, så du ikke smadre din partition med det andet OS.

tip : Under emulationen kan du bruge følgende tastekombinationer :

Ctrl-Alt-1 : Gæste operativ systemet skærmen.

Ctrl-Alt-2 : Monitor, har kan du sende kommandoer til emulatoren. Lige som "-monitor stdio"-switchen.

Ctrl-Alt-3 : Serial port, jeg vil ikke komme ind på hvad den skal benyttes til.

Lyd
Qemu kan emulerer et Soundblaster 16 kort hvis man vil have lyd fra sin virtuelle PC. Dette gøres ved at bruge "-enable-audio" switchen, eksempel :

qemu -user-net -hda windows2k.img  -boot c -monitor stdio -enable-audio

Desværre er lydkortet ikke "plug'n'play", så det skal installeres manuelt i din virtuelle maskine. Der skal lige siges at hvis du bruger "enable-audio" switchen under installationen af din virtuelle Windows maskine, så finder den selv lydkortet. Hvis du først bruger switchen senere, så skal du igennem nedestående guide for Windows.

Jeg vil gennemgå et eksempel med installation af lydkort under Windows 2000 i Qemu:

sb16installation_1_w2k

- Start din virtuelle maskine op med switchen "enable-audio". Når den er bootet færdig og du er logget ind, så gå ind i "Control panel".

sb16installation_2_w2k

Her skal du så trykke på ikonet "Add/Remove Hardware" og følgende billede dukker op.

sb16installation_3_w2k

Tryk "Next".

sb16installation_4_w2k

Vælg "Add/Troubleshoot a device" og tryk "next".

sb16installation_5_w2k

Så er det bare at vente........

sb16installation_6_w2k

Vælg "Add a new device" og tryk "next".

sb16installation_7_w2k

Så er der kaffetid igen......

sb16installation_8_w2k

Nu skulle du gerne få følgende billede. Sørg for at der er et flueben ud for "Install Sound blaster 16 or AWE 32 or compatible (WDM)" og tryk så "next".

sb16installation_9_w2k

Tillykke, du har nu installeret lydkortet på din virtuelle maskine.

Installation af lydkort under Linux i Qemu
Installation af SB16 lydkortet er faktisk endnu simpler i Linux end i Windows 2000.

1. Boot ind i din Linux maskine
2. Åben en terminal
3. Bliv "root"
4. Skriv "modprobe sb".
5. Så skulle dit lydkort være installeret

Ellers tjek om det ikke kan gøres grafisk med de "Control center" der følger med din distribution.

Compiling af Qemu med KQemu
Fordelen med at compile Qemu selv er at man kan gøre brug af KQemu modulet, hvilket forøger den virtuelle PC's hastighed væsentlig - husk dette gælder kun for x86 intel, ikke PowerPC m.m. Det skal lige siges at compile programmer ikke er for nybegynderen som lige har installeret Linux. Denne bør til at starte med benytte sig af apt-get eller hente en præ compilet version.

Før du går igang skal du sikre dig at SDL ( libsdl1.2-dev )udviklingspakker er blevet installeret.

Samtidig skal du have hentet kildekoden til kernen som bliver brugt i SimplyMEPIS, den kan hentes fra http://www.mepislovers.org

Nå lad os gå igang :

- Hent kildekoden til Qemu på hjemmeside og hent pakken med KQemu modulet.

- Hent KQemu pakken.

- Pak Qemu pakken ud og derefter pak KQemu pakken ud i det nye Qemu bibliotek.

- Åben en konsol i dette bibliotek og kør kommandoen "./configure", hvilket burde give dette :

mads@2[qemu-0.7.0]$ ./configure
Install prefix    /usr/local
BIOS directory    /usr/local/share/qemu
binary directory  /usr/local/bin
Manual directory  /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /home/mads/Desktop/qemu-0.7.0
C compiler        gcc
make              make
host CPU          i386
host big endian   no
target list       i386-user arm-user armeb-user sparc-user ppc-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu
gprof enabled     no
static build      no
SDL support       yes
SDL static link   no
mingw32 support   no
Adlib support     no
FMOD support      no
kqemu support     yes
KQEMU Linux module configuration:
kernel sources    /lib/modules/2.6.10/build
kbuild type       2.6
mads@2[qemu-0.7.0]$

- Læg mærke til at "SDL support" SKAL være "yes" ellers får du bare en sort skræm når du kører din virtuelle PC

- Læg mærke til at "kqemu support" SKAL være "yes" ellers får du ingen hastighedsforøgelse.

- skriv nu "make", Qemu kan på nuværende tidspunkt ikke compiles med GCC4. Prøv at skrive " make CC=gcc-3.3". Når den er færdig med at compile, skriv "make install som "Root".

- Nu skulle alt være installeret.

- Skriv nu "modprobe kqemu" som "SU" for at loade KQemu modulet ind i kernen.

- Nu er Qemu parat til at kører.

- Hvis Qemu skriver "Could not open '/dev/kqemu' - QEMU acceleration layer not activated", så prøv at udfører følgende kommando som root :

mknod /dev/kqemu c 250 0

og derefter

chmod 666 /dev/kqemu

Galleri af andre virtuelle PC'ere
Damn Small Linux, kørt med kommandoen "qemu -cdrom dsl-1.0.1.iso -boot d":

damnsmalllinuxqemu

Freesbie (FreeBSD), kørt med kommandoen "qemu -cdrom /dev/cdrom -boot d -user-net":
Freesbieqemu

Syllable (Qemu pakken fra deres hjemmeside), kørt med kommandoen "qemu -fda floppy.img -hda harddisk.img -boot a":
Syllableqemu

ReactOS, kørt med kommandoen "qemu -cdrom roslive.iso -boot d":
ReactOSqemu

Windows 2003, kørt med kommandoen "qemu -cdrom /dev/cdrom -hda win2k3 -boot c" :'
windows2003qemu

Windows 2000, kørt med kommandoen "qemu -hda windows2k.img -cdrom /dev/cdrom -boot c -user-net -monitor stdio":
windows2000qemu

Windows 98 SE, kørt med kommandoen "qemu -hda windows98se -cdrom /dev/cdrom -boot c -monitor stdio -user-net -no-kqemu":
windows98seqemu

Windows NT SP4, kørt med kommandoen "qemu -hda windowsnt -cdrom /dev/cdrom -boot c -monitor stdio -user-net":
windowsntsp4qemu

QNX RTOS 6.2.0, kørt med kommandoen "qemu -hda QNX -cdrom /dev/cdrom -user-net -boot c -monitor stdio":
qnxrtos620qemu

Debian 3.1, kørt med kommandoen "qemu -monitor stdio -cdrom /dev/cdrom -hda qemu-0.7.0-i386/debian -boot c" :
debian3.1qemu

Minix, kørt med kommandoen "qemu -hda B30M -boot c":
minixqemu

Mads aka Pytmand fra http://mepis.linuxkiosken.dk