Salut,
Je cherche a créer un module qui ne sera pas compile avec le noyau.
J'ai le bouquin "LINUX Pilotes de périphériques" d'Alessandro rubini & Jonathan Corbet.
J'ai suivi le premier exemple scull.c qui se compile en ligne de commande :
cc -O -DMODULE -D__KERNEL__ -c hello.c
--> Ca fonctionne bien
le second exemple utilise un Makefile ...mais là cela ne fonctionne pas...
quelqu'un pourrait il me donner un exemple reel de Makefile et qui soit indépendant de la compilation du noyau.
Un exemple complet .c + makefile serait le paradis...
Merci.
# Tu peux commencer par là
Posté par Pol' uX (site web personnel) . Évalué à 1.
J'ai plein de ressources chez moi. Je pourrais te les passer ce soir.
Je ne vois pas ce que tu veux dire par "indépendant de la compilation du noyau" !!! Si tu écrit un module de noyau ... faudra s'attendre un jour où l'autre a subir une dépendance !
Adhérer à l'April, ça vous tente ?
[^] # Re: Tu peux commencer par là
Posté par steven51 . Évalué à 1.
Et je ne serais pas contre non plus pour d'autres sources.
Ce que je veux dire par "indépendant de la compilation du noyau" c'est que je ne veux pas à avoir besoin de compiler le noyau pour installer mon module. par contre je suis d'accord qu'il faudra quand même que j'installe le source du noyau.
pour info le module que je dois écrire doit dans un premier tant tourner sur un noyau 2.4.21
Steven
[^] # Re: Tu peux commencer par là
Posté par Pol' uX (site web personnel) . Évalué à 1.
Heureusement, sinon on n'appelerai pas ca un noyau modulaire !
Adhérer à l'April, ça vous tente ?
[^] # Re: Tu peux commencer par là
Posté par steven51 . Évalué à 1.
C'est pour ça que je precise bien que je dois faire le module pour le kernel 2.4.
[^] # Re: Tu peux commencer par là
Posté par steven51 . Évalué à 1.
1 TARGET := hello
2 WARN := -W -Wall
3 INCLUDE := /usr/src/linux-2.4/include
4 CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} -I${INCLUDE}
5
6 all: hello.o
7
8 clean:
9 rm -rf *.o
evidement les chiffres sont les numeros de lignes....
je lance : make
et voici mon code d'erreur :
Makefile:9 : *** missing separator. Arrêt.
C'est tu pourquoi?
[^] # Re: Tu peux commencer par là
Posté par TheBreton . Évalué à 2.
[^] # Re: Tu peux commencer par là
Posté par steven51 . Évalué à 2.
bon j'ai d'autres erreur mais je vais chercher.....
[^] # Re: Tu peux commencer par là
Posté par Pol' uX (site web personnel) . Évalué à 0.
http://kernelnewbies.org/KernelHacking : une mine d'info !
The Linux Kernel Module Programming Guide : http://tldp.org/LDP/lkmpg/2.6/html/index.html
Sans oublier l'inévitable "make htmldocs" à lancer dans /usr/src/linux (où sont les sources ...) !
Adhérer à l'April, ça vous tente ?
# .
Posté par snt . Évalué à 1.
Et si tu veux le .c et le .h qui vont avec, va voir :
http://pastebin.com/824852
http://pastebin.com/824853
Ca compile un module qui permet de tracer les ouvertures de fichiers depuis le boot. Ca me servait a generer des listes pour readahead. "chez moi ça marche" mais je garantis rien.
[^] # Re: .
Posté par steven51 . Évalué à 1.
Est ce un module chargeable par insmod? ou bien tu as recompilé le noyau avec ton module?
[^] # Re: .
Posté par snt . Évalué à 1.
- oui le module est chargeable par insmod ( logique. c'est pas un module sinon ( il me semble ) )
- je n'avais pas recompile le noyau. par contre pour compiler le module tu as besoin des sources du noyau dans lequel tu veux inserer le module ( kernel-source pour moi. ou kernel-source-stripped ou l'equivalent pour ta distrib ).
J'avais prevu de faire un package dkms, mais j'ai eu la flemme vu que c'etait presque un module à usage unique.
[^] # Re: .
Posté par snt . Évalué à 1.
Il me semble avoir vu un Makefile gerant les 2.6 et les 2.4 dans le package dkms-kqemu du plf ( sources trouvables sur le ftp de free ). Si ca peut aider..
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.