Geek, alcool et rock'n'roll

Aller au contenu | Aller au menu | Aller à la recherche

mardi 12 janvier 2010

VMware Player 3 (ou Workstation 7) et Linux 2.6.32

Il y a des problèmes avec la compilation de certains modules spécifiques à VMware. On obtient une erreur du type :

/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerEventHandler’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: (Each undeclared identifier is reported only once
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: for each function it appears in.)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerRead’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘signal_pending’
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘schedule’
make[4]: *** [/tmp/vmware-root/modules/vmnet-only/vnetUserListener.o] Erreur 1
make[3]: *** [_module_/tmp/vmware-root/modules/vmnet-only] Erreur 2

La méthode la plus simple pour le faire fonctionner, je l'ai trouvée sur un blog de geek. Je la recopie ici afin d'apporter un peu de pérennité, on sait jamais. Les deux dernières commandes sont à exécuter avec les droits root :

cd /tmp
tar xf /usr/lib/vmware/modules/source/vmnet.tar
tar xf /usr/lib/vmware/modules/source/vmci.tar

cd vmnet-only
sed -i "/vnetInt.h/ a\#include \"compat_sched.h\"" vnetUserListener.c

cd ../vmci-only/include
sed -i "/compat_page.h/ a\#include \"compat_sched.h\"" pgtbl.h

cd /tmp
tar cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
tar cf /usr/lib/vmware/modules/source/vmci.tar vmci-only

Il suffit ensuite de redémarrer vmplayer (ou vmware si c'est Workstation) et leur appli se charge de recompiler les modules si elle ne les trouve pas.

lundi 4 janvier 2010

Flex Builder 3 avec Eclipse Galileo 3.5.1 sous Linux

Un petit billet pour pointer vers les sites qui m'ont servi à résoudre ça :

(et oui, désolé, je fais du Flex, un peu...)

jeudi 24 décembre 2009

How to update the BIOS firmware on a Dell Laptop using only Debian Linux

(Yes, I know that's GNU/Linux, but my title was already too long :-) ) Translation of my last post in english. Hope it will be readable :-)

Dell publishes all BIOS firmwares as a Windows .EXE. When we try naively to execute it using Wine, Wine stops because the exe tries to flash the firmware using direct access to the hardware... which doesn't work with Wine.

The solution is to use dellBiosUpdate, which ships with the Debian package libsmbios-bin:

aptitude install libsmbios-bin

This tool needs 2 things : the bios firmware in HDR format, and the kernel module dell_rbu to do the update. For this last part, it's easy on a normal Debian (read: with a Debian kernel):

modprobe dell_rbu

For the HDR file, I tried during 2 hours... and indeed it was very easy (please replace the filename by the actual filename):

wine E6400A19.EXE -writehdrfile

Yes, Dell's .EXE knows how to write the HDR file !

Now, you can execute dellBiosUpdate :

dellBiosUpdate -f ./E6400A19.hdr -u

And reboot !

Please note that if you don't use Debian, Dell has some easy setup to update the BIOS firmware under Linux. It seems to work on RPM distributions, and also in Ubuntu. I tried to make it work with Debian, I think I successed but the repository seems to contain rather old firmwares. Maybe I'll try to help them make it work with Debian :-)

Comment mettre à jour le Bios de son portable Dell sous Debian Linux

(oui, je sais, on dit GNU/Linux, mais mon titre était déjà trop long)

(English translation)

Aujourd'hui, on continue encore un peu avec les billets geeks. Et ça me permettra de pas perdre 2 heures la prochaine fois :-)

En effet, aujourd'hui, j'ai voulu mettre à jour mon BIOS. En effet, il est possible que ce soit ça qui fasse que... bref, cette histoire sera pour plus tard.

Il faut savoir que Dell fournit ses nouveaux bios sous forme d'un exécutable Windows. Quand on l'exécute bêtement avec Wine, ça plante... car il essaie de flasher directement le Bios en accédant au matériel, et Wine n'a pas implémenté ça.

La solution consiste à passer par l'utilitaire dellBiosUpdate, qui se trouve dans le paquet Debian libsmbios-bin:

aptitude install libsmbios-bin

Cet utilitaire a besoin de deux choses : le Bios au format HDR, et le module noyau dell_rbu pour faire l'update proprement dite. Pour le module, rien de plus simple sur une Debian "normale" :

modprobe dell_rbu

Pour le fichier HDR, j'ai peiné pendant 2 heures, et en fait, c'est très simple (remplacer le nom du fichier par le nom correct):

wine E6400A19.EXE -writehdrfile

Et oui, les exécutables de flashage du Bios Dell savent écrire le HDR !

Et voilà, il ne reste plus qu'à exécuter dellBiosUpdate :

dellBiosUpdate -f ./E6400A19.hdr -u

Et à redémarrer sa machine.

Notez que si vous n'êtes pas sur Debian, Dell propose une manière facile de mettre à jour son Bios. J'ai essayé de faire marcher ça sous Debian, je pense que j'ai réussi à peu près, mais le dépôt ne semble pas à jour avec les derniers Bios. Je vais voir si je peux pas les aider à faire marcher ça pour Debian[1].

Notes

[1] Chouette, un autre projet, j'en manquais.

dimanche 22 novembre 2009

Votre vieux noyau Linux tue vos processus ?

Oui, c'est un peu ce qui est arrivé sur nos machines du boulot.

On a du vieux Redhat Enterprise Linux 4, qui vient avec un vieux noyau 2.6.9 patché jusqu'au cou[1].

Et voilà, ce bon vieux noyau contenait un mécanisme appelé l'OOM killer. Ce mécanisme permet, lorsqu'il n'y a plus de mémoire vive disponible, de tuer le "meilleur" processus afin de récupérer de la mémoire vive.

En soi, c'est plutôt louable. Mais voilà, vous vous en doutez, c'est bien la définition de "meilleur" qui pêche ! En l'occurence, c'étaient les processus serveurs. Gênant.

Notes

[1] Pour info, on en est au 2.6.31 aujourd'hui. Le 2.6.9 "original" date d'octobre 2004. De l'eau a coulé sous les ponts...

Lire la suite...

vendredi 20 novembre 2009

Rescanner le bus SCSI sous Linux 2.6

C'est tout simple :

echo “- - -” > /sys/class/scsi_host/hostH/scan

Il faut évidemment remplacer H par un numéro, généralement 0 lorsqu'on n'a qu'un bus SCSI.

Avec cette commande, on détecte donc les devices SCSI qui ont été ajoutés depuis le dernier scan du bus... utile lorsqu'on ajoute un disque dynamiquement dans une VM gérée par VMWare (ou autres (?)).

On peut vérifier la détection avec la commande dmesg :

SCSI device sdb: 20971520 512-byte hdwr sectors (10737 MB)
sdb: cache data unavailable
sdb: assuming drive cache: write through
 sdb: unknown partition table
Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0

(oui, c'est un aide-mémoire... mais qui sait, ça peut servir à d'autres ?)

Trouvé sur le site d'IBM, où se trouvent aussi d'autres commandes qui peuvent servir.

jeudi 1 octobre 2009

VMWare, linux, souris

Depuis que j'avais mis à jour ma Debian, la souris ne fonctionnait plus correctement dans mon VMWare Windows que j'utilise pour accéder aux applications spécifiques du boulot. En effet, elle n'affectait plus la VM guest, donc je n'arrivais plus à contrôler le système.

J'ai trouvé la solution sur un blog anglophone: il suffit de lancer, à la place de vmplayer :

VMWARE_USE_SHIPPED_GTK=yes vmplayer

et voilà :)