Transcyberien

vendredi 9 mars 2007

Linux Device Drivers (Third Edition)

Comme la mise en forme du livre Linux Kernel in a Nutshell que j'ai pu effectuer semble plaire à certains et comme je viens d'apprendre qu'un autre livre, également publié aux éditions O'Reilly, était mis à disposition par ses auteurs sous licence Creative Commons Attribution-ShareAlike 2.0, je me suis dit que j'allais réitérer ma modification. Comme il est écrit dans le titre, il s'agit de la troisième version de Linux Device Drivers (dont les fichiers pdf sources sont disponibles sur le site lwn.net). Ce livre est "contemporain" à la version 2.6.10 du noyau Linux et permettra aux personnes qui le souhaitent de développer leurs propres drivers, d'en modifier certains ou bien d'apprendre comment tout cela fonctionne.

Bien évidemment, un grand merci aux trois auteurs Jonathan Corbet, Alessandro Rubini et Greg Kroah-Hartman qui diffusent librement ce livre.

samedi 13 janvier 2007

Linux Kernel in a nutshell

C'est quoi ? Il s'agit d'un livre écrit (en anglais, vous l'aurez compris) par Greg Kroah-Hartman qui est un développeur du noyau Linux. Le but de ce livre est de regrouper l'ensemble des informations pour configurer, compiler et installer son noyau Linux. C'est assez pratique d'avoir cette sorte de mode d'emploi avec  soi sous la main.

Ça coûte combien ? Ce livre est publié aux éditions O'Reilly et vous coûtera environ 25 euros. Mais l'auteur, dans un esprit de diffusion de connaissance, a décidé de publier l'ensemble de son livre sur son site. L'ensemble des fichiers pdf (format d'édition avec repère de découpage, pas spécialement agréable à la lecture) formant son livre sont donc mis à disposition sous licence Creative Commons Attribution-ShareAlike 2.5, ce qui permet de le partager mais aussi de le "remanier" à son envie. J'ai trouvé cela plutôt sympathique et j'ai décidé de redistribuer ce livre sous la forme d'un seul fichier pdf en éliminant tout repère de découpage afin d'obtenir une édition plus utilisable de ce livre "libre". Chose assez aisée à l'aide de LaTeX puisque qu'un simple fichier tex d'une trentaine de lignes a suffi à créer le résultat attendu.

Bien sûr, l'auteur indique que ce livre n'aurait pu se faire si personne ne l'avait acheté. C'est un fait mais, si je prends mon exemple, je ne pense pas que je l'aurais acheté et je trouve que le fait de le distribuer ainsi permet un plus grand partage de connaissances, ce qui est un des buts du monde libre contrairement aux productions propriétaires. Et si n'importe qui préfère l'acheter pour l'avoir dans un format plus "correct", il n'hésitera pas à l'acheter.

Merci donc à l'auteur. Et n'oubliez pas de lire, redistribuer, modifier ce fichier comme bon vous semble mais en restant en accord avec la licence. Si une erreur m'avait échappée (ordre de pages, problème de mise en page), faites-moi signe.

mardi 19 décembre 2006

noyau 2.6.19

Sorti fin novembre, il est considéré par Linus Torvalds comme l'un des meilleurs noyaux sortis (je vous laisse traduire) :

It's one of those rare "perfect" kernels. So if it doesn't happen to compile with your config (or it does compile, but then does unspeakable acts of perversion with your pet dachshund), you can rest easy knowing that it's all your own d*mn fault, and you should just fix your evil ways.

Je passe outre les nouveautés et améliorations, la plupart m'échappant totalement, mais je voulais indiquer une technique qui sera sûrement provisoire pour que certains modules hors kernel puissent être compilés sans problèmes. En effet, comme je l'indiquais dans ce commentaire, module-rebuild est très utile mais quand j'ai voulu l'utiliser, aucun des modules ne compilaient, en particulier x11-drm nécessaire pour avoir l'accélération graphique. Cela vient en fait de la disparition du fichier config.h qui se trouvait précédemment dans /usr/src/linux/include/linux/ . Pour avoir une compatibilité, il suffit de l'inclure à nouveau, c'est-à-dire créer ce fichier dans le répertoire indiqué, prendre son éditeur préféré (vim,nano,...) et y inscrire les quelques lignes suivantes :

#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
/* This file is no longer in use and kept only for backward compatibility.
 * autoconf.h is now included via -imacros on the commandline
 */

#include <linux/autoconf.h>
#endif

Voilà, reste à relancer un

module-rebuild rebuild

et ça devrait mieux marcher maintenant :-) .