Forum Linux

AuteurSujet: qemu : réseau avec un hôte linux mdk
jamaique

7 messages
Posté le 25/05/2005 à 17:45:45
Bonjour,
Et d'abord bravo pour le superbe tutoriel sur qemu.
Ca marche super.
Sous Mandrake 10.1, j'ai installé le rpm trouvé sur
http://dag.wieers.com/packages/qemu/
Ensuite j'ai installé win Me sans pb sur un disque cow de 10 Go (pour voir).
Jusque là tout va bien.

Lancement dans le répertoire où se trouve le disque virtuel par
cd ~/WinMe
qemu -hda c.img -m 128 -boot c -localtime -user-net

La machine guest accède correctement à internet
winscp permet d'aller "pêcher" les fichiers que je veux sur l'hôte
en me connectant sur l'ip 10.0.2.2
avec mon nom d'utilisateur + mot de passe linux
mais le guest n'a pas de voisinage réseau.
Ma question:
comment faire pour qu'un programme sur le guest
utilise un fichier (ou une ressource comme l'imprimante ou autre...) du host ?

Mes essais:
Depuis le guest,
un ping 10.0.2.2 marche

Mais impossible d'avoir un voisinage réseau.

J'ai essayé de lancer tuntap:
# modprobe tun
# lsmod |grep tun
tun
#

Donc le module est là.
J'ai configuré sudo pour ifconfig (et vérifié à la main que sudo
ifconfig marche)
et copié qemu-ifup dans /etc

Si je fais
$ cd ~/WinMe
$ qemu -hda c.img
j'ai la réponse "pas de device tun0"...

Un ifconfig sur le host me donne
eth0 (ma carte physique pour l'accès internet numéricable) avec une adresse ip
et lo

Un ipconfig sur mon guest me donne
une carte 0 ip = 10.0.2.15 / 255.255.255.0
une carte 1 ip = 0.0.0.0 / 0.0.0.0

Quelqu'un sait-il comment mettre en place un vrai partage de ressources entre les machines ?
Je sais, cela n'est sans dout pas fondamental, mais je suis curieux de
nature et j'aimerais trouver...

Autre chose: peut-on accéder à une clé usb depuis le guest et comment ?

Merci d'avance.
Peut-être cela vaudrait un tuto si on trouve ?
collinm

49 messages
Posté le 18/05/2005 à 16:40:07
tu dois installer le package vde (virtual private network)


vde_switch -tap tun -daemon
ifconfig tun 192.168.254.12
chmod 666 /tmp/vde.ctl


regarde ensuite si avec ifconfig tu vois le périphérique tun avec son ip

cet ip servira de passerelle pour ton guest

on veut que cette passerelle envoit les paquets à la carte réseau (eth0)

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


tu peux ensuite démarré l'install de qemu avec vde...

vdeqemu -hda hd.img

IP: 192.168.254.X
subnetmask: 255.255.255.0
gateway:192.168.254.254 (le périphérique tun)

pour ta clé usb, j'ai déjà vu une patch en pré-alpha, mais c'était impossible de rien faire rouler encore... donc c'est pas demain la veille que ça fonctionnera

déjà que c'est pas la panacée de faire fonctionner des périphériques sur le port série, ta tu déjà réussi à le faire?
j'espère que tu utilises kqemu pour avoir de meilleur performance?
dommage que ça fonctionne pas encore avec win9x
jamaique

7 messages
Posté le 20/05/2005 à 20:55:35
Je vais essayer...
Je n'utilise pas kqemu pour la simple raison que je n'arrive pas à compiler.
Voici ce que je viens d'essayer pour la nième fois:

$ md ~/src
$ cd src
$ md qemu
$ cd qemu
$ cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/qemu co qemu
Warning: Permanently added 'savannah.gnu.org,199.232.41.3' (RSA) to the list of known hosts.
cvs checkout: Updating qemu
...
... (pas d'erreur)

Ici, j'ai chargé kqemu-0.6.2-1.tar.gz dans ~/src/qemu
Puis je l'ai décompressé sur place.
Cela a créé un sous-répertoire ~/src/qemu/kqemu
Ensuite, j'ai essayé de compiler en tant que user comme décrit dans le tuto jqemu.
Ca ne marche pas.

$ ./configure --target-list=i386-softmmu
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/nicolas/src/qemu
C compiler gcc
make make
host CPU i386
host big endian no
target list i386-softmmu
gprof enabled no
static build no
SDL support no
mingw32 support no
Adlib support no
FMOD support no
kqemu support yes

KQEMU Linux module configuration:
kernel sources /usr/src/linux
kbuild type 2.4
[nicolas@localhost qemu]$ make
gcc -Wall -O2 -g -fno-strict-aliasing -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -o dyngen dyngen.c
gcc -DQEMU_TOOL -Wall -O2 -g -fno-strict-aliasing -g -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -o qemu-img qemu-img.c block.c block-cow.c block-qcow.c aes.c block-vmdk.c block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c -lz
texi2html -monolithic -number qemu-doc.texi
make: texi2html : commande introuvable
make: *** [qemu-doc.html] Erreur 127
[nicolas@localhost qemu]$

Que se passe-t-il ?

Merci

jamaique
jamaique

7 messages
Posté le 20/05/2005 à 21:01:52
Et encore: où trouver ce package vde?
Existe-t-il en rpm?
En tout cas, je ne le trouve pas sur mes serveurs urpmi...

jamaique
collinm

49 messages
Posté le 21/05/2005 à 16:07:54
sur google tape: virtual private network vpe rpm

pour kqemu

c'est le makefile de qemu qu'il faut exécuter... et non celui de kqemu... je sais pas lequel tu as fait...

pour ton erreur, c'est assez claire, il faut que tu installe: texi2html
jamaique

7 messages
Posté le 21/05/2005 à 17:12:11
j'avance.

j'ai trouvé vde sous forme de tar.gz sur sourceforge.
un ./config + make + make install a marché.

A propos, pour le désinstaller, ce serait make uninstall ?

pour kqemu,
j'utilise le makefile de qemu.
J'ai installé texi2html et l'erreur a disparu.

Mais j'en ai une autre:

(...)
make[1]: Leaving directory `/home/nicolas/src/qemu/x86_64-softmmu'
make -C kqemu
make[1]: Entering directory `/home/nicolas/src/qemu/kqemu'
make -C /usr/src/linux SUBDIRS=`pwd` modules
make[2]: Entering directory `/usr/src/linux-2.4.27-0.pre2.1mdk'

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make[2]: *** [modules] Erreur 1
make[2]: Leaving directory `/usr/src/linux-2.4.27-0.pre2.1mdk'
make[1]: *** [kqemu.o] Erreur 2
make[1]: Leaving directory `/home/nicolas/src/qemu/kqemu'
make: *** [all] Erreur 2
[nicolas@localhost qemu]$

Qu'est-ce que ce make config qu'il faut faire ?
et comment autoriser le support des modules.
Je croyais l'avoir...
Vais-je devoir recompiler mon kernel linux ?
jamaique

7 messages
Posté le 21/05/2005 à 17:23:51
pour vde:

voici ce que ca donne:

[root@localhost qemu]# modprobe tun
[root@localhost qemu]# vde_switch -tap tun -daemon

[nicolas@localhost qemu]$ vde_switch -tap tun -daemon
[nicolas@localhost qemu]$ ifconfig tun 192.168.254.12
[root@localhost qemu]# ifconfig tun 192.168.254.12
SIOCSIFADDR: No such device
tun: interface inconnue: No such device
[root@localhost qemu]# ifconfig tun0 192.168.254.12
SIOCSIFADDR: No such device
tun0: interface inconnue: No such device
[root@localhost qemu]#

Apparemment, il reste un problème...
Et pourtant, le lsmod me montre le module tun...
collinm

49 messages
Posté le 22/05/2005 à 04:09:58
il faudrait que tu aies un kernel 2.6... car le 2.4 date un peu
j'ai jamais testé vde et qemu sur ce kernel là
jamaique

7 messages
Posté le 22/05/2005 à 09:14:27
J'ai compris le pb: je n'avais pas le bon kernel-source:
Mon kernel est:
$ uname -sr
Linux 2.6.8.1-12mdk
et j'ai donc installé les sources correspondantes.

Du coup la compil se fait bien. (configure, make, make install)
Mais qemu ne se lance toujours pas:

[nicolas@localhost WinMe]$ qemu -hda c.img
warning: could not open /dev/net/tun: no virtual network emulation
Could not open '/dev/kqemu' - QEMU acceleration layer not activated

[nicolas@localhost WinMe]$
collinm

49 messages
Posté le 22/05/2005 à 20:16:50
pour les win9x dont winme fait partie, faut faire
qemu -hda hd.img -boot c -user-net -no-kqemu
pour que qemu démarre... kqemu supporte pas encore ces os là

mais là ton installation de qemu fonctionne pas? ou tu essaies de repartir à neuf?

j'ai déjà obtenu ton warning à cause que j'étais pas root
jamaique

7 messages
Posté le 22/05/2005 à 22:40:31
J'essaie de repartir à neuf en compilant et, même en faisant
qemu -hda c.img -no-kqemu
qemu ne démarre pas.

Le qemu qui marchait, je l'avais trouvé sur les rpms du site dag et installé par urpmi tout simplement.
Ca m'énerve de ne pas savoir compiler qemu et de le faire marcher!
J'ai fait tout comme root (configure, make et make install)
collinm

49 messages
Posté le 25/05/2005 à 17:45:45
regarde si /dev/net/tun existe

si tu l'as pas essaye:
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
modprobe tun
echo 'tun' >> /etc/modules

change les permissions
chgrp users /dev/net/tun
chmod g+w /dev/net/tun

ensuite tu dois donner une adresse:
ifconfig tun0 10.0.0.1 up

ensuite tu configures iptable
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "1" >/proc/sys/net/ipv4/ip_forward

Page valide XHTML 1 Strict