Compiler mon noyau

mickmick Messages postés 256 Statut Membre -  
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   -
salut,
j'ai un petit quand je veux recompiler le noyau...
je fais mes modif, j'enregistre et
/usr/src/kernels/2.6.11-1.1369_FC4-i686> make
CHK include/linux/version.h
CHK include/asm-i386/asm_offsets.h
make[1]: *** Pas de règle pour fabriquer la cible « init/main.o », nécessaire pour « init/built-in.o ». Arrêt.
make: *** [init] Erreur 2
voila, je ne sais pas pourquoi ca ne fonctionne pas...
si quelqu'un veut bien m'aider??
merci @+

16 réponses

mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Bizarre en effet. On dirait qu'il manque un fichier source dans ton noyau (init/main.c ). Tu es sûr que tes sources de noyaux sont bonnes, que tu ne l'as pas dégagé par erreur ?

Tu as bien fais un make menuconfig juste avant pour choisir quoi mettre dans ton noyau (je doute que ça change grand chose mais bon...) ?

Bonne chance
0
mickmick Messages postés 256 Statut Membre
 
comment je peux savoir si mes sources sont bien installées??
yum install kernel-sources??
je vais essayer ca ce week end
@+
0
mickmick Messages postés 256 Statut Membre
 
yum install kernel-source
nothing to do.
mais quand le fait ls /usr/src/redhat/sources
le dossier est vide...
Normal?? je vais essayer l'install manuelle...
@+
0
mickmick Messages postés 256 Statut Membre
 
je viens d'installer les sources, je tappe make et au bout d'environ 15 min voila ce qu'il me dit :
...
...
...
CC [M] drivers/crypto/padlock-generic.o
CC [M] drivers/crypto/padlock-aes.o
LD [M] drivers/crypto/padlock.o
CC [M] drivers/firmware/edd.o
CC [M] drivers/i2c/i2c-core.o
In file included from drivers/i2c/i2c-core.c:29:
include/linux/i2c.h:58: erreur: les éléments du tableau sont de type incomplet
include/linux/i2c.h:197: erreur: les éléments du tableau sont de type incomplet
drivers/i2c/i2c-core.c: In function ‘i2c_transfer’:
drivers/i2c/i2c-core.c:594: erreur: le type du paramètre formel 2 est incomplet
drivers/i2c/i2c-core.c: In function ‘i2c_master_send’:
drivers/i2c/i2c-core.c:620: erreur: le type du paramètre formel 2 est incomplet
drivers/i2c/i2c-core.c: In function ‘i2c_master_recv’:
drivers/i2c/i2c-core.c:649: erreur: le type du paramètre formel 2 est incomplet
make[2]: *** [drivers/i2c/i2c-core.o] Erreur 1
make[1]: *** [drivers/i2c] Erreur 2
make: *** [drivers] Erreur 2

voila, je ne comprend pas... merci @+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
En effet il ne parvient actuellement pas à compiler le module i2c. Il faut comprendre par là que le code de ce module est bancale donc voici des solutions, de la plus pertinente à la moins pertinente :

1 - soit tu prends un autre noyau

2 - soit tu trouves un patch (en priant pour que ca corrige le problème)

3 - soit tu vires l'i2c si tu n'en as pas besoin (ce qui consiste à le virer de ton noyau, compiler ton noyau, rajouter une entree dans ton boot loader (lilo/grub) vers ce noyau de tester, lancer /sbin/lilo (si tu utilises lilo)) et vérifier si ce noyau boote et que ton matos marche. Si ce n'est pas le cas il faut naturellement opter pour une autre solution ;)

4 - soit tu mets à jour ton gcc (en priant pour que du coup, ca compile)

Bonne chance
0
mickmick Messages postés 256 Statut Membre
 
ca sert à quoi l'i2c??
0
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Cf google. Ou encore dans ton noyau la device drivers > i2c support > help
  │ CONFIG_I2C:                                                                                     │
  │                                                                                                 │
  │ I2C (pronounce: I-square-C) is a slow serial bus protocol used in                               │
  │ many micro controller applications and developed by Philips.  SMBus,                            │
  │ or System Management Bus is a subset of the I2C protocol.  More                                 │
  │ information is contained in the directory <file:Documentation/i2c/>,                            │
  │ especially in the file called "summary" there.                                                  │
  │                                                                                                 │
  │ Both I2C and SMBus are supported here. You will need this for                                   │
  │ hardware sensors support, and also for Video For Linux support.                                 │
  │                                                                                                 │
  │ If you want I2C support, you should say Y here and also to the                                  │
  │ specific driver for your bus adapter(s) below.                                                  │
  │                                                                                                 │
  │ This I2C support can also be built as a module.  If so, the module                              │
  │ will be called i2c-core. 


  │ CONFIG_I2C_CHARDEV:                                                                             │
  │                                                                                                 │
  │ Say Y here to use i2c-* device files, usually found in the /dev                                 │
  │ directory on your system.  They make it possible to have user-space                             │
  │ programs use the I2C bus.  Information on how to do this is                                     │
  │ contained in the file <file:Documentation/i2c/dev-interface>.                                   │
  │                                                                                                 │
  │ This support is also available as a module.  If so, the module                                  │
  │ will be called i2c-dev.


Voilou. De toute façon si tu gardes une entrée dans ton lilo/grub vers l'ancien nyau, tu peux essayer de compiler un noyau de test en le dégageant et tu verras si ça marche ou pas sans. Mais bon à ta place je verifierai que s'il n'y a pas de noyau plus récent.

Bonne chance
0
mickmick Messages postés 256 Statut Membre
 
oui merci, je suis allé voir, mais j'en ai besoin aussi de celui la pour usbvision, est-ce que si je remplace les fichier défectueux (i2c.h et i2c_core.c) par d'autre venant d'autres sources ca pourrai marcher??

sinon j'ai plus q'a me trouver d'autres sources... je ne trouve pas les sources du dernier noyau...(2.6.14) et la fonction yum install sources ne fonctiionne pas
bad!!
je reessaye et je vous redit ca @+
0
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Mmmh je pense que le mieux est de télécharger des sources de noyau, en effet, quitte à ce que soit la version que tu utilises. Je ne suis pas un expert yum mais ce n'est pas plutôt kernel-sources le nom du package ?
0
mickmick Messages postés 256 Statut Membre
 
oui au fait yum install kernel-source! mais ca ne fonctionne pas non plus.... je cherche...
0
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Le message d'erreur !!!!! Sinon on ne peut pas t'aider :-)
0
mickmick Messages postés 256 Statut Membre
 
yum install kernel-source ( et ses variantes )
nothing to do

je vais essayer avec le noyau 2.6.13
0
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Moi je pense que tu peux rester en 2.6.14. En fait je pense que tu as du degager le fichier qui te manque par erreur. Backupe tes sources de kernel actuel :
mv /usr/src/kernels/2.6.14 /usr/src/kernels/2.6.14.bak
yum uninstall  kernel-source (je suppose)
yum install  kernel-source
cd /usr/src/kernel/2.6.14
make menuconfig
....

Sinon tu peux effectivement tester un autre noyau

Bonne chance
0
Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
 
Ou aller chercher le noyau officiel sur kernel.org ...
tant qu'a faire , si on le compile a la mimine...

enfin, pour bien faire faudrait connaitre les patchs ajoutés a sa distrib pour choisir en connaissance de cause! mais bonjour les jours de lecture! ;-)

Phiphi
0
mickmick Messages postés 256 Statut Membre
 
bon c'est bon j'ai réussi a compiler le noyau 2.6.13 mais y'a des erreurs :
- au démarrage il me dit un truc dans le genre : cannot allocate pci port 00000:0004 because of resource collision
-le son ne fonctionne plus,
-toujours pas mon touchpad...
voila merci pour tout @+
0
mamiemando Messages postés 34250 Date d'inscription   Statut Modérateur Dernière intervention   7 901
 
Je pense que la tu as oublié des morceaux dans ton noyau (alsa ou oss pour le son par exemple). Ce que je te suggère c'est de te calquer sur ton 2.6;14 en lançant un make menuconfig en parallèle sur les deux noyau. Tu t'inspires du 2.6.14 pour remplir le 2.6.13, tu recompiles et installes le 2.6.13, tu lilotes et tu rebootes.

Mais bon dans l'autre sens ca aurait plus facile (2.6.13->2.6.14), en copiant le .config du 2.6.13 dans les sources 2.6.14 et en faisant un make oldconfig...

Bonne chance
0