Tag Archives: linux

Minbif, la messagerie instantanée facile.

Utilisant de nombreux protocoles différents, Jabber, AIM, MSN, pour ne citer qu’eux, j’ai toujours souhaité utiliser un  client multi-protocole.

J’ai essayé de nombreuses solutions,

Tout d’abord il y eut GAIM, client multiprotocole en C/GTK+, on se plaindra surtout à l’époque de son manque de fonctionnalité pour chaque protocole.

Avec l’essort du protocol jabber, vit le jour des passerelles vers les autres protocoles, certaines efficaces, d’autre non, je retiendrais surtout avoir été victime de beaucoup de problèmes techniques au niveau du serveur pour quelque chose d’utilisable.

Un fork de gaim vit le jour, bitlbee, proposant quelque chose d’intéressant, une passerelle IRC vers les protocoles utilisé par GAIM. Cependant le projet ne mergera pas les sources de GAIM régulièrement, il restera assez pauvre au niveau des fonctionnalités, bien que pratique !

GAIM se renomma ensuite en pidgin, Pidgin est une interface graphique utilisant la libpurple pour se connecter aux différents IM.

Puis vint Minbif, reprenant la même idée que bitlbee, celui-ci utilise cependant la libpurple, permettant d’utiliser tous les plugins que nous souhaitons (notamment msn-pecan pour un meilleur support de MSN, et netsoul-purple pour notre protocole favoris à l’école). Minbif permet donc d’utiliser toute la libpurple au travers d’une passerelle IRC.

Bien que encore en développement, Minbif est désormais mon client de Messagerie Instantanée fêtiche ! N’hésitez pas à l’essayer et à faire des rapports de bugs !

La virtualisation avec KVM sous debian

On a toujours besoin de tester ses configurations sur une machine qui n’est pas en prod, il y a encore peu, je testais tout sur du matériel de récupération que j’accumulais chez moi. Mais il arrive un moment dans la vie où il faut se débarasser de tout ce vieux matériel (une petite amie, un déménagement, ou je ne sais quoi :) ). Bref, des machines ça prend de la place, et j’essaie désormais d’en avoir le moins possible.

Pour notre plus grand bonheur, Intel et AMD ont implémenté dans les derniers processeurs des technologies de virtualisation ! On voit alors fleurir sur le net, de multiples applications opensource (ou pas) utilisant ces technologies, comme par exemple, KVM, Xen.

J’ai choisi d’utiliser KVM et non Xen, en effet, ce dernier n’est pas compatible avec les dernières versions du kernel linux, ce qui est un peu génant pour moi, en effet, ma carte mère n’est pas pleinement supportée avec un 2.6.18.

On commence d’abord par installer kvm et son module kernel, sous debian, pour les autres je vous laisse chercher :

1
2
3
4
 # apt-get install kvm
 # module-assistant
 # modprobe kvm
 # modprobe kvm-intel ( ou kvm-amd )

N’oubliez pas de vérifier que votre processeur est compatible avec la virtualisation, et que cette option est activée dans le BIOS :) Il devient alors assez simple de créer une machine virtuelle. On créer tout d’abord le fichier qui va la contenir :

1
 $ kvm-img create file.qcow2 -f qcow2 5G

Ceci créera une image de 5 gigas. Vous souhaitez alors installer une debian (par exemple) sur ce disque virtuel, il suffira de donner en paramètre l’image iso du CD de cette façon :

1
2
$ kvm -m 512 -cdrom debian-40r3-i386-businesscard.iso \
-boot d -hda file.qcow2

Vous procédez alors à une installation classique d’une debian :)

Tout ça est bien joli, ou presque, mais vous ne pouvez pas accéder à votre machine virtuelle depuis le réseau, et inversement, ce qui n’est pas réellement pratique si vous souhaitez vous servir de votre machine virtuelle comme serveur.

En supposant qu’il y ait un serveur dhcp sur le réseau, nous allons configurer votre machine en tant que bridge, pour qu’elle puisse faire circuler le réseau vers les VMs.

1
# apt-get install bridge-utils uml-utilities

Il vous faut alors modifier votre configuration réseau dans /etc/network/interfaces:

1
2
auto lo eth0
iface lo inet loopback

commentez cette ligne:

1
2
3
4
5
6
7
8
9
10
11
12
#iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
</code
ATTENTION: vos VMs vont communiquer sur le réseau physique avec une adresse MAC virtuelle ! Celà peut ne pas fonctionner si vos switchs restreignent les adresses MAC.

On relance ensuite le réseau de cette façon :
<code>
/etc/init.d/networking restart

Si plus rien ne marche, c’est que vous devez adapter le fichier interfaces en fonction de votre réseau :)

Nous allons ensuite configurer le script de démarrage de kvm, de façon à ce qu’il associe le tunnel que nous allons créer en le lançant, avec le bridge, pour celà il faut juste modifier le fichier /etc/kvm/kvm-ifup:

1
2
3
4
5
6
7
    #!/bin/sh
   
    switch=$(ip route ls | awk '/^default / { for(i=0;i&lt;NF;i++) { if ($(i) == "dev") print $(i+1) }}')
   
    sudo /sbin/ifconfig $1 0.0.0.0 up
    sudo /usr/sbin/brctl addif ${switch} $1
    exit 0

vous pouvez ensuite lancer votre VM de cette façon :

1
2
    kvm -m 512  -net nic,vlan=0 \
    -net tap,vlan=0,ifname=`sudo tunctl -b -u $USER` file.qcow2

Lorsque vous l’aurez quitté, je vous conseille de supprimer les interfaces tap que tuncl a créé, à coup de :

1
    $ sudo tunectl -d tap0

Installation d’OpenWRT sur un ASUS WL-500GP

J’ai acquis récemment un routeur wifi ASUS WL-500GP, tout geek que je suis, je me suis empressé de le passer sous OpenWRT. Voici donc la procédure que j’ai suivi ! Inspiré notamment de la documentation officielle d’OpenWRT.

Installation par TFTP

  • Téléchargez le firmware pour Broadcom BCM947XX, pour ma part j’ai choisi un firmware xwrt afin de ne pas avoir à installer l’interface de gestion web
  • Configurez votre carte réseau en 192.168.1.2 netmask 255.255.255.0 et branchez le sur une des prises LAN
  • Retirez le cordon d’alimentation
  • Restez appuyé sur le bouton noir “Restore”
  • Remettre le cordon d’alimentation
  • Attendre que la LED POWER clignote pour pouvoir arrêter d’appuyez , vous êtes alors en “diag mode”
  • On upload alors le firmware par TFTP
    1
    2
    3
    4
    5
    6
    7
    #tftp 192.168.1.1
    binary
    rexmt 1
    timeout 60
    trace
    Packet tracing on.
    tftp&gt; put openwrt-xxx-x.x-xxx.bin
  • Lorsque le transfert est terminé on attend 6 minutes (je ne sais pas vraiment à quoi ça sert mais il parait que si on attends pas assez on casse le routeur)
  • On peut alors débrancher/rebrancher le routeur pour le rebooter (celui ci ne reboot pas automatiquement après changement de firmware)
  • On accède alors au routeur par telnet, ssh, ou par l’interface web selon le firmware.
  • On active ensuite les 32MB de RAM sous telnet ou ssh (uniquement sur les versions PREMIUM, sinon celà casse votre routeur)
    1
    2
    3
    4
    nvram set sdram_init=0x0009
    nvram set sdram_ncdl=0x208
    nvram commit
    reboot

La machine

1
2
3
4
5
6
7
8
9
10
11
12
root@OpenWrt:~$ cat /proc/cpuinfo
system type             : Broadcom BCM947XX
processor               : 0
cpu model               : BCM3302 V0.6
BogoMIPS                : 263.78
wait instruction        : no
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : no
hardware watchpoint     : no
VCED exceptions         : not available
VCEI exceptions         : not available
1
2
3
root@OpenWrt:~$ cat /proc/meminfo
total:    used:    free:  shared: buffers:  cached:
Mem:  31248384 13135872 18112512        0  1323008  5079040