Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
tatane
Bonjour, tout d'abord merci de prendre le temps de lire mon message.

Je poss=E8de plusieurs ordinateur chez moi, pour avoir le fonctionnement
correct du mat=E9riel de ces machines je dois passer sur des versions
plus r=E9centes 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=E9cup=E9r=E9 le .config comme r=E9f=E9rence du noyau GNU/Debian SID =
de /
boot/config-2.6.32-trunk-686 vers mon r=E9pertoire Linux.

Le premier de mes probl=E8mes est le suivant, la compilation s'av=E8re
=EAtre un =E9chec :

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

lguest.c: In function =91create_thread=92:

lguest.c:1027: warning: implicit declaration of function =91eventfd=92

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


Je google/Linux un peu est je trouve =E7a :

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

Je ne comprends pas tout dans le message car je le trouve pas tr=E8s
clair .. De plus, =E7a fait bricolage ... J'ai d=E9sactiv=E9 =AB=A0Processe=
ur
type and features/Paravirtualized guest support=A0=BB, mais =E7a 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=E9e
audio analogique de mes stations afin de brancher des micros pour
faire de la voip (Mumble) et de la t=E9l=E9phonie.

Pour un autre kernel, je dois activer le temps r=E9el j'ai donc pacth=E9
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
=91eos=92 has incomplete type

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
=91daqp_interrupt=92:

drivers/staging/comedi/drivers/quatech_daqp_cs.c:291: error: implicit
declaration of function =91up=92

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
=91daqp_ai_insn_read=92:

drivers/staging/comedi/drivers/quatech_daqp_cs.c:405: error: implicit
declaration of function =91sema_init=92

drivers/staging/comedi/drivers/quatech_daqp_cs.c:418: error: implicit
declaration of function =91down_interruptible=92

drivers/staging/comedi/drivers/quatech_daqp_cs.c: In function
=91daqp_cs_attach=92:

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 =E7a ne me cause pas du tout ...

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

Je dois faire =E7a pour inverser l'image de ma cam=E9ra sur mon N10J Asus.

Si je suis cette proc=E9dure =E7a ne fonctionne pas, =E9chec de
compilation :

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

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=E0 dedans ? Ici : make drivers/media/video/uvc/
uvcvideo.ko

Merci pour votre aide =E9ventuelle.

Cordialement

2 réponses

Avatar
tatane
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 <sys/eventfd.h>).

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 :) )
Avatar
tatane
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.