Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Archive for May, 2007

Niveau :      
Résumé : fbset setterm

Si vous êtes encore à l'âge de la console, si vous n'avez jamais vu de serveur X ou simplement si vous voulez faire le kéké pour épater vos amis, voici quelques trucs pour améliorer votre confort d'utilisation de la console.

Mode framebuffer

Il existe 2 façons pour le noyau d'écrire sur les terminaux. Soit à travers l'interface vga, soit à travers l'interface framebuffer. La console vga a l'avantage de fonctionner partout, d'être du pur mode texte et donc de ne quasiment jamais poser de problème d'affichage. La console framebuffer nécessite une carte vidéo plus récente (moins de 10-15 ans :-) et peut éventuellement interférer avec le serveur X (problèmes d'affichage). Par contre elle dispose de fonctionnalités plus intéressantes.

Tout d'abord, pour activer la console framebuffer si ce n'est pas le cas par défaut, il faut utiliser l'option video= du noyau au boot.

Une fois en mode framebuffer, fbset permet sur les terminaux linux de changer la résolution utilisée. On peut par exemple se retrouver avec 2 fois plus de lignes et de colonnes, c'est plus agréable à lire.

$ fbset -a 1024x768x75

Cela peut devenir indispensable pour lire des films en haute définition avec libcaca (mplayer avec l'option "-vo caca") !

Bien sûr vous pouvez utiliser un des nombreux modes prédéfinis dans /etc/fb.modes voire définir le vôtre plus finement en jouant avec les paramètres de fbset comme les fréquences de rafraîchissement.

Utilisations du framebuffer

D'autre part le framebuffer est une interface graphique, elle permet donc de mettre du graphisme dans la console. L'exemple typique est le manchot qui s'affiche pendant le boot. Bootsplash est un autre outil qui fait usage du framebuffer.

Il est aussi possible de lancer mplayer dans un coin de la console tout en restant à travailler sur celle-ci grâce à l'option "-vo fbdev" de mplayer.

Le serveur X lui-même peut utiliser le framebuffer pour faire son affichage lorsque les autres drivers ne fonctionnent pas.

Enfin, il existe un projet pour développer des applications entières pour le framebuffer, il s'agit de directFB.


continue reading...

Niveau :      
Résumé : dd, dd_rescue, par2

Note : cet article est dépassé et il est temps d'utiliser GNU ddrescue

Il arrive parfois/souvent/tous les jours (adaptez en fonctions de l'âge de votre matériel) que vous ayez à récupérer des données d'un disque abîmé. Ce peut être un CD tout comme un disque dur.

Vous vous retrouvez alors avec vos doigts et votre couteau à tenter de récupérer le peu de données dont vous disposez. Et la lecture pose souvent problème. La solution basique est alors d'utiliser dd et les options seek et skip pour récupérer ce qui est récupérable.

$ dd if=/dev/cdrom of=image.iso bs=1k
> [erreur]
> 1+0 record in
> 1+0 record out
> [blah]
$ dd if=/dev/cdrom of=image.iso bs=1k seek=1 skip=1
> [erreur]
> 4+0 record in
> 4+0 record out
> [blah]
$ dd if=/dev/cdrom of=image.iso bs=1k seek=5 skip=5
> ...

A adapter bien sûr à la quantité et à la position de vos erreurs de lecture.

Pour un fichier mpeg cela peut très bien marcher car il manque peu de données en comparaison de la taille du film. Mais c'est assez lourd de relancer dd à chaque erreur. Après quelques tentatives, on se lasse vite et on se met a sauter de gros blocs, persuadés qu'ils sont tous perdus.

C'est ici qu'intervient dd_rescue. Il fait automatiquement ce que vous faites manuellement, c'est-à-dire appeler dd sur tout le disque et répéter les appels tant qu'il y a une erreur et ne saute le problème qu'après plusieurs tests. De plus il adapte automatiquement la taille des blocs lus et écrits en fonction des erreurs pour récupérer le maximum de données. Ainsi moins de pertes.

Exemple d'utilisation :

$ dd_rescue /dev/cdrom fichier.iso

Et vous obtenez un fichier iso abîmé mais le plus complet possible. Et c'est là que vous serez content d'avoir préparé des fichier par2 pour restaurer tout ça au propre. Et tout est pour le mieux dans le meilleur des mondes.