Premier rapport :
*
Les fichiers Makefile et les sources du noyau
Dans les Makefile, le chemin vers les sources du noyau est « mal défini » pour Fedora : il devrait être :
KERNEL_SOURCES=/lib/modules/$(shell uname -r)/source
(plus « générique » à mon goût), au lieu de
KERNEL_SOURCES=/usr/src/linux
Pour arranger ça (dans le répertoire contenant les sources du pilote) :
$ find . -type f -iname "makefile" -exec sed -i 's|KERNEL_SOURCES=.*|KERNEL_SOURCES=/lib/modules/$(shell uname -r)/source|' {} \;
*
À propos de <linux/config.h>
Cette bibliothèque a été retirée depuis les noyaux de la branche 2.6.18.
Cette bibliothèque contenait comme seule « inclusion » la bibliothèque <linux/autoconf.h> ; il faut donc substituer « #include <linux/autoconf.h> » à « #include <linux/config.h> » dans les sources.
Pour arranger ça (toujours dans le répertoire contenant les sources du pilote) :
$ find . -type f \( -iname "*.h" -o -iname "*.c" \) -exec sed -i 's|#include <linux/config.h>|#include <linux/autoconf.h>|' {} \;
(pas de lien symbolique, c'est pas cool :-D).
*
À propos de la macro MODULE_PARM
Cette macro est dépreciée depuis un sacré moment (je ne me rappelle plus depuis quelle version, 2.6.18 aussi je crois).
Il faut lui substituer, selon le type du paramètre passé :
- la fonction module_param_string() s'il s'agit d'une chaîne :
module_param_string(<chaîne>, <chaîne>, <taille chaîne>, 0)
au lieu de :
MODULE_PARM(<chaîne>, "s")
- la fonction module_param() sinon :
module_param_string(<paramètre>, <type paramètre>, 0)
au lieu de :
MODULE_PARM(<chaîne>, <indicateur type>)
*
sans compter d'autres joyeusetés que gcc 4 ne digère guère....
À suivre...