2010/02/27

Emprisonner une debian dans un FreeBSD

Parfois on a besoin de tester des choses sous linux, parfois on a besoin d'utiliser des applications linux-only, où pour tout un tas d'autre raison on a besoin de faire tourner un linux.

Pour ça c'est vrai que l'on peut virtualiser dans un virtualbox ou un qemu, c'est bien mais c'est quand même coûteux en terme de ressources pour le host.

Sous FreeBSD nous disposons du linuxulator c'est la couche d'emulation permettant de faire tourner des applications Linux sous FreeBSD.

Ni une ni deux je me dis qu'il est possible de faire de petites choses sympathiques avec ça : une jail linux-only.

Il faut d'abord préparer le terrain :

# mkdir /home/jails/debian
# mkdir /home/jails/debian/dev
# mkdir /home/jails/debian/proc
# mkdir /home/jails/debian/sys
# kldload linux
# kldload linprocfs
# kldload linsysfs
# kldload lindev
# mount -t devfs none /home/jails/debian/dev
# mount -t linprocfs none /home/jails/debian/proc
# mount -t linsysfs none /home/jails/debian/sys

Nous allons donc utiliser /home/jails/debian comme racine de la debian que nous allons installer.

Nous chargeons tous les pilotes nécessaires (notez que lindev est apparu en FreeBSD 9 et a été MFCed en 8-STABLE il n'est absolument pas obligatoire)

On pourrait faire l'installation avec debootstrap, mais comme je suis un feignant j'ai préféré utiliser un template openvz tout fait :

# fetch http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz

Puis le depacker dans ma jail :

# tar xvfp debian-5.0-x86.tar.gz -C debian --exclude dev* --exclude proc* --exclude sys*

Pour démarrer correctement la jail il faut qu'au minimum un service tourne dans la jail (je n'ai pas réussit à faire une jail linux-only persistente). Par défaut le script de démarrage des jails essaye de lancer /etc/rc que nous allons créer et de lancer /etc/rc.shutdown pour s'arrêter.

# echo "/etc/init.d/cron start" > /home/jails/debian/etc/rc
# chmod 755 /home/jails/debian/etc/rc
# echo "/etc/init.d/cron stop" > /home/jails/debian/etc/rc.shutdown
# chmod 755 /home/jails/debian/etc/rc.shutdown

dans /etc/rc.conf on règle le lancement de la jail

jail_debian_rootdir=/home/jails/debian
jail_debian_hostname="debian"
jail_debian_ip="192.168.1.3"
jail_debian_interface="nfe0"
jail_debian_devfs_enable="YES"
jail_debian_devfs_ruleset="devfsrules_jail"
jail_debian_flags="-n debian"

on démarre la jail :

# /etc/rc.d/jail start debian

et magie :

#jls
   JID  IP Address      Hostname                      Path
    15  192.168.1.3     debian                        /home/jails/debian
#jexec debian uname -a
Linux debian 2.6.16 FreeBSD 8.0-STABLE #3: Sun Jan 10 20:39:38 CET 2010 i686 GNU/Linux
#jexec debian cat /etc/debian_version
5.0.4

Vous voila avec une belle debian emprisonnée dans un freebsd.

Attention, tout ne fonctionne pas parfaitement : sysklogd ne marche pas à cause des accès /dev par exemple, mais c'est 99% fonctionnel quand même.

2008/07/11

Tout lire en console en libre bien sûr

Je vais ici faire un récapitulatif des utilisataires qui permette de lire plein de format différent en console, je ne parle pas ici de framebuffer, le but étant de récupérer le contenu de différents types de fichiers, et éventuellement de pouvoir les traiter.

Le Format .doc MS Word

Souvent on vous envoies des documents .doc, au format MS Word donc, vous avez beau expliquer autour de vous que vous ne voulez rien dans ce format vous en recevez quand, même, une bonne solution pour pouvoir les lire / récupérer le texte contenu sans sortir l'artillerie lourd (OOo, abiword ou kword) c'est d'utiliser antiword c'est vieux, mais ça marche très très bien. (GPLv2)

Les Formats .xls ou .ppt (MS Excel ou MS Powerpoint

Tout comme les .doc, vous ne voulez pas de ces document mais on vous les envoie quand même, dans ces cas là il ne vous reste plus qu'a utiliser le bon vieux xlhtml. (GPLv2)

Les Formats HTML

Dans ce cas la il y a une pléthore d'outils, les principaux sont lynx avec l'option -dump (GPLv2) avec la même option, il y a links (GPLv2), elinks (GPLv2)

mais il y a aussi en beaucoup plus léger html2text (GPLv2)

Les formats OpenDocument

il y a odt2txt (GPLv2) pour aller lire les formats OpenDocument (Texte, Tableur Présentation) cerise sur le gâteau, il permet également d'aller lire les anciens documents .sxw (OpenOffice 1.x)

Le format .ps PostScript

le package ghostscript (GPLv2 et CPLv1) fourmit le binaire ps2ascii qui permet permet donc de récupérer le texte contenu dans le fichier postscript.

Le format .pdf Portable Document Format

poppler (GPLv2) et xpdf (GPLv2) fournissent la même gamme d'outils (normale poppler se base sur xpdf) pour manipuler les pdf, parmi tous ces outils on retrouve pdftotext.

Le format .djvu DJVU

le projet djvulibre (CPLv2) fournit tout un ensemble d'outil de manipulation de fichiers djvu en console, il offre entre autre djvutxt.

Mention spéciale pour tous les formats de document MS (Word, Excel, PPT, RTF)

catdoc fournit trois binaires : catdoc pour lire les document .doc et .rtf, xls2csv pour les excel et catppt pour les PowerPoint. Le gros plus de catdoc est la conversion possible vers latex.

Voila pour le petit point sur les outils permettant de lire/manipuler en console divers formats de documents.

Si comme moi vous lisez vos mail avec mutt, tous ces outils pourront vous être utiles, un autre outil qui pourra vous servir est demoroniser en effet si vous recevez des mails envoyés depuis outlook, ils sont souvent en html (SAYMAL) mais en html foireux en plus, demoroniser est un outil qui remettera le tout en html propre, il suffit ensuite de passer le résultat dans html2text pour pouvoir les lire correctement.

2008/07/03

OSS 3 - 0 ALSA

Voila toutes mes machines (3 os différents dessus : OpenSolaris, FreeBSD, Linux) sont enfin passées sous OSSv4, alors les linuxiens vont me rétorqué, quoi, mais il parait que OSS c'est tout pourri c'est pour ça qu'on a alsa maintenant sous linux... A cela je vais raconter une petite histoire.

Il y a très longtemps, tous les unix vivaient en paix, les applications audio pouvaient fonctionner à la recompilation près sur tous les unix libres puisque tout le monde respectait le standard Open Sound System, autrement dit OSS, mais voila, sous linux, personne n'a su coder une implémentation correcte de l'OSS.

Deplus 4front a décidé un jour de ne plus avoir de version libre de leur implémentation OSS, alors que la majeure partie des OS ont continué à développer leur implémentation OSS et à l'améliorer, sous linux on a d'abord fait des glues infâme pour palier au lacunes de l'implémentation souvenez vous de esound - aujourd"hui on a pulseaudio dans le même genre - (oui je sais ça fait un peu beaucoup plus que ça :)) puis ils ont développé ALSA, et plutôt que de faire quelque chose de portable et d'impliquer les autres Unix au moins les libres, ils ont fait un truc linux only, qui plus est, ALSA est bourré de lacunes (cf dmix par exemple).

Heureusement, 4front revient sur le devant de la scène avec la version 4 de son implémentation OSS en libre, et comme ils sont vraiment très sympa, eux ils ont pensé à tout le monde, non seulement en terme d'implémentation, mais aussi en terme de licence. Ainsi ils fournissent une version CDDL pour la amoureux de (Open)solaris, une version BSD pour les *BSD, et GPL pour Linux.

Cette version signe le retour à la possibilité de faire une application qui gère le son et qui soit portable qui marche sous tous les unix en utilisant une seule et unique API simple et éprouvée.

Cerise sur le gâteau, ossv4 est très simple à déployer sur toutes nos OS libres, la qualité de la gestion des cartes son est bien meilleur qu'avec OSSv3 ou ALSA, bref que du bonheur (utilisateur d'ALSA, pour vous OSSv4 signifie la fin du son faiblard, la fin des grésillement quand on choisit d'avoir un niveau sonore élevé, la fin de l'horrible alsamix, bref tout bénef).

Pour l'installer sur Linux, il faut avoir le support du son en module, puis prendre les packages de sa distribution, le reste se fait tout seul. Sur le site de 4front il est possible de télécharger un paquet RPM, un paquet DEB ou un paquet TAR.

Sous OpenSolaris, il faut télécharger le package directement depuis le site de 4front http://www.4front-tech.com/download.cgi choisir la version de solaris qui vous concerne, pour OpenSolaris 200805 c'est Solaris 10/11 puis pkg_add -d oss*.pkg. Un petit reboot plus tard et on a du son nickel.

Sous FreeBSD, ossv4 est directement disponible depuis les ports : audio/oss un simplement make install clean permettra de l'installer. Il faut ensuite rajouter oss_enable="YES" dans /etc/rc.conf, un reboot ou un kldunload est nécessaire si votre carte son a déjà été détecté par les drivers natifs, puis /usr/local/etc/rc.d/oss start

J'espère que le retour de OSSv4 signifiera la fin des applications ALSA-only. Je sais aussi que la réalité de ma petite histoire et de ALSA est beaucoup plus complexe que ce que j'annonce.

2008/05/21

FreeBSD 7 supporte LVM2

Depuis quelques temps déjà, FreeBSD-CURRENT supportait les disques LVM2, un pas de plus vers l'interopérabilité Linux/FreeBSD

Depuis quelques jours (février et surtout le 8 mai) , le code ajoutant le support LVM2 au framework geom a été "MFCed" c'est a dire qu'il a été porté de CURRENT vers STABLE. La prochaine version RELEASE de la branche 7 de freebsd pourra donc plus facilement cohabiter avec n'importe qu'elle installation linux utilisant LVM2

j'ai ainsi pu facilement lire les disques linux lvm2 sur mon FreeBSD

ça ce passe ici

Pages : 1