• [^] # Pour les debianeux

    Posté par (site web personnel) . En réponse au journal Qemu 0.7.2. Évalué à 8.

    J'ai trouvé ici ou là des bouts de documentation mais il m'a manqué assez souvent un petit bout. Le réseau qui ne marche pas à cause d'un problème de pare-feu, le script ifup n'est pas installé...

    J'ai donc décidé d'écrire bêtement ma procédure et je vous la partage. Ca date de début juillet mais pas grand chose n'est à modifier...

    Je suis sous GNU/Linux Debian Sarge. A part les quelques commandes sur les paquetages Debian, le reste doit-être quasiment identique sous une autre distribution.

    ----------------------------
    --- Installation de qemu ---
    ----------------------------

    Récuperation de la dernière snapshot de qemu sur

    http://www.dad-answers.com/qemu/

    Par exemple, le fichier

    qemu-snapshot-2005年07月07日_23.tar.bz2

    Ce qui peux se faire avec l'uniligne

    wget http://www.dad-answers.com/qemu/qemu-snapshot-2005年07月07日_23.tar.bz2

    On extrait les fichiers de l'archive

    tar xvjf qemu-snapshot-2005年07月07日_23.tar.bz2

    Récuperation de kqemu sur

    http://fabrice.bellard.free.fr/qemu/download.html

    par exemple le fichier

    kqemu-0.6.2-1.tar.gz

    Ce qui peux se faire avec l'uniligne

    wget http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz

    On extrait les fichiers dans le dossier qemu-snapshot-2005年07月07日_23

    cd qemu-snapshot-2005年07月07日_23
    tar xvzf ../kqemu-0.6.2-1.tar.gz

    Récuperation des en-tête du noyau (2.4) ou des sources du noyau (2.6). On met le lien à jour vers linux et on change les droits pour qu'un utilisateur lambda puisse modifier les sources !

    sux
    aptitude install kernel-headers-2.4.27-2-686
    cd /usr/src
    rm -f linux
    ln -s kernel-headers-2.4.27-2-686 linux
    chmod -R ugo+rwX kernel-headers-2.4.27-2-686
    chmod -R ugo+rwX kernel-headers-2.4.27-2

    On installe les paquets qui manque généralement et on vire le paquet qemu qui gêne.

    sux
    aptitude install libsdl1.2-dev uml-utilities texi2html sudo
    aptitude purge qemu

    On retourne en utilisateur lambda dans son dossier qemu

    cd qemu-snapshot-2005年07月07日_23
    ./configure

    On doit avoir la ligne SDL et kqemu à 'yes'.

    make

    On retourne sous le compte root pour faire l'installation et bidouiller un fichier système qui manque ensuite (si on veut le réseau) et on installe de nouveau les sources propres

    sux
    make install

    echo '#!/bin/sh' > /etc/qemu-ifup
    echo 'sudo -p "Password for 0ドル:" /sbin/ifconfig 1ドル 172.20.0.1' >> /etc/qemu-ifup
    chmod a+rx /etc/qemu-ifup

    aptitude reinstall kernel-headers-2.4.27-2-686 kernel-headers-2.4.27-2

    On fait de même avec sudo. Lancer en root la commande

    sux
    grep -q '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' /etc/sudoers || echo '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' >> /etc/sudoers
    /etc/init.d/sudo start

    Activer le port forwarding dans le noyau. Mettre les bonnes règles pour faire du NAT.

    sux
    grep -q 'net/ipv4/ip_forward=1' /etc/sysctl.conf || echo 'net/ipv4/ip_forward=1' >> /etc/sysctl.conf
    sysctl -p

    /sbin/iptables -A INPUT -i tun0 -j ACCEPT
    /sbin/iptables -A OUTPUT -o tun0 -j ACCEPT
    /sbin/iptables -A FORWARD -i tun0 -j ACCEPT
    /sbin/iptables -A FORWARD -o tun0 -j ACCEPT
    /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    /sbin/iptables -A FORWARD -s 172.20.0.0/24 -i tun0 -o eth0 -p tcp -j ACCEPT

    On peux sauver les règles iptables pour un prochain reboot

    sux
    /etc/init.d/iptable save active

    On charge les modules noyaux

    sux
    modprobe kqemu
    modprobe tun

    Ou pour garder apres un reboot (noyau 2.4)

    sux
    grep -q 'kqemu' /etc/modules || echo 'kqemu' >> /etc/modules
    grep -q 'tun' /etc/modules || echo 'tun' >> /etc/modules

    Si cela marche pas, il peux manquer le périphérique kqemu. Normalement, l'installation doit avoir tout fait.

    sux
    mknod /dev/kqemu c 250 0
    chmod 666 /dev/kqemu