Pour mieux comprendre : une question de base ?

[quote]sinon, je t’ai donné un lien vers l’image et un autre pour le paquetage “sources debian correspondantes”, il faut l’installer aussi. [/quote] OK, fait

[quote]Puis, dans /usr/src, détarrer les sources toi meme,
[/quote] Ça y est, je les ai déterrées jusqu’à la souce et elle a tellement craché qu’elle doit être à sec maintenant :laughing:

[quote]faire le lien symbolique linux vers tes sources [/quote]faire un lien symbolique, je pense m’en sortir mais je ne comprends pas le côté’linux’ car je n’ai tjrs pas de fichier linux. est-ce qu’il faut le créer ?
Pour cette partie, je préférerais que tu me mâche le boulot, une fois de + :blush:

[quote]et ensuite, copier le fichier /boot/config-uname -r sous le nom .config à la racine de ton arborescence de noyau.[/quote] J’ai fait mais je ne suis pas sûr que ce soit le bon emplacement . J’ai copié (en renommant .config) ds le dossier /usr/src/kernel-source-2.6.9/ (dossier créé lors du détartrage des sources)
Est-ce ce dossier que tu entends par “racine de l’arborescence du noyau” ???

bon, parfait tu as recopié ta config au bon endroit.
un lien symbolique, c’est comme un “raccourci” sous windows.
ici, il faut créer un lien /usr/src/linux qui pointe vers /usr/src/kernel-source-2.6.9/ :
ln -s /usr/src/linux /usr/src/kernel-source-2.6.9/

aprés, tu descend dans /usr/src/linux (ou bien /usr/src/kernel-source-2.6.9/, c’est pareil) et tu fais ta compilation de noyau tranquille, avec make-kpkg, comme on te le dit dans les tutoriels noyau.

[quote]bon, parfait tu as recopié ta config au bon endroit.[/quote]Je deviens bon :laughing:

[quote]il faut créer un lien /usr/src/linux qui pointe vers /usr/src/kernel-source-2.6.9/ :
ln -s /usr/src/linux /usr/src/kernel-source-2.6.9/[/quote] C’est ce que j’avais fait et j’attendais ta confirmation. Décidément, je commence à devenir TRES bon
:laughing:

[quote]aprés, tu descend dans /usr/src/linux (ou bien /usr/src/kernel-source-2.6.9/, c’est pareil) [/quote]Justement, si c’est pareil, je ne comprends pas l’utilité de créer un lien ?
D’ailleurs, je n’ai jamais compris leur utilité en général ?

Je pense faire une compil avec le .config tel qu’il est sans rien changer, pour voir si le rslt est bon et si je n’ai pas fait de con… qq part.
Si c’est bon, je “reprendrai” la config pour la modifier à ma sauce et là, je te redemanderai encore qq conseils.
Est-ce que tu penses que cette façon de procéder est la bonne … pour moi qui ne suis pas pressé et qui veut surtout apprendre :wink:

Tu peux toujours faire ta compil en l’etat.
afin de distinguer la version que tu prepares de celle qui est intallée, penses à lui rajouter un suffixe style “-ricardo-i386” ("-ricardo-i686" quand tu l’aura compilé spécifiquement pour ton processeur).
Pour compiler, donc, si tu suis bien ce qui est marqué la:
desktop-linux.net/debkernel.htm

tu va dans /usr/src,
et ca se fait donc avec:
make-kpkg --append_to_version “-ricardo-i686” --initrd kernel_image modules_image

Bête et obéissant, j’ai fait … mais ???

lns-vlq-16-mar-82-255-31-186:~# cd /usr/src lns-vlq-16-mar-82-255-31-186:/usr/src# make-kpkg --append_to_version "-ricardo-i686" --initrd kernel_image modules_image We do not seem to be in a top level linux kernel source directory tree. Since we are trying to make a kernel package, that does not make sense. Please change directory to a top level linux kernel source directory, and try again. (If I am wrong, and this is indeed a top level linux kernel source directory, then I have gotten sadly out of date with current kernels, and you should upgrade kernel-package) lns-vlq-16-mar-82-255-31-186:/usr/src#

PS : J’ai donc supposé qu’il ne trouvait rien à cet endroit et je me suis déplacé sur /usr/src/linux
ensuite j’ai tapé exactement ce que dit le lien que tu donnes :
make-kpkg buildpackage -rev Custom.1 kernel_image
et c’est entrain de mouliner donc je vais pouvoir aller à la soupe.
RDV après manger pour compter les erreurs
:unamused:

bonjour tout comme ricardo mon pc mouline apres la commande

make-kpkg buildpackage -rev Custom.1 kernel_imageet lors du defilement des lignes de codes je voit apparaitre certaines lignes comme celle la[code]CC [M] drivers/net/eexpress.o
In file included from drivers/net/eexpress.c:116:
include/linux/mca-legacy.h:12:2: warning: #warning “MCA legacy - please move your driver to the new sysfs api”

CC [M] drivers/net/cs89x0.o
drivers/net/cs89x0.c:166: warning: `netcard_portlist’ defined but not used[/code]je pense que ca doit venir de ma config du noyau apres le make menuconfig est ce dangereux ou je peut passer a la suite sans m’en preoccuper (pour le moment car je n’aime pas voir ce genre de warnings)

bon, pour les deux qui moulinent leur noyau, il va falloir recommencer:
l’option --initrd, qui n’et pas indiquée dans le tuto, mais que j’avais corrigé de moi même dans mon post précèdent, est obligatoire (sur le papier, ca dépend des circonstances, mais dans la réalité, il faut quasiment TOUJOURS l’utiliser, et cela ne gene pas si on la met sans necessité).
quand au -rev, je crois qu’il vaut mieux utiliser --append-to-version

ricardo, ton premier essai n’a pas marché parceque tu n’etais pas dans le bon répertoire, mais la commande que tu as utilisée etait bonne, tu aurais du la reessayer plutot que de prendre celle du tuto… dommage.

j’ai lancé la commande make-kpkg --append_to_version "" --initrd kernle_image modules_image je n’ai rien mis entre guillement car j’avais deja customiser la version comme ca [quote]Set EXTRAVERSION

Open the makefile located in /usr/src/linux with a text editor and add the following:

EXTRAVERSION = -YYYYMMDD

It’s a good idea to set EXTRAVERSION = to todays date. This will change the name of the kernel itself to 2.6.6-20040622 and will also change the location of the kernel modules which stops you from accidently overwriting them with another kernel of the same name (which I’ve done with very bad results), I had compiled previously so I also had to delete or rename the .Changelog file… Setting the Extraversion is optional.
[/quote] et en precisant il me disait qu’il ne reconnaissait pas la version j’ai donc laissé les guillemets vide et c parti apparement
en resultat il me donne [code]if [ -r System.map ]; then /sbin/depmod -ae -F System.map -b /usr/src/linux/debian/tmp-image -r 2.6.8-20050106; fi
WARNING: /usr/src/linux/debian/tmp-image/lib/modules/2.6.8-20050106/kernel/drivers/mtd/maps/scx200_docflash.ko needs unknown symbol del_mtd_partitions
WARNING: /usr/src/linux/debian/tmp-image/lib/modules/2.6.8-20050106/kernel/drivers/mtd/maps/scx200_docflash.ko needs unknown symbol add_mtd_partitions
make[2]: Leaving directory `/usr/src/kernel-source-2.6.8’
test ! -e debian/tmp-image/lib/modules/2.6.8-20050106/source ||
mv debian/tmp-image/lib/modules/2.6.8-20050106/source ./debian/source-link
test ! -e debian/tmp-image/lib/modules/2.6.8-20050106/build ||
mv debian/tmp-image/lib/modules/2.6.8-20050106/build ./debian/build-link
depmod -q -FSystem.map -b debian/tmp-image 2.6.8-20050106;
test ! -e ./debian/source-link ||
mv ./debian/source-link debian/tmp-image/lib/modules/2.6.8-20050106/source
test ! -e ./debian/build-link ||
mv ./debian/build-link debian/tmp-image/lib/modules/2.6.8-20050106/build
cp arch/i386/boot/bzImage debian/tmp-image/boot/vmlinuz-2.6.8-20050106
chmod 644 debian/tmp-image/boot/vmlinuz-2.6.8-20050106;
if test -d /usr/src/linux/debian/image.d ; then
IMAGE_TOP=debian/tmp-image version=2.6.8-20050106
run-parts --verbose /usr/src/linux/debian/image.d ;
fi
if [ -x debian/post-install ]; then
IMAGE_TOP=debian/tmp-image STEM=kernel version=2.6.8-20050106
debian/post-install;
fi
test ! -s applied_patches || cp applied_patches
debian/tmp-image/boot/patches-2.6.8-20050106
test ! -s applied_patches || chmod 644
debian/tmp-image/boot/patches-2.6.8-20050106
test ! -f System.map || cp System.map
debian/tmp-image/boot/System.map-2.6.8-20050106;
test ! -f System.map || chmod 644
debian/tmp-image/boot/System.map-2.6.8-20050106;

For LKCD enabled kernels

test ! -f Kerntypes || cp Kerntypes
debian/tmp-image/boot/Kerntypes-2.6.8-20050106
test ! -f Kerntypes || chmod 644
debian/tmp-image/boot/Kerntypes-2.6.8-20050106
dpkg-gencontrol -DArchitecture=i386 -isp
-pkernel-image-2.6.8-20050106 -Pdebian/tmp-image/
chmod -R og=rX debian/tmp-image
chown -R root:root debian/tmp-image
dpkg --build debian/tmp-image …
dpkg-deb: building package kernel-image-2.6.8-20050106' in…/kernel-image-2.6.8-20050106_Custom.1_i386.deb’.
rm -f -r debian/tmp-image
echo done > stamp-image
make[1]: Leaving directory `/usr/src/kernel-source-2.6.8’
for module in ; do
if test -d $module; then
(cd $module;
if ./debian/rules KVERS=“2.6.8-20050106” KSRC="/usr/src/linux"
KMAINT=“Unknown Kernel Package Maintainer” KEMAIL=“unknown@unconfigured.in.etc.kernel-pkg.conf”
KPKG_DEST_DIR="/usr/src/linux/…"
KPKG_MAINTAINER=“Unknown Kernel Package Maintainer”
KPKG_EXTRAV_ARG=""
ARCH=“i386”
KDREV=“Custom.1” 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;
);
fi;
done
[/code]

Bon, on va reprendre tt ça mais avant, je trouve qu’il serait sympa que qq 'un se dévoue (MattOTop, au hazard :laughing: ) pour faire un tuto complet qui s’adresse aux débutants que ns sommes.
Je m’explique :
Depuis que je parle de compiller un noyau à la mode debian, on m’a placé des liens sur au moins 3 site différents.
Aucun ne préconise la m^ chose, il y a tjrs qq chose qui diffère, comment voulez-vs qu’un novice s’y retrouve :unamused:

J’étais ds le répertoire indiqué par toi et par le tuto que tu m’as indiqué.

Et pourquoi tu m’as dit de suivre ce tuto s’il raconte des con… :wink:

Tout ça pour rire, bien sûr et je te remercie du bon vouloir que tu donnes pour aider les pauvres deb (utants) sous deb (ian).
Alors, question :
il faut faire le ménage pour repartir proprement ?
Quelle commande et à partir de que dossier, sachant que j’ai
/usr/src/linux (ce dernier en lien)
???
Merci encore

Bon, faire un tuto ? je suis déjà en lutte perpetuelle contre l’entropie, et la vue d’un tas de vaisselle sans fin qui se reconstitue tout les jours est pour moi une des pires épreuves que la vie soummet à mon moral. Alors écrire un pipo qui est obsolète au moment ou je l’écrit…
Par contre clarifier un peu…
Pourquoi les 3 tutos sont ils différents ? parceque le noyau change régulièrement, et que chacun est un cas particulier dans la compil du noyau.

rappatriement:
^^^^^^^^^^
Pour ce qui est de recommencer, pas besoin de réinstaller le paquetage source.
Vous pouvez, si plus rien ne marche, supprimer le répertoire /usr/src/kernel-sourceXXXX (pas le lien /usr/src/linux, celui la il reste, ni le fichier tar des sources).
Mais la plupart du temps, on peut recommencer le make-kpkg.

La compil à proprement parler:
^^^^^^^^^
Elle se fait dans /usr/src/linux. Sur le papier, le lien symbolique /usr/src/linux vers l’arborescence du noyau n’est pas obligatoire. Mais comme c’est un standard de nombreuses distribs linux, beaucoup de scripts mal écrits considèrent qu’il existe, et vont chercher par défaut les choses à cet endroit la. C’est donc mieux de le mettre (et de penser à le mettre à jour quand on change de noyau).

C’est dans ce répertoire (/usr/src/linux) que tout se passe…

  • config:
    La compil commence par une configuration. Cette configuration est stockée dans .config . Elle à le même format que le fichier /boot/config-XXXX.
    L’outil de configuration de base communs à tous les linux:
    make <???>config
    si c’est config, le .config est fabriqué en ligne de commande, l’utilisateur devant répondre “oui/non/module” au plusieurs centaines de question de configuration.=> à proscrire, donc.
    oldconfig: similaire à config, mais ne pose que des questions sur ce qui n’est pas déja configuré dans .config (à peine quelques dizaines de nouvelles options à chaque nouvelle version de noyau).
    menuconfig: nécessite un paquetage curses ou ncurses d’installé, on édite le .config avec une interface console, mais avec des menus.
    il existe d’autres interfaces de configurations, comme xconfig pour une interface X (mais beurk) et gconfig (sous gnome, mais jamais réussi à le faire marcher).

La bonne stratègie, c’est donc plutot de recopier comme .config un /boot/config-XXX qu’on sait marcher et qui correspond à ce qu’on veut (celui de la distrib, ou bien celui d’un noyau qu’on a compilé avant, ou au pire celui d’une knoppix qui est en général trés compatible), ensuite de le complèter (si ce n’etait pas pour le même noyau) avec oldconfig, et finalement, d’aller le modifier finement avec menuconfig (préciser l’architecture, compiler des modules spéciaux.

Sur un linux quelconque, c’est avant cette phase de config qu’il faut appliquer les patchs si on en a.

le make-kpkg:
^^^^^^^^^
dans un linux quelconque, la deuxieme phase consiste à fabriquer les dépendances avec ‘make deps’, compiler le noyau, de fabriquer les modules avec ‘make modules’, d’installer les modules avec ‘make modules_install’, on fabrique un eventuel initrd 'mkinitrd ’ ensuite on installe le noyau et l’initrd là ou il faut (à la racine, ou dans /boot, suivant le linux)…
il faut aussi caser un ‘make clean’ avant ou aprés la compil, je crois…
pfff :frowning:

Heureusement, sous debian, il y a make-kpkg. make-kpkg simplifie tout ca : il compile ce qu’on lui demande, et fabrique, dans /usr/src, toute une série de fichiers .deb que l’on peut ensuite installer la ou l’on veut. Ce sont ces .deb que l’on installe quand on télécharge une image noyau, les headers, ou un paquetage source noyau.

make-kpkg, prend comme arguments des cibles (la liste: make-kpkg --targets) dont deux principalement:
kernel-image, qui fabrique le paquet image, les headers, et réempaquete les sources avec la config et les patchs appliqués.
modukes_image, qui fabrique les modules complémentaires, comme le paquet nvidia, ou madwifi, qui sont des modules exterieurs rajoutés au noyau.
une autre cible notable, c’est la cible ‘debian’. Elle prépare les sources non debian, en y appliquant les patchs debian ( si par exemple on a rappatrié les sources depuis kernel.org, sans installer le paquetage debian ). this is how you debianize pristine kernel sources.
la commande prend aussi de options: --initrd, quasi obligatoire, qui integre un initrd au paquet kernel-image, et toute une série d’options de version de noyau. Celle la plus souple à mon avis, c’est --append-to-version (et non pas --append_to_version) que je préfère à -rev, mais c’est un choix.

Vous êtes maintenant normalement à même de comprendre le contenu de ‘man make-kpkg’ :slightly_smiling:

L’installation:
^^^^^^
la, une fois que la compil s’est bien passée (sisi, c’est possible), on revient dans /usr/src . On y trouve maintenant toute une série de fichiers .deb: kernel-image…, headers, sources, etc . Il ne reste plus qu’à les installer avec dpkg -i

C tout.

vala. J’esperes que c’est mieux pour vous…
++

Qui c’est qui avait écrit ça ?

[quote]tu va dans /usr/src,
et ca se fait donc avec:
make-kpkg --append_to_version “-ricardo-i686” --initrd kernel_image modules_image[/quote]
MattOTop
et qui c’est qui maintenant écrit ça ?

MattOTop
Et qui c’est qui a suivi le premier exemple et qui a mis :

Ricardo, qui se retrouve avec un nom du genre
kernel-image-2.6.9-ricardo-i386-ricardo-i686
On verra par la suite quand je recommencerai
:wink:
Je devais partir alors j’ai devancé en faisant un make-kpkg clean et j’ai recommencé la comil.
Elle s’est terminée mais je ne sais pas encore ce qu’elle va donner.
Bon, je tente donc
dpkg -i kernel-image-2.6.9-ricardo-i386-ricardo-i686_10.00.Custom_i386.deb
( c’est le fichier .deb qui est apparu en dernier ds /usr/scr )et on verra bien

PS : Ben il a pas voulu :cry:

[code]lns-vlq-16-mar-82-255-31-186:/usr/src# dpkg -i kernel-image-2.6.9-ricardo-i386-ricardo-i686_10.00.Custom_i386.deb
Selecting previously deselected package kernel-image-2.6.9-ricardo-i386-ricardo-i686.
(Reading database … 90235 files and directories currently installed.)
Unpacking kernel-image-2.6.9-ricardo-i386-ricardo-i686 (from kernel-image-2.6.9-ricardo-i386-ricardo-i686_10.00.Custom_i386.deb) …
Setting up kernel-image-2.6.9-ricardo-i386-ricardo-i686 (10.00.Custom) …
Searching for GRUB installation directory … found: /boot/grub .
Testing for an existing GRUB menu.list file… found: /boot/grub/menu.lst .
Searching for splash image… none found, skipping…
Found kernel: /boot/vmlinuz

[/code]

[quote=“MattOTop”]make-kpkg, prend comme arguments des cibles (la liste: make-kpkg --targets) dont deux principalement:
kernel-image, qui fabrique le paquet image, les headers, et réempaquete les sources avec la config et les patchs appliqués.
modukes_image, qui fabrique les modules complémentaires, comme le paquet nvidia, ou madwifi, qui sont des modules exterieurs rajoutés au noyau.[/quote] Je ne sais pas si c’est possible et c’est pour ca que je pose la question ayant une carte graphiques nvidia est il possible de telecharger les derniers drivers pour sur leur site et de l’inclure dans la compilation du kernel?

Ricardo, je ne vois pas ce qu’il y a d’anormal dans ce que tu cites :frowning:

Il vaut mieux télécharger ceux disponibles via apt-get et les compiler à la sauce Debian :slightly_smiling:

compare ces deux parties :
append_to_version
append-to-version

D’ailleurs, Matt se rectifie lui-m^ avec :
(et non pas --append_to_version)

Allez, j’ai tt effacé et on recommence demain :wink:

Il vaut mieux télécharger ceux disponibles via apt-get et les compiler à la sauce Debian :slightly_smiling:[/quote]
Absolument, mais pour les courageux et risque tout, en regardant comment sont organisées les sources debian du paquetage nvidia, on s’apercoit que /usr/src/modules/nvidia-kernel contient 2 répertoires:un répertoire ‘debian’ et un répertoire ‘nv’. Il m’a semblé que le dernier contenait les sources officielles nvidia, et l’autre les scripts sp"cifiques et les données complémentaires debian. Ce que je n’ai jamais essayé, c’est de déplacer ‘nv’ "out of the way, et de le remplacer avec des sources officielles pour voir si ca compilait.
Si quelqu’un veut s"amuser :slightly_smiling:

et bien apres avoir suivis les instructions donc le make kpkg --apend-to-version puis un dpkg -i ca fonctionne j’ai pu rebooter sur ma version 2.6.8 (je passais de la 2.6.7 a la 2.6.8 sans probleme) J’ai un petit soucis de son mais ca doit venir du fait que je ne l’ai pas configurer (ca fonctionne mais ca gresille en arriere plan)

[quote=“MattOTop”] Ce que je n’ai jamais essayé, c’est de déplacer ‘nv’ "out of the way, et de le remplacer avec des sources officielles pour voir si ca compilait.
Si quelqu’un veut s"amuser :slightly_smiling:[/quote]
Etant completement cinglé ca me tente bien d’essayer mais par contre je ne sais pas comment faire j’y regarde et si une ame charitable veux bien me donner un coup de pouce ce ne sera pas de refus :slightly_smiling:

Ricardo ca fonctionne j’ai reussi chez moi mais c’est pour passer de la 2.6.7 a la 2.6.8 je ne pense pas que ce soit plus compliquer de la 2.6.8 a la 2.6.9 courage

Ben t’as d’la chance !
Je suis reparti à partir de la compil en renommant /lib/modules en .vieux
je me suis placé ds /usr/src/linux
j’ai purgé :
make-kpkg clean
j’ai repris la commande magique :

Ça a mouliné
je me suis replacé ds /usr/src
j’ai tapé :

et voici, ça s’arrête là

[code]lns-vlq-16-mar-82-255-31-186:/usr/src# dpkg -i kernel-image-2.6.9-ricardo-i386-ricardo-i686_10.00.Custom_i386.deb
(Reading database … 103344 files and directories currently installed.)
Preparing to replace kernel-image-2.6.9-ricardo-i386-ricardo-i686 10.00.Custom (using kernel-image-2.6.9-ricardo-i386-ricardo-i686_10.00.Custom_i386.deb) …
Unpacking replacement kernel-image-2.6.9-ricardo-i386-ricardo-i686 …
Searching for GRUB installation directory … found: /boot/grub .
Testing for an existing GRUB menu.list file… found: /boot/grub/menu.lst .
Searching for splash image… none found, skipping…
Found kernel: /boot/vmlinuz

[/code]

pas plus loin :blush:

où je me suis planté Docteur ?

PS 3
J’ai retenté un peu tout à partir du départ et je termine tjrs par ça :

Searching for splash image… none found, skipping…
Found kernel: /boot/vmlinuz

:question: :question: :question:

qu’est ce que tu as dans /boot ?