Compilations Linux 2.6.33 GNU/Debian Linux, un peu d'aide s'il vous plait

Le
tatane
Bonjour, tout d'abord merci de prendre le temps de lire mon message.

Je possède plusieurs ordinateur chez moi, pour avoir le fonctionnement
correct du matériel de ces machines je dois passer sur des versions
plus récentes de Linux.

Je compile les noyaux avec la machine la plus rapide pour une obtenir
deux versions de kernel 2.6.33.

Toute mes stations sont sous GNU/Debian Linux (i386) Lenny.
J'ai récupéré le .config comme référence du noyau GNU/Debian SID =
de /
boot/config-2.6.32-trunk-686 vers mon répertoire Linux.

Le premier de mes problèmes est le suivant, la compilation s'avère
être un échec :

lguest.c:21:25: error: sys/eventfd.h: Aucun fichier ou répertoire de
ce type

lguest.c: In function ‘create_thread’:

lguest.c:1027: warning: implicit declaration of function ‘eventfd’

make[1]: *** [lguest] Erreur 1


Je google/Linux un peu est je trouve ça :

http://forum.debian-fr.org/viewtopic.php?f=3&t=24164

Je ne comprends pas tout dans le message car je le trouve pas très
clair .. De plus, ça fait bricolage J'ai désactivé « Processe=
ur
type and features/Paravirtualized guest support », mais ça n'y fait
rien de plus. Comment je peux faire simplement ??

Merci de votre aide, j'ai besoin de ces kernels pour activer l'entrée
audio analogique de mes stations afin de brancher des micros pour
faire de la voip (Mumble) et de la téléphonie.

Pour un autre kernel, je dois activer le temps réel j'ai donc pacthé
les sources avec la version qui lui est relative j'ai ce message :


CHK include/linux/version.h

CHK include/generated/utsrelease.h

CALL scripts/checksyscalls.sh

CC [M] drivers/staging/comedi/drivers/quatech_daqp_cs.o

drivers/staging/comedi/drivers/quatech_daqp_cs.c:70: error: field
‘eos’ has incomplete type

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
‘daqp_interrupt’:

drivers/staging/comedi/drivers/quatech_daqp_cs.c:291: error: implicit
declaration of function ‘up’

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
‘daqp_ai_insn_read’:

drivers/staging/comedi/drivers/quatech_daqp_cs.c:405: error: implicit
declaration of function ‘sema_init’

drivers/staging/comedi/drivers/quatech_daqp_cs.c:418: error: implicit
declaration of function ‘down_interruptible’

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
‘daqp_cs_attach’:

drivers/staging/comedi/drivers/quatech_daqp_cs.c:1045: warning:
assignment from incompatible pointer type

make[5]: *** [drivers/staging/comedi/drivers/quatech_daqp_cs.o] Erreur
1

make[4]: *** [drivers/staging/comedi/drivers] Erreur 2

make[3]: *** [drivers/staging/comedi] Erreur 2

make[2]: *** [drivers/staging] Erreur 2

make[1]: *** [drivers] Erreur 2




Moi ça ne me cause pas du tout

Une dernière question, lorsque je souhaite compiler juste un module du
noyau je fais comment ?

Je dois faire ça pour inverser l'image de ma caméra sur mon N10J Asus.

Si je suis cette procédure ça ne fonctionne pas, échec de
compilation :

http://forum.notebookreview.com/showthread.php?t=315810 ->

cd /usr/src/linux-`uname -r`
wget -O ./drivers/media/video/uvc/uvc_video.c http://allurgroceries.com/n10=
/uvc_video.c
rm drivers/media/video/uvc/*.o
make drivers/media/video/uvc/uvcvideo.ko
sudo install -m 644 drivers/media/video/uvc/uvcvideo.ko /lib/modules/
`uname -r`/kernel/drivers/media/video/uvc/
sudo modprobe -r uvcvideo
sudo modprobe uvcvideo

Y pas une erreur là dedans ? Ici : make drivers/media/video/uvc/
uvcvideo.ko

Merci pour votre aide éventuelle.

Cordialement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tatane
Le #21372991
Voilà, je me réponds pour ma première question, j'explique comment
compiler un kernel linux 2.6.33 avec GNU/Debian linux i386 Lenny
Je tiens à vous prévenir que si vous avez un GPU de type Nvidia le
pilote propriétaire ne se compilera pas pour une version :

NVIDIA-Linux-x86-190.53-pkg1 (pour moi un chip GT220)

L'application renvoie un message d'erreur :


ERROR: Unable to determine the version of the kernel sources located
in
'/lib/modules/2.6.33.100313/source'. Please make sure you have
installed the kernel source files for your kernel and that they
are
properly configured; on Red Hat Linux systems, for example, be
sure you
have the 'kernel-source' or 'kernel-devel' RPM installed. If
you know
the correct kernel source files are installed, you may specify
the
kernel source path with the '--kernel-source-path' command line
option.

***Procédure de génération des paquets à la sauce Débianne***

Téléchargez les paquets pour que la compilation d'un noyau soit
possible en root ou avec sudo :
(mise à jour)


#apt-get update
#apt-get upgrade
#apt-get install build-essential git-core libncurses5-dev fakeroot
bzip2 wget zlib1g-dev

Installez la bonne version du kernel-package à prendre dans les dépôt s
SID (kernel-package_12.033_all.deb)

#wget http://ftp.de.debian.org/debian/pool/main/k/kernel-package/kernel-pac kage_12.033_all.deb

Installez le paquet fraichement téléchargé :

#dpkg -i kernel-package_12.033_all.deb
#apt-get clean
#rm kernel-package_12.033_all.deb

Sortez du mode root si vous avez utilisé su (Ctrl-d)


Téléchargez un kernel, pour mon exemple j'ai pris un 2.6.33 :
(Je travaille sur mon bureau dans cet exemple cd ~/Desktop)

:~/Desktop$ wget http://www.kernel.org/pub/linux/kernel/v 2.6/linux-2.6.33.tar.bz2


Décompressez l'archive dans répertoire personnel ou sur le bureau dans
mon exemple :

:~/Desktop$ bunzip2 -cd linux-2.6.33.tar.bz2 |tar
xv-

Allez dans le répertoire des sources du noyau :

:~/Desktop$ cd linux-2.6.33/

La compilation echoue car le fichier Documentation/lguest/lguest.c à
une mauvaise indication d'entête (#include
Après plusieurs essais, j'ai remarqué que cette entête ne sert pas !
Donc il suffit de supprimer cette ligne dans le fichier Documentation/
lguest/lguest.c (ligne 21)


Téléchargez une version de configuration de noyau correspondant à
votre architecture matériel (prenez la version qui vous convient):

Pour ma part une version 2.6.33 :

:~/Desktop/linux-2.6.33$ wget
http://merkel.debian.org/~jurij/2.6.33-1~experimental.3/i386/config-2.6.33- 2-686.gz

Décompressez l'archive du fichier que vous venez de télécharger :

:~/Desktop/linux-2.6.33$ gzip -d
config-2.6.33-2-686.gz

Copiez le fichier de configuration avec le nom adéquate :

:~/Desktop/linux-2.6.33$ cp
config-2.6.33-2-686 .config -vi
cd ..
Ensuite on passe à la phase de compilation et de personnalisation des
options du kernel linux :

:~/Desktop/linux-2.6.33$ export CONCURRENCY_LEVEL=2

:~/Desktop/linux-2.6.33$ make oldconfig

Répondre à toutes les questions par entrée ... (laissez les valeurs
par défaut)

Une fois que vous avez tout validé, vous pouvez editer la
configuration et l'adapter à vos besoins pour cela :

:~/Desktop/linux-2.6.33$ make menuconfig

Une interface texte s'ouvre faite vos moditications en fonction de
votre architecture (en principe vous n'avez pas besoin de modifier les
valeurs par défauts)
Une fois les modifications effectuées, faite exit plusieurs fois
jusqu'a ce que l'on vous demande d'enregistrer le fichier de
configuration (répondez par Yes)

Ensuite on peut passer à la compilation d'un paquet linux pour GNU/
Debian :


:~/Desktop/linux-2.6.33$ time make-kpkg --rootcmd
fakeroot --initrd --append-to-version=.`date +%y%m%d` --
revision=2.6.33 kernel-image
Cette opération est très longue et le temps de compilation dépend de
votre machine qui va créer la compilation ... (1/2 heure sur une
machine récente)

Ensuite si vous avez besoin de compiler des modules suplémentaires,
vous aurez besoin du kernel header spécifique pour cela faite :

:~/Desktop/linux-2.6.33$ time make-kpkg --rootcmd
fakeroot --initrd --append-to-version=.`date +%y%m%d` --
revision=2.6.33 kernel-header

:~/Desktop/linux-2.6.33$ cd ..

Ensuite il faut installer les deux paquets (passer en utilsateur
root) :
debian-acer:/home/tatane/Desktop# dpkg -i linux-
headers-2.6.33.100313_2.6.33_i386.deb linux-
image-2.6.33.100313_2.6.33_i386.deb

Puis pour que le système boot ils vous faut le fichier initrd
correspondant pour ça faite :

debian-acer:/home/tatane/Desktop#update-initramfs -c -k
'2.6.33.100313'

Est pour finir mettre à jour Grub :

debian-acer:/home/tatane/Desktop# update-grub

Il faut donner le bon chemin vers linux sources :

debian-acer:/home/tatane/Desktop# rm /lib/modules/2.6.33.100313/build
et
debian-acer:/home/tatane/Desktop# rm /lib/modules/2.6.33.100313/source

puis créer un lien symbolique vers les headers :

debian-acer:/home/tatane/Desktop# ln -s /usr/src/linux-
headers-2.6.33.100313 linux



Il ne vous reste plus qu'a redemmarer votre ordinateur.

Voilà j'espère que cela vous servira .... Bien à vous !

(n'oubiez pas d'effacer les sources de linux sur votre bureau :) )
tatane
Le #21372981
bonsoir,

Pour ma dernière question, pour compiler juste un module il suffit de
lancer la commande make modules (dans la messure où les autres sont
déjà crées) Dans mon cas c'était juste l'application d'un patch pou r
inverser l'image de la caméra embarquée sur mon ordinateur portable.

Cordialement.
Publicité
Poster une réponse
Anonyme