vendredi, mars 13, 2009

Utilisation du client DHCP FreeBSD sur une interface bridge

Je souhaite utiliser mon PC portable dans 2 environnements différents:
  1. À la maison, ou j'utilise l'interface Ethernet native (bge0)
  2. Au bureau, ou j'insère mon portable entre mon PC bureautique et la prise murale: Connexion au PC bureautique par câble croisé sur une carte Ethernet PCMCIA (xl0) et un câble droit entre la prise murale et sur l'interface Ethernet native (bge0). Le FreeBSD réalisant un pont entre ces deux cartes réseaux.
Et comme je ne veux pas modifier la configuration du PC à chaque fois, je souhait obtenir cette configuration «générique» dans mon /etc/rc.conf :


cloned_interfaces="bridge0"

ifconfig_bridge0="addm bge0 addm xl0 DHCP"

ifconfig_bge0="up"

ifconfig_xl0="up"
Le problème est qu'avec cette configuration, mon interface bridge0 refuse de lancer le client DHCP!
En effet, le client DHCP nécessite de recevoir un «link state events», ce que ne fait pas l'interface virtuelle bridge0.
Ce problème ce résous en utilisant le mode «synchronous client» par l'utilisation du mot clé SYNCDHCP à la place de DHCP.
Et voici au final, la configuration fonctionnelle:

cloned_interfaces="bridge0"

ifconfig_bridge0="addm bge0 addm xl0 SYNCDHCP"

ifconfig_bge0="up"

ifconfig_xl0="up"


mercredi, février 11, 2009

Problème avec pkg_delete (ou make deinstall) qui genère un Segmentation fault

Je viens de tomber sur un problème avec mon tout nouveau FreeBSD 7.1: certains ports refusent de se mettre à jour car leur désinstallation ne fonctionne pas.
En effet, pkg_delete génère un Segmentation fault (core dumped).
Heureusement que le problème est assez facile à résoudre:
  1. Éditez le fichier /var/db/pkg/nom-du-logiciel-qui-bug/+CONTENTS
  2. Recherchez la ligne qui commence par «@pkgdep» mais qui ne contiens aucun nom de paquet à la suite
  3. Supprimez cette ligne
Et voila! Ce mauvais fichier +CONTENTS ne devrais plus faire planter pkg_delete!

Vous pouvez trouver plus d'info sur ce post.