Executar Packet Tracer en Linux
En un raconet del meu disc encara tinc una partició amb un sistema de fitxers FAT32.
Pràcticament ja no depenc dels sistemes propietaris, és a dir, no necessite el windows per a res, però ara que estic acabant la carrera, encara hi ha un parell d’assignatures en les quals cal tenir windows instal·lat per a poder seguir la matèria que es dóna.
Per exemple l’any passat vaig necessitar windows per poder executar l’Informix, una base de dades propietària per a l’assignatura de Bases de Dades I. Això és una completa bogeria, tenint d’altres similars lliures, com ara MySql o PostgreSql. Diuen que en un futur això canviarà i espere que els futurs alumnes de la UOC puguen gaudir de unes bases de dades lliures que els permeta no dependre de sistemes operatius privatius per a poder cursar els seus estudis. Llibertat.
Hi ha altra assignatura en què passa el mateix: Estructura de Xarxes de Computadors. En aquesta assignatura necessitem el programa propietari Packet Tracer per a poder similar el funcionament de xarxes d’ordinadors. La veritat que el programa està bé, però té un gran problema: sols funciona en windows, la qual cosa m’obliga a acceptar una llicència que no vull acceptar.
Us vaig a dir com he pogut executar el Packet Tracer en Linux fent servir un emulador lliure anomenat qemu [*]. Però abans de res unes notes:
Anem amb allò interessant, com fer anar qemu al meu Ubuntu breezy:
Com compilar qemu
Actualització 15/09/2006: Llegiu aquest apunt per veure certes modificacions en la instal.lació del mòdul d’acceleració kqemu.
Necessitem compilar qemu per a poder executar el mòdul d’acceleració kqemu.
Creem un directori temporal on ens baixem el codi font de qemu:
$ mkdir temp
$ cd temp
$ wget http://fabrice.bellard.free.fr/qemu/qemu-0.8.0.tar.gz
$ wget http://fabrice.bellard.free.fr/qemu/kqemu-0.7.2.tar.gz
Desempaquetem el codi font de qemu:
$ tar zxvf qemu-0.8.0.tar.gz
I desempaquetem dintre de la carpeta amb el codi font de qemu els binaris del mòdul kqemu:
$ cd qemu-0.8.0
$ tar zxvf ../kqemu-0.7.2.tar.gz
Per a poder compilar el codi de qemu caldrà tenir abans un programes instal·lats, és a dir, necessitem resoldre les dependències. Amb la comanda següent hem de tenir prou:
$ sudo apt-get install build-essential linux-headers-2.6.12-10-386 libsdl1.2-dev zlib1g-dev checkinstall fakeroot
Important que el fitxer dels headers del nucli (linux-headers-2.6.12-10-386) sigui el mateix que el del nucli que estem executant. Això variarà d’un ordinador a altre. Podeu saber el nucli que esteu executant amb la comanda, per exemple aquesta és la meua:
$ cat /proc/version
Linux version 2.6.12-10-386 (buildd@terranova) (gcc version 3.4.5 20050809 (prerelease) (Ubuntu 3.4.4-6ubuntu8.1)) #1 Sat Mar 11 16:13:17 UTC 2006
Si esteu fent la instal·lació en una distribució com ara Debian, caldrà que desempaqueteu els headers del nucli:
$ cd /usr/src
$ tar jxvf linux-headers-2.6.12-10-386
Per poder compilar el paquet qemu necessitem els compiladors gcc-3.4 i g++-3.4. Com que els predeterminats de la distribució Breezy ja són els de la versió 4.0 o superior, caldrà instal·lar-los:
$ sudo apt-get install gcc-3.4 g++-3.4
Exportem les variables amb els compiladors correctes:
$ export CPP=g++-3.4
$ export CC=gcc-3.4
Ara ja podem començar la compilació pròpiament dita. Primer configurem (estem dins de la carpeta qemu-0.8.0 on hem extret el codi font de qemu, en el meu cas:
$ ./configure --prefix=/usr/local --cc=gcc-3.4 --host-cc=gcc-3.4 --kernel-path=/usr/src/linux-source-2.6.12/
Si tot ha anat correcte n’haureu obtingut una sortida com aquesta:
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/vicent/Desktop/qemu/qemu-0.8.0
C compiler gcc-3.4
Host C compiler gcc-3.4
make make
host CPU i386
host big endian no
target list i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu arm-softmmu
gprof enabled no
static build no
SDL support yes
SDL static link no
mingw32 support no
Adlib support no
CoreAudio support no
ALSA support no
DSound support no
FMOD support no
kqemu support yes
KQEMU Linux module configuration:
kernel sources /usr/src/linux-source-2.6.12/
kbuild type 2.6
El més important és que ha d’estar assenyalat com a afirmatiu el suport SDL i el del mòdul kqemu (SDL support yes i kqemu support yes).
Fem els binaris amb la comanda:
$ make
Amb el programa checkinstall anem a fer un paquet debian que serà el que instal·larem al nostre sistema. Fent-ho bonic, podem crear uns decripció del paquet:
$ echo "QEMU is a generic processor emulator" > decription-pak
I esborrem el fitxer install.sh dels binaris del mòdul kqemu perquè així no molestaran:
$ cat /dev/null > kqemu/install.sh
Instal·lem finalment el paquet amb la comanda:
$ sudo checkinstall -y --pkgname=qemu --pkgversion=0.8.0 --pkgrelease=1 --pkglicense=Restricted --pkggroup="Miscellaneous - Text Based" --pkgsource=http://fabrice.bellard.free.fr/qemu/qemu-0.8.0.tar.gz --exclude=kqemu/install.shSi tot ha anat bé, ja tenim el nostre qemu instal·lat amb suport per a l’accelerador kqemu.
Com instal·lar Windows XP en Linux
A partir d’ara ja podem instal·lar diversos sistemes operatius al nostre ordinador. Llegiu aquesta pàgina si en voleu saber més al respecte.
Anem a provar, però, a instal·lar un Windows XP que és el que necessitem per a poder executar el nostre programa Packet Tracer (o poder executar qualsevol altre, jocs, etc…).
Primer hem de carregar el mòdul accelerador, amb la comanda:
$ sudo modprobe kqemu
Li creem un dispositiu:
$ sudo mknod /dev/kqemu c 250 0
I li canviem els permisos a aquest dispositiu:
$ sudo chmod 666 /dev/kqemu
Podem comprovar si està el mòdul preparat amb la comanda
lsmod | grep kqemu
kqemu 38920 0
Si n’obteniu una sortida com aquesta és que està carregat el mòdul accelerador. Una vegada carregat el mòdul creem un disc virtual on instal·larem el windows. Ho podem fer de dues maneres. Amb el propi programa:
$ qemu-img create -f cow disc_dur.img 4G
O amb la comanda:
$ dd of=disc_dur.img bs=1024 seek=4000000 count=0
Fixeu-vos que en les dues comandes hem creat un disc dur de 4 gigues anomenat disc_dur.img. La primera comanda és indicada per als sistemes operatius tipus windows, la segona per a altres sistemes operatius, com ara els linux.
Per començar la instal·lació del sistema opreatiu al disc dur virtual que hem creat (disc_dur.img) tan sols hem d’executar la següent comanda:
$ qemu -cdrom /dev/hdc -hda disc_dur.img -boot d -net nic -net user -localtime
Fixeu-vos en la comanda:
-cdrom /dev/hdc
Li estem dient que el cdrom va a ser /dev/hdc. Dependrà del dispositiu que corresponga amb el vostre cdrom.
-hda disc_dur.img
El disc dur va a ser el que hem creat. He suposat que estem executant al mateix directori on està la imatge del disc dur, si no haurem de posar l’adreça sencera, per exemple: /home/vicent/disc_dur.img.
-boot d
Li estem dient que ha d’arrencar des del cdrom. Com és una instal·lació ho hem de fer així. Quan estiga instal·lat, aleshores caldrà canviar d per c.
-net nic -net user
Habilitem la xarxa, amb la qual cosa podrem navegar per Internet des del nostre Windows XP.
-localtime
Posem la nostra data del sistema al windows.
Una vegada instal·lat el windows, cal instal·lar el Macromedia Flash Player. Podeu baixar-vos-el navegant des del mateix windows, o fer un cdrom amb els programes necessaris.
Per exemple, per a instal·lar els programes necessaris, jo vaig fer una imatge iso amb els següents programes: install_flash_player.exe (el reproductor flash necessari per poder executar el Packet Tracer), el PacketTracer3_Setup.exe (el programa pròpiament dit), el fitxer flash.ocx (que heu d’aconseguir des de qualsevol instal·lació de windows que tingueu) i el navegador Firefox Setup 1.5.0.1.exe. La comanda necessària per fer la imatge és:
$ mkisofs -o programari.iso *.exe
Una vegada instal·lat el windows, i apagat, el reinicie posant la comanda:
$ qemu -cdrom programari.iso -hda disc_dur.img -boot c -net nic -net user -localtime
Fixeu-vos en els canvis:
-cdrom programari.iso
El cdrom va a ser la imatge que he creat al pas anterior. En arrencar windows tindré una unitat de cdrom amb els programes que he “empaquetat”, llestos per ser instal·lats.
-boot c
Li estic dient que arrenque des des disc dur, no des del cdrom, perquè la primera comanda era per a instal·lar el windows. Una vegada instal·lat, ja puc arrencar des des disc dur.
Recordeu que si en iniciar el qemu n’obteniu una sortida com aquesta:
Could not open ‘/dev/kqemu’ - QEMU acceleration layer not activated
és que no teniu carregat el mòdul accelerador, i haureu de tornar a carregar-lo, com hem dit abans.
Una vegada instal·lat el Macromedia Flash Player dins del vostre windows virtual, cal registrar el control flash.ocx. Assegureu-vos que heu desat el fitxer flash.ocx al següen directori: c:/windows/system32/Macromed/flash/, que és el directori on ha d’anar dit control.
Això ja ho sabeu. menú Inicio, Ejecutar, poseu la comanda cmd i en la finestra de comandaments poseu la següent comanda:
regsvr32 c:/windows/system32/Macromed/flash/flash.ocx
i ja està, ja podeu instal·lar normalment el Packet Tracer i executar-lo.
Ací teniu un parell de captures.
Del Windows XP executant el Packet Tracer:
O de la instal·lació de la distribució Lliurex:
Coses interessants
Amb la combinació de tecles control+alt+f s’executa el qemu a pantalla completa, és a dir, com si estiguereu executant el windows al vostre ordinador. Si torneu a prémer altra vegada les mateixes tecles es tornarà a executar qemu en una finestra del vostre linux.
Amb la combinació de tecles control+alt activeu el ratolí que hi ha dins del sistema operatiu que emula el programa qemu. Prement altra vegada les dues tecles podreu moure el ratolí del vostre linux.
Podeu muntar en el vostre linux el windows que heu instal·lat a qemu per poder copiar fitxers, per exemple, primer convertint la imatge:
$ qemu-img convert -f qcow disc_dur.img -O raw disc2.img
Nota: tardarà un poc i teniu cura amb les grandàries dels discos, eh??…
I després muntant amb la comanda:
$ sudo mount -o loop,offset=32256 disc2.img /mnt/wxp
Amb la qual cosa podreu copiar per exemple una carpeta amb la comanda:
$ sudo cp -R /mnt/wxp/fitxers/ .
I això és tot.
Enllaços amb tota la informació que necessiteu sobre qemu:
[*]Pàgina web del projecte
http://en.wikipedia.org/wiki/Qemu
Qualsevol dubte, problema o pregunta al respecte de tot açò la podeu fer lliurement a la següent adreça:
http://www.vcubells.net/index.php/arxiu/2006/04/01/307/

