Voilà, j’ai décidé de tenter de compiler et d’installer le nouveau étant donné que j’ai un problème de son, car il faut que je lance Alsaconf à chaque démarrage pour avoir du son par la suite. Ainsi, je pourrais voir si j’ai toujours ce problème
Grâce à ce tutorial içi, je lance la compilation mais j’ai un message d’erreur à la fin et je ne sais vraiment comment le résoudre.
Le voici :
make[1]: quittant le répertoire « /usr/src/linux-2.6.29.2 »
/usr/bin/make EXTRAVERSION=.2-custom ARCH=i386 \
-C Documentation/lguest
make[1]: entrant dans le répertoire « /usr/src/linux-2.6.29.2/Documentation/lguest »
cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -lz -o lguest
lguest.c:34:18: error: zlib.h: Aucun fichier ou répertoire de ce type
make[1]: *** [lguest] Erreur 1
make[1]: quittant le répertoire « /usr/src/linux-2.6.29.2/Documentation/lguest »
make: *** [debian/stamp/build/kernel] Erreur 2
La commande pour lancer la compilation fût la suivante :
Je ne suis pas sûr que la compilation soit la meilleur solution à ton problème; s’il suffit d’executer une commande pour faire marcher ton son, c’est que le problème ne vient pas du noyau, mais plutot d’une option a passer à alsa au moment du chargement.
Pour répondre à ton problème de compilation, il faut pas mal de paquet pour compiler; vu qu’il te manque zlib, regarde notamment si tu as les paquets zlib1g-dev et/ou zlib1g d’installés.
dans le cahier de l’admin, ils préconisent de travailler dans un répertoire de l’utilisateur(ex: /home/ton_user/src) plutôt que dans /usr/src(ce dernier existe pour des raisons de compatibilité avec je ne sais plus trop quoi…).
# mkdir /home/ton_user/src
# cd /home/ton_user/src
# tar -xjvf /usr/src/linux-source...
# cd linux-source...
pour le reste, la procédure est à peu près la même que celle que tu as trouvé.
Bon, j’ai suivi ce que tu m’as dit Debcool mais j’ai eu un petit problème. Les .deb se sont bien crées puis j’ai rebooté la machine mais au démarrage du nouveau Kernel, j’ai eu droit à un bel écran blanc.
Il faut dire que durant la compilation du nouveau Kernel, j’ai eu quelques warning par-ci par-là. Je ne les ai pas relevé mais est-ce que le problème pourrait venir de là?
Sinon, peux-ton compiler un nouveau Kernel sans utiliser la configuration que j’ai pour mon noyau actuel. Dans Make Menuconfig, que faut-il que je choisisse si je peux avoir cette possibilité.
Tu lances make-menuconfig à blanc, tu quittes en enregistrant tes choix
tu remplaces .config par défaut pour la compilation par
.config de l’ancienne version correspondant à /boot/config-2.6.???
cat /boot/config-2.6.26 > .config
Tu relances make-menuconfig qui se base maintenant sur des choix d’un kernel
fonctionnel et tu l’allége des trucs inutiles ou qui font planter.
Tu essayes de voir quel était le message d’erreur sur le démarrage du kernel précédent
C’est quoi les trucs inutiles ? variable selon ton matériel/usage
les modules nvidia quand on a une carte Ati
Radio amateur quand on est pas cibiste
wi-fi quand on a qu’ ethernet …
sur des ordinosaures , on garde ce qui correspondra au matériel en présence.
JE vais tester la compilation + installation sur une machine virtuelle avant de me lancer sur mon “vrai” Debian.
Donc, voici les messages de warning que je reçois de temps en temps :
drivers/pci/search.c:145: warning: 'pci_find_slot' is deprecated (declared at drivers/pci/search.c:134)
drivers/pci/search.c:145: warning: 'pci_find_slot' is deprecated (declared at drivers/pci/search.c:134)
drivers/pci/search.c:174: warning: 'pci_find_device' is deprecated (declared at drivers/pci/search.c:166)
drivers/pci/search.c:174: warning: 'pci_find_device' is deprecated (declared at drivers/pci/search.c:166)
ou encore
fs/ecryptfs/messaging.c: In fonction ecryptfs_process_response':
fs/ecryptfs/messaging.c:359: warning: 'daemon' may be used uninitialized in this function
fs/ecryptfs/messaging.c: In fonction ecryptfs_process_helo':
fs/ecryptfs/messaging.c:231: warning: 'old_daemon' may be used uninitialized in this function
et
fs/gfs2/ops_inode.c: In function 'gfs2_mkdir':
/home/max/src/linux-2.6.29.2/arch/x86/include/asm/string_32.h:75: warning: array subsript is above array bounds
Puis il y en a d’autre… et je ne sais pas comment les interpréter.
Oui, fort probablement, mais pas tous, certain sont plus de “WARNING” que des “ERROR”.
La dernière commande dans ma réponse, celle où tu utilises “xconfig”. En principe elle annihile le “make oldconfig”. Mais même si elle ne le faisait pas, sont but est de te donner le libre choix des options… donc tu fais ce que tu veux! Mais pas n’importe quoi
Quant à l’écran blanc, la config de xorg contient “fglrx” maintenant?(rapport à ton dernier message) et donc, un module “fglrx”(compilé par toi) qui fonctionne avec le kernel d’origine. Or ici, on a un noyau fraichement compilé SANS son propre module ATI… RRRAH, ces cartes graphiques Donc, xserver démare, trouve une config avec “fglrx” dedans et le kernel n’a pas ce module…
Voici la suite de la démarche pour compiler le module ATI conjoitement au nouveau kernel:
juste après avoir compilé le kernel;
cd /home/user/src
tar -xjvf /usr/src/fglrx.tar.bz2 ==> les sources doivent être installées, of course.
cd /home/user/src/linux-source-2.6.26/ ==> OBLIGATOIRE! la compil du module se lance aussi ICI!!
fakeroot make-kpkg --append-to-version -ce_que_tu_veux modules-image !*!
cd ../
ls -l ==> fglrx-kernel-2.6.26-ce_que-tu-veux+0X_amd64.deb ==> OK!
dpkg -i linux-image-2.6.26-ce_que-tu-veux+0X_amd64.deb
dpkg -i fglrx-kernel-2.6.26-ce_que-tu-veux+0X_amd64.deb
Verif chez [color=#FF0000]moi[/color]:
ll /lib/modules/2.6.26-debcool64-07/misc/fglrx.ko
-rw-r--r-- 1 root root 3,2M mai 5 21:47 /lib/modules/2.6.26-debcool64-07/misc/fglrx.ko
Si les 2 compilations sont OK; le nouveau kernel est installé ainsi que son module de pilote ATI, alors le xorg.conf qui fonctionne avec le kernel+pilote d’origine, fonctionnera aussi avec la nouveau duo de chock A chaque kernel ses librairies!!
!*! ATTENTION!
- il FAUT que la valeur donnee à "--append-to-version" (ici "-ce_que_tu_veux") soit EXACTEMENT la même que pour la compilation du kernel! Pour la revision, il s'en occupe tout seul.
- Avant chaque nouvel recompilation d'un ensemble kernel-pilotes_ATI, il est necessaire de netoyer les sources, comme signalé précédement. Cependant, j'ai constaté que cette derniere ne nettoye pas les sources du pilote! Le plus simple est de virer le dossier et de refaire l'etape "tar -xjvf /usr/src/fglrx.tar.bz2", sous peine d'avoir des erreurs de compilation du module.
La piste de la carte graphique ou du module flgx non installé que te suggère debcool est certainement la bonne puisque le symptome est un écran blanc.
Le compilateur n’est pas censé détecter si tu as de l’ATI du nvidia du intel , il ne te signalera pas de “warning” pour te dire que tes options de noyau sont erronées.
Lorsque je te demandais de voir "le message d’erreur sur le démarrage du kernel précédent"
je ne parlais pas des warning de la compilation mais de ceux obtenus par
$ dmesg
Le paradoxe c’est que quand le démarrage reste en suspens, on n’a pas l’occasion de
le lancer . Il s’agit donc de lancer le système et d’ouvrir les yeux jusqu’au
dernier message qui gèle le système.
ça donne une indication pour savoir quelle option coince dans les choix de
modules, options du noyau
Lorsque je te suggère de te baser sur la vieille config
ça suppose évidemment qu’elle soit viable, la version 2.6.26 étant celle
de la distribution ça devrait être le cas …
numéro de versions 2.6.26 contre 2.6.29 ca veut dire qu’il y a des nouvelles
fonctionalités , des remises en ordre …
La config de 2.6.26 déguisée en 2.6.29 ne peut donc être compilée directement
Il faut malgré tout passer par make menuconfig pour que les nouveautés soient prises en compte.
[quote=“debcool”]
Quant à l’écran blanc, la config de xorg contient “fglrx” maintenant?(rapport à ton dernier message) et donc, un module “fglrx”(compilé par toi) qui fonctionne avec le kernel d’origine.[/quote]
Bah à vrai dire, je ne pense pas avoir compilé un module “fglrx” moi-même car j’ai seulement téléchargé le .run d’ATI 9.4 et je l’ai lancé (tout cela en mode console). Installation version Ubuntuesque à vrai dire, c’est la même manipulation que dans leur wiki. (voire tuto Catalyst)
Donc en conclusion, ce ne sont pas les pilotes d’origine de Debian.
Le .run est un package “executable” qui lance des scripts et dans le tas il y a une compilation du module. Tu as donc bien compiler les pilotes ATI.
Mets fglrx-source, fglrx-kernel-src est une dépendance, donc il s’installera aussi. Et si tu veux, mets fglrx-amdcccle = Catalyst Control Center. Il est moins joli et complet que dans Winbullshit, mais c’est suffisant.
BONUS:
Une fois que tout marche, essayes ceci: (en root ou pas, les 2 marches)
aticonfig --odgc
ici, ça donne,
Default Adapter - ATI Radeon HD 3600 Series
Core (MHz) Memory (MHz)
Current Clocks : 110 500
Current Peak : 725 500
Configurable Peak Range : [300-900] [500-700]
GPU load : 0%
Ce qui signifie que la gestion ACPI fonctionne parfaitement(Current clokcs/current peak).
Si tu veux voir la charge sur le GPU en 3d:
1- lance deux consoles
2- dans la 1ere, tu lances "glxgears"
3- dans la 2eme, aticonfig --odgc
4- étires la fenêtre ouverte par "glxgear"
5- refais aticonfig --odgc
ici, ça donne,
3-
asux-e:~# aticonfig --odgc
Default Adapter - ATI Radeon HD 3600 Series
Core (MHz) Memory (MHz)
Current Clocks : 300 500
Current Peak : 725 500
Configurable Peak Range : [300-900] [500-700]
GPU load : 23%
5-
asux-e:~# aticonfig --odgc
Default Adapter - ATI Radeon HD 3600 Series
Core (MHz) Memory (MHz)
Current Clocks : 725 500
Current Peak : 725 500
Configurable Peak Range : [300-900] [500-700]
GPU load : 99%
J’ai installé les sources fglrx mais aucuné création du .deb pour fglrx. Lorsque je lance la commande que tu m’as donné, voici ce que j’ai en réponse :
fakeroot make-kpkg --append-to-version -berill modules-image
exec debian/rules DEBIAN_REVISION=2.6.29-berillions-10.00.Custom APPEND_TO_VERSION=-berill modules-image
for module in ; do \
if test -d $module; then \
(cd $module; \
if ./debian/rules KVERS="2.6.29-berillions" KSRC="/home/max/src/linux-2.6.29.2" \
KMAINT="Unknown Kernel Package Maintainer" KEMAIL="unknown@unconfigured.in.etc.kernel-pkg.conf" \
KPKG_DEST_DIR="/home/max/src/linux-2.6.29.2/.." \
KPKG_MAINTAINER="Unknown Kernel Package Maintainer" \
KPKG_EXTRAV_ARG="EXTRAVERSION=-berill" \
ARCH="i386" \
KDREV="2.6.29-berillions-10.00.Custom" kdist_image; then \
echo "Module $module processed fine"; \
else \
echo "Module $module failed."; \
if [ "X" != "X" ]; then \
echo "Perhaps $module does not understand --rootcmd?"; \
echo "If you see messages that indicate that it is not"; \
echo "in fact being built as root, please file a bug "; \
echo "against $module."; \
fi; \
echo "Hit return to Continue"; \
read ans; \
fi; \
); \
else \
echo "Module $module does not exist"; \
echo "Hit return to Continue?"; \
fi; \
done
Même en corrigeant mon erreur, aucune création du .deb pour fglrx. En ayant préalablement, nettoyé les sources Linux et supprimer/dezippé les fichiers fglrx.
[code]/home/max/src/linux-2.6.29.2# fakeroot make-kpkg --append-to-version -berillions modules-image
exec make -f /usr/share/kernel-package/ruleset/minimal.mk debian APPEND_TO_VERSION=-berillions
====== making target debian/stamp/conf/minimal_debian [new prereqs: ]======
This is kernel package version .
test -d debian || mkdir debian
test ! -e stamp-building || rm -f stamp-building
install -p -m 755 /usr/share/kernel-package/rules debian/rules
for file in ChangeLog Control Control.bin86 config templates.in rules; do
cp -f /usr/share/kernel-package/$file ./debian/;
done
for dir in Config docs examples ruleset scripts pkg po; do
cp -af /usr/share/kernel-package/$dir ./debian/;
done
test -f debian/control || sed -e ‘s/=V/2.6.29-berillions/g’
-e ‘s/=D/2.6.29-berillions-10.00.Custom/g’ -e ‘s/=A/i386/g’
-e ‘s/=SA//g’ -e ‘s/=L/ /g’
-e ‘s/=I//g’
-e ‘s/=CV/2.6/g’
-e ‘s/=M/Unknown Kernel Package Maintainer unknown@unconfigured.in.etc.kernel-pkg.conf/g’
-e ‘s/=ST/linux/g’ -e ‘s/=B/i386/g’
/usr/share/kernel-package/Control > debian/control
test -f debian/changelog || sed -e ‘s/=V/2.6.29-berillions/g’
-e ‘s/=D/2.6.29-berillions-10.00.Custom/g’ -e ‘s/=A/i386/g’
-e ‘s/=ST/linux/g’ -e ‘s/=B/i386/g’
-e ‘s/=M/Unknown Kernel Package Maintainer unknown@unconfigured.in.etc.kernel-pkg.conf/g’
/usr/share/kernel-package/changelog > debian/changelog
test -d ./debian/stamp || mkdir debian/stamp
make -f debian/rules debian/stamp/conf/kernel-conf
make[1]: entrant dans le répertoire « /home/max/src/linux-2.6.29.2 »
====== making target debian/stamp/conf/kernel-conf [new prereqs: ]======
test ! -e scripts/package/builddeb || mv -f scripts/package/builddeb scripts/package/builddeb.kpkg-dist
test ! -e scripts/package/Makefile || test -f scripts/package/Makefile.kpkg-dist || (mv -f scripts/package/Makefile scripts/package/Makefile.kpkg-dist && (echo "# Dummy file "; echo “help:”) > scripts/package/Makefile)
make EXTRAVERSION=-berillions ARCH=i386
oldconfig;
make[2]: entrant dans le répertoire « /home/max/src/linux-2.6.29.2 »
scripts/kconfig/conf -o arch/x86/Kconfig
configuration written to .config
make[2]: quittant le répertoire « /home/max/src/linux-2.6.29.2 »
make EXTRAVERSION=-berillions ARCH=i386 prepare
make[2]: entrant dans le répertoire « /home/max/src/linux-2.6.29.2 »
scripts/kconfig/conf -s arch/x86/Kconfig
make[2]: quittant le répertoire « /home/max/src/linux-2.6.29.2 »
make[2]: entrant dans le répertoire « /home/max/src/linux-2.6.29.2 »
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CC kernel/bounds.s
GEN include/linux/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/asm/asm-offsets.h
CALL scripts/checksyscalls.sh
make[2]: quittant le répertoire « /home/max/src/linux-2.6.29.2 »
echo done > debian/stamp/conf/kernel-conf
make[1]: quittant le répertoire « /home/max/src/linux-2.6.29.2 »
make -f debian/rules debian/stamp/conf/full-changelog
make[1]: entrant dans le répertoire « /home/max/src/linux-2.6.29.2 »
====== making target debian/stamp/conf/full-changelog [new prereqs: ]======
( test -f debian/official && test -f debian/control) ||
sed -e ‘s/=V/2.6.29-berillions/g’ -e ‘s/=D/2.6.29-berillions-10.00.Custom/g’
-e ‘s/=A/i386/g’ -e ‘s/=SA//g’
-e ‘s/=L/lilo (>= 19.1) | grub, /g’ -e ‘s/=I//g’
-e ‘s/=CV/2.6/g’
-e ‘s/=M/Unknown Kernel Package Maintainer unknown@unconfigured.in.etc.kernel-pkg.conf/g’
-e ‘s/=ST/linux/g’ -e ‘s/=B/i386/g’
/usr/share/kernel-package/Control> debian/control
test -f debian/official ||
sed -e ‘s/=V/2.6.29-berillions/g’ -e ‘s/=D/2.6.29-berillions-10.00.Custom/g’
-e ‘s/=A/i386/g’ -e ‘s/=M/Unknown Kernel Package Maintainer unknown@unconfigured.in.etc.kernel-pkg.conf/g’
-e ‘s/=ST/linux/g’ -e ‘s/=B/i386/g’
/usr/share/kernel-package/changelog > debian/changelog
test -f debian/official ||
for file in ChangeLog Control Control.bin86 config templates.in rules; do
cp -f /usr/share/kernel-package/$file ./debian/;
done
test -f debian/official ||
for dir in Config docs examples ruleset scripts pkg po; do
cp -af /usr/share/kernel-package/$dir ./debian/;
done
install -p -m 755 /usr/share/kernel-package/rules debian/rules
make[1]: quittant le répertoire « /home/max/src/linux-2.6.29.2 »
echo done > debian/stamp/conf/minimal_debian
exec debian/rules APPEND_TO_VERSION=-berillions modules-image
for module in ; do
if test -d $module; then
(cd $module;
if ./debian/rules KVERS=“2.6.29-berillions” KSRC="/home/max/src/linux-2.6.29.2"
KMAINT=“Unknown Kernel Package Maintainer” KEMAIL=“unknown@unconfigured.in.etc.kernel-pkg.conf”
KPKG_DEST_DIR="/home/max/src/linux-2.6.29.2/…"
KPKG_MAINTAINER=“Unknown Kernel Package Maintainer”
KPKG_EXTRAV_ARG=“EXTRAVERSION=-berillions”
ARCH=“i386”
KDREV=“2.6.29-berillions-10.00.Custom” kdist_image; then
echo “Module $module processed fine”;
else
echo “Module $module failed.”;
if [ “X” != “X” ]; then
echo “Perhaps $module does not understand --rootcmd?”;
echo “If you see messages that indicate that it is not”;
echo "in fact being built as root, please file a bug ";
echo “against $module.”;
fi;
echo “Hit return to Continue”;
read ans;
fi;
);
else
echo “Module $module does not exist”;
echo “Hit return to Continue?”;
fi;
done
[/code]