blz
Salut Tapioca et les autres...
De retour avec le réseau sous qemu (...) avec qemu-0.8.0 sous FC5.
J'ai pris le tuto de Tapioca (QEMU : installer un bridge pour un accès illimité au réseau) comme base, vu qu'il s'est bien cassé la tête, autant se servir de son expérience.
Malheureusement, ça marche pas direct chez moi. Le tuto a sans doute été fait avec une FC4 et une version antérieure de qemu et quelques petits trucs ont du changer.
Je décris ci dessous les problèmes que j'obtiens en suivant le tuto presque scrupuleusement, j'avoue qu'il y a des points que je ne comprend pas. Si quelqu'un a des idées, elles sont bienvenues. Sinon, je vais me retaper la config du bridge à la main, mais la profusion de références sur ce sujet sur la toile favorise plutôt la confusion que la précision )-:
Donc avec une FC5, j'ai installé bridge-utils et qemu à l'aide de yum :
# yum install bridge-utils
# yum install qemu
(j'ai les repos fedora et livna)
(la version de bridge-utils est la 1.0.6 et la version de qemu est la 0.8.0).
Je n'ai pas trouvé avec yum le kernel-module-qemu ??? Je ne suis pas non plus aller le chercher chez Thomas Chung. Ce kernel-module-qemu est-il toujours nécessaire ? Ou bien déjà inclu dans la FC5 ou le qemu-0.8.0 ?
Qemu tourne bien; j'ai installé un doze98SE et j'ai maintenant besoin du réseau pour transférer des fichiers. Je suis un peu perdu dans la config réseau du tuto. Ma machine à une interface réseau RJ45 eth0 en ip fixe à 192.168.0.69. Elle est sur un réseau local relié à internet par une passerelle dont l'ip est 192.168.0.1. J'ai aussi une interface wifi eth1, non configurée pour l'instant.
Pour continuer le tuto, j'ai modifier le début du script /usr/local/bin/env-qemu comme ceci :
IP_ROUTEUR=192.168.0.1
IP_HOTE=192.168.0.69
IF_HOTE=eth0
PONT=lepont
J'ai bien changer les droits des scripts, ajouter mon utilisateur au groupe qemu et ajouté la ligne
%qemu ALL=NOPASSWD:/usr/local/bin/env-qemu
à /etc/sudoers.
Maintenant, j'ai un problème avec le script env-qemu quand je le lance :
[blz@localhost ~]$ sudo env-qemu start
/usr/local/bin/env-qemu: line 26: shift: $: numeric argument required
Je ne suis vraiment pas expert en shell et je ne comprend pas cette ligne 26 du script : " shift $". Pour tester, je l'ai commentée. Ca plante alors sur la ligne 34 (même commande "shift $"), que j'ai donc commentée également. Mais je suis bien conscient que le script ne fait peut-être plus ce qu'il devrait avec ces deux lignes commentées -> ? Comment se fait-ce que ces lignes ne marchent pas ?
Bon, avec ces deux lignes commentées, j'arrive à lancer le script :
[blz@localhost ~]$ sudo env-qemu start
Utilisation de l'interface eth0
Adresse passerelle = 192.168.0.1
Adresse du pont = 192.168.0.69/24
[blz@localhost ~]$
Dans le résultat de la commande ifconfig, je vois que eth0 a perdu son IP, par contre il y a une nouvelle interface "lepont" qui a pris l'ancienne IP de eth0 (192.168.0.69). Un "brctl show" me donne aussi :
bridge name bridge id STP enabled interfaces
lepont 8000.000d6079f4c1 no eth0
Je lance qemu avec :
[blz@localhost qemu]$ qemu -m 512 -localtime -hda zin98.dsk
(Ca me donne d'ailleurs la ligne suivante que je ne comprend pas bien :
[1]+ Stopped qemu -m 512 -localtime -hda zin98.dsk
)
Enfin, qemu se lance avec le doze dedans, le rélage IP des intefaces réseau dans doze sont "automatique". Dans le doze, la commande "ipconfig" donne :
0 - Carte Ethernet :
Adresse IP . . . . . . . : 0.0.0.0
Masque de sous-réseau . .: 0.0.0.0
Passerelle par défaut . .:
1 - Carte Ethernet :
Adresse IP . . . . . . . : 10.0.2.15
Masque de sous-réseau . .: 255.255.255.0
Passerelle par défaut . .: 10.0.2.2
Voilà où j'en suis, mais je ne sais plus quoi faire -:
Avec doze sous qemu, je peux pinger 10.0.2.2 et 10.0.2.15 mais pas 192.168.0.69 pour atteindre mon reseau sur l'hôte FC5, ni 0.0.0.0.
Sur l'hôte FC5, j'ai toujours ma connection internet via la passerelle 192.168.0.1, je peux me pinguer moi même (192.168.0.69), mais rien vers 10.0.2.15. Par contre je peux pinguer 0.0.0.0, mais je ne comprend pas ce que représente cette adresse ?
Pour transférer des fichiers entre doze/qemu et FC5, je veux lancer un serveur ftp dans la FC5 et y accèder avec un client FTP genre Filezilla à partir de doze/qemu. J'y étais bien arrivé sur une FC4 et avec une version antérieure de qemu, mais la je bloque.
? Qu'en est-il de kernel-module-qemu avec FC5 ?
? Pourquoi les lignes "shift $" plantent dans mon script env-qemu ?
? Faut-il fixer les IP à la main dans doze/qemu, et si oui, à quoi ?
? Dans la config que j'avais faite à la main avec FC4 et ancien qemu, je me retrouvais avec une interface "tun0" dans la liste "ifconfig" et dans "brctl show" aussi, je crois. Là, je ne l'ai pas; c'est normal ?
Merci pour toute info. En attendant, je vais essayer de comprendre les différentes options réseau de qemu, vu que ça a l'air d'avoir pas mal changé; et refaire des ponts à la main.
tapioca
Bonjour blz,
A l'évidence, quelque chose n'a pas été reporté convenablement dans le WiKi : la version dans les tutos ancienne génération est convenable pour les commandes shift (la version WiKi n'est d'ailleurs qu'un simple portage de la version tuto).
La commande shift permet de décaler les paramètres reçus : commenter la ligne va engendrer un problème un peu plus loin.
Désolé, mais je n'ai pas les moyens de tester/valider actuellement.
tapioca
En réalité, il n'y a pas d'erreur dans la rédaction du WiKi : il semble que ce soit WiWi qui ne comprenne pas le texte
shift $(($# - 1))
et qui le restitue partiellement en
shift $
Dans un premier temps, utilise la version tuto.
blz
Ok merci Tapioca pour les "shift", avec les lignes :
shift $(($# - 1))
au lien de
shift $
,plus d'erreur, donc j'imagine que le script /usr/local/bin/env-qemu se déroule bien et fait ce qu'il faut.
Je ne connais pas cette interface wiwi, ça fait de joli choses mais si ça ne respecte pas le code... Moi je suis plutôt amateur de console, vi ou kwrite, et assez méfiant avec les éditeurs/interfaces évoluées-graphiques qui font plein de choses non désirées dont des erreurs, ça arrive souvent, mais c'est un autre débat...
Donc le script "sudo env-qemu start" se déroule bien; ensuite doze/qemu se lance aussi mais j'obtiens toujours les mêmes config IP citées précedemment pour doze/qemu et l'hôte FC5.
Le doze/qemu est en 10.0.2.x et l'hôte FC5 en 192.168.0.x
Je suis désolé, il y a quelque chose que je n'ai pas du comprendre dans ton tuto. Tu peux préciser ce qu'on doit faire pour qu'on puisse pinger (pour commencer) entre les deux, s'il te plait ? Faut-il que je mette une IP fixe du style 192.168.0.66 à doze/qemu ? Ou alors tout est bien configuré mais je ne saisi pas la subtilité :
Avec doze/qemu, je peux pinger 10.0.2.15 et 10.0.2.2 .
Avec l'hôte FC5, je peux pinger 0.0.0.0 .
Si je lance un serveur ftp dans l'hôte FC5, je pourrais l'atteindre depuis doze/qemu avec un client ftp tirant dans 10.0.2.2 ??? Je vais essayer.
Merci si tu peux m'éclairer un poil plus là dessus.
blz
Bon, en lançant Filezilla dans doze/qemu, j'arrive à me connecter au serveur vsftpd qui tourne sur l'hôte FC5 en tirant dans l'adresse 10.0.2.2 (en tout cas la phase login/pwd se passe bien). J'en conclu que la connexion a l'air de fonctionner... ?
Je n'arrive pas encore à récupérer le listing des répertoires ni à faire transiter des fichiers même avec le firewall tombé; je vais regarder dans la config de filezilla et dans celle de vsftpd; je devrais arriver à résoudre ça.
Donc apparament, avec les corrections des deux lignes "shift $" du fichier env-qemu, ton tuto marche encore avec FC5 et qemu-0.8.0 🙂.
J'ai pas bien compris si kernel-module-qemu était indispensable ou non. En tout cas je ne l'ai pas installé.
Je n'ai pas bien compris la config générale, je pense que tu aurais pu rajouter quelques lignes d'explications dans ton tuto, mais c'est facile de critiquer... Je me pencherai dessus quand j'aurais plus de temps.
Bravo
tapioca
Si ton PC émulé ne voit que les adresses 10.0.2.15 et 10.0.2.2, c'est sûrement parce que l'interface tun0 n'a pas été créée.
Comme dans le tuto, exécute les commandes une à une et vérifie le bon passage de chaque étape : après avoir lancé env-qemu start, ton pont devrait être opérationnel et l'interface tunx disponible.
Lors de démarrage du PC émulé, tu devrais voir le message "connected to host network interface: tun0", sinon, tu as sûrement un problème de droits sur l'interface tunx (relis le dernier paragraphe du tuto).
tapioca
Bonjour blz,
WiWi est particulièrement réfractaire à mes lignes de script : je n'ai pas trouvé comment les faire apparaître correctement.
kernel-module-qemu n'est pas indispensable au fonctionnement de qemu : il permet "juste" de booster l'émulation. Il semble d'ailleurs que ses dernières versions ne correspondent pas à celles du kernel officiel FC5.
La rédaction du tuto a été volontairement dépouillée pour éviter le blabla et les questions inutiles : en l'appliquant à la lettre, ça fonctionne bien.
Le minimum nécessaire à la compréhension de l'ensemble est fourni : synthétique, je te l'accorde, mais bien présent.
La compréhension des lignes de code nécessite un effort supplémentaire que tout un chacun n'est pas prêt à fournir : les volontaires pour aller plus loin peuvent toujours commencer à réfléchir à partir de ce document et me contacter si besoin est.
Atchoum
Voila, j'ai un probleme assez semblable.
Je suis le wiki a la lettre mais quand fais:
$ qemu -hda dsl.dsk -cdrom /dev/hdc -localtime -boot d -m 416
pour lancer qemu je n'ai pas le message
connected to host network interface: tun0
J'ai la version 0.8.2-1 de qemu.
Apparement qemu ne lance pas le script /etc/qemu-ifup au demarrage.
Quelqu'un a eu ce prob?
eddy33
@tapioca
hum...
c'est moi qui ai translate ton tuto de l'ancienne a la nouvelle version...
J'avais pas vu que MediaWiki avait des siennes dans les sections ce code....Facheux ce truc...
++
blz
'lut
bah, moi non plus, je ne l'ai pas ce message :
connected to host network interface: tun0
(j'utilise le "démarrage simplifié" du tuto)
mais j'ai quand même le réseau sous qemu.
ça marche pas chez toi ?
Atchoum
Non.
Je vais tout recommencer aujourd'hui, je verrai bien.
edit: Ok apres avoir tout recommencer. J'ai du faire une mauvaise manip, desole :-/