Madwifi sur ubuntu 10.04

Les drivers madwifi fournis en standard sur ubuntu sont reconnu pour poser problèmes sur certaines cartes atheros. J’avais bien quelques problèmes d’instabilité en 9.10 mais en 10.04 les problèmes de crash sont devenus quotidiens.

Le diagnostic est simple : des tonnes de lignes dans /var/log/kern.log du genre :

May 16 11:07:38 maison kernel: [1090530.044527] ath5k phy1: noise floor calibration timeout (2422MHz)
May 16 11:09:37 maison kernel: [1090648.551506] ath5k phy1: noise floor calibration failed (2412MHz)
May 16 11:09:37 maison kernel: [1090648.971514] ath5k phy1: noise floor calibration failed (2417MHz)

J’ai donc du me résoudre à installer les drivers madwifi-hal. Voici comment les installer :

Il faut bien télécharger les sources et les décompresser :
cd /tmp
wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r4126-20100324.tar.gz
tar -xzvf madwifi-hal-0.10.5.6-r4126-20100324.tar.gz

On compile et on installe :
cd madwifi-hal-0.10.5.6-r4126-20100324/
make
make install

Il faut ensuite faire en sorte que notre module soit chargé à la place de l’autre. Il faut donc éditer le fichier /etc/modprobe.d/blacklist-ath_pci.conf et commenter la ligne blacklist ath_pci et la remplacer par blacklist ath5k

Reste à redémarrer.

Slash dev

Ayant malencontreusement perdu une partition / sur un de mes serveurs. Et ayant la chance d’avoir une sauvegarde, j’ai pu faire un restore du contenu de celui ci…sauf de /dev évidement. Mais comment retrouver le contenu de ce répertoire si utile ?
Pour ce faire j’ai utilisé le mix de deux solutions:
Mon serveur était encore en redhat9 (oui je sais … ) j’ai donc du récupérer un /dev/ d’un serveur identique. Le problème c’est que les /dev ‘post’ udev, ça court pas les rues. Il a donc fallu prendre le premier /dev venu d’un livecd et le copier sur la partition montée.

# montage de la partoche
mount /dev/cciss#c#p# /mnt
# copie de dev
cp -dpR /dev/* /mnt/dev/

Ca permet au moins de booter sur le dit serveur.

Bon c’est pas tout ça mais les devices dans /dev ne sont pas forcement tous bons. J’ai donc fait un find /dev sur un autre serveur en redhat 9 (tout serveur identique post udev aurait fonctionné je pense) et il a fallu ensuite lancer un MAKEDEV sur chacun de ces devices. C’est très long car avant udev tous les devices étaient créés, mais ça fonctionne….

/dev/MAKEDEV device

32000 is the number of the beast !

Au boulot nous automatisons, a partir des inscriptions de étudiants, la création de leur compte informatique ainsi que de leur boite mail. Celle ci est créé sur cyrus imap.
Cette semaine un collègue vient me voir et me dit, je ne comprend pas, j’ai un retour positif sur la création de la boite mais en fait elle n’est pas créée. Je jette un oeil sur les logs et là je vois un joli « Too many links ». Une rapide recherche sur google m’en apprends une bien bonne….
Cyrus a trois méthodes pour enregistrer ses comptes de messagerie; ou du moins pour stocker les messages dans ces comptes. Il s’agit de différentes manières de traiter les arborescences de répertoires (avec hashage ou plan pour résumer). Notre méthode utilise une arborescence plane avec un répertoire pour chaque compte d’étudiant. hors nous conservons les comptes des étudiants deux ans (le basculement se fait en janvier). Donc en ce moment nous cumulons les vieux compte et les nouveaux. Ce qui fait dans notre annuaire ldap un nombre conséquent de 43000 (de tête) comptes. Hors la limite physique du nombre de répertoire dans un autre sur ext3 (et bon nombre d’autres file system) est de …. 32000 !

Installer Linux Ubuntu sur un disque USB

Devant garder mes petites jumelles durant la journée de mes vacances, je ne peux pas aller sur mon micro à l’étage. J’ai donc décidé d’installer un linux (ubuntu en l’occurence)sur mon disque USB. Cette chose semble simple au premier abord, mais s’avère beaucoup plus compliquée dans la pratique.

L’installation de linux sur le disque est très simple et ne change pas de l’installation habituelle. La seule différence se trouve à la fin de l’installation. En effet, il va falloir indiquer au système comment reconnaitre votre disque afin que la transition entre le support du Bios vers le support système se fasse sans encombre. Pour cela il va falloir recréer un fichier initrd. Lorque l’installation se termine et que l’ordinateur demande à rebooter, taper CTRL-ALt+F2 afin d’ouvrir une fenêtre shell et tapez :

chroot /target
vi /etc/mkinitrd/modules

Ajoutez les modules necessaires à la reconnaissance du disque dans le fichier en ajoutant les lignes:

sd_mod
ehci-usb
uhci-usb
ohci-usb
usb-storage

vi /etc/mkinitrd/mkinitrd.conf

Modifiez la ligne DELAY=0 par DELAY=15 afin de laisser le temps au système de detecter le disque.
mount -tproc none /proc ;(je ne sais pas pourquoi il faut remonter /proc)
mkinitrd -o /boot/initrd.img-<version>-usb

Il faut ensuite modifier grub de manière à l’autoriser à booter en utilisant l’initrd que l’on vient de créer.

vi /boot/grub/menu.lst

Ajouter les lignes suivantes :

title Ubuntu Hoary (5.04 USB)
kernel (hd0,1)/boot/vmlinuz-2.6.10-5-386 ro root=/dev/sda1
initrd (hd0,1)/boot/initrd.img-<version>-usb

Il faut installer grub sur le secteur de boot


/sbin/grub-installer /dev/sda

Une fois ces étapes passées, j’ai eu quelques souci lors du boot, en effet j’obtenais le message d’erreur suivant :

filesystem type unknown partition type 0xde error 17 : cannot mount selected partition

Ceci était dû à l’ordre de reconnaissance de mes disques. Le disque USB etant reconnu en premier j’ai du modifier le fichier /boot/grub/devices et inverser les deux disques.