Kernel code source
Fermé
Romeric
Messages postés
23
Date d'inscription
jeudi 17 novembre 2016
Statut
Membre
Dernière intervention
6 janvier 2018
-
11 déc. 2017 à 10:30
mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 - 9 janv. 2018 à 09:57
mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 - 9 janv. 2018 à 09:57
A voir également:
- Kernel code source
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
4 réponses
mamiemando
Messages postés
33352
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 novembre 2024
7 804
12 déc. 2017 à 10:35
12 déc. 2017 à 10:35
Bonjour,
Introduction
C'est tout à fait normal. En fait il faut distinguer plusieurs types de fichiers :
- les headers (.h) qui permettent de compiler quelque chose qui doit s'interfacer avec le noyau (par exemple un pilote)
- les sources (.c, et .h) qui inclue donc les headers, et qui permet de compiler le noyau lui même et ses modules de base (.ko) (et a fortiori, par la suite, des pilotes)
- l'image, installée à terme dans /boot, et ses modules (fichiers .ko) qui sont le résultat de cette compilation, ce qui permettent d'utiliser ta machine et son matériel.
Afin d'illustrer la suite de mon message, je vais considérer que tu utilises une distribution debian ou un dérivé (ubuntu, mint...). Ce que j'explique reste applicable la plupart du temps pour les autres distributions linux moyennant quelques adaptations.
Sous debian cela revient à types de paquets, respectivement
En pratique quand tu installes un système, seul le paquet
Récupérer des sources sur kernel.org revient à ce dernier choix, sauf que tu n'es pas passé par
Compiler un noyau
Tu peux regarder ce tutoriel, qui explique comment compiler un kernel. Il est recommandé d'avoir quelques bases en compilation.
Un kernel est écrit en langage C. Le C est un langage compilé, ce qui signifie que ses sources doivent être traitées pour produire un programme utilisable.
Plus précisément :
- compiler un programme consiste à convertir des sources (e.g. fichiers .c) en binaires (.o, .ko, exécutable, librairie .a ou .so, kernel). Les .o sont des binaires destinés à produire un autre binaire (exécutable, .so, .a, ...). Les .ko sont des modules de noyau (~ pilotes).
- le logiciel traditionnellement utilisé pour produire un binaire est
- chaque exécution de
Lorsqu'on compile un noyau, des centaines de binaires (.ko et autres) devront être générés. Bien trop pour qu'on les compile tous un par un :-) Pour éviter une tâche aussi fastidieuse, on va s'appuyer sur un script, appelé
L'utilisation des Makefile est très répandue et utilisée pour de nombreux projets (pas forcément des noyaux, et pas forcément écrits en C d'ailleurs). Généralement les dépendances sont connues à l'avance, mais ce n'est pas le cas d'un noyau qu'on veut, en général, optimiser. C'est la raison pour laquelle les dépendances utilisées par le Makefile sont déportées dans un fichier tiers, le fichier
La première étape pour compiler un noyau consiste à générer/mettre à jour ce
Attention à ne pas enlever des fonctionnalités vitales, car sinon ta machine ne démarrera pas sur ce noyau (kernel panic). Comme généralement le but quand on compile son propre noyau est d'obtenir un noyau optimisé, toute la difficulté est donc de déterminer les fonctionnalités nécessaires ou dont tu pourrais avoir besoin, et désactiver autant que possible les autres. Pour commencer en douceur, tu peux te contenter de garder les choix activés par défaut, ce qui devrait te donner un noyau peu optimisé mais utilisable.
Une fois le
Bonne chance
Introduction
C'est tout à fait normal. En fait il faut distinguer plusieurs types de fichiers :
- les headers (.h) qui permettent de compiler quelque chose qui doit s'interfacer avec le noyau (par exemple un pilote)
- les sources (.c, et .h) qui inclue donc les headers, et qui permet de compiler le noyau lui même et ses modules de base (.ko) (et a fortiori, par la suite, des pilotes)
- l'image, installée à terme dans /boot, et ses modules (fichiers .ko) qui sont le résultat de cette compilation, ce qui permettent d'utiliser ta machine et son matériel.
Afin d'illustrer la suite de mon message, je vais considérer que tu utilises une distribution debian ou un dérivé (ubuntu, mint...). Ce que j'explique reste applicable la plupart du temps pour les autres distributions linux moyennant quelques adaptations.
Sous debian cela revient à types de paquets, respectivement
linux-sources-*,
linux-headers-*,
linux-image-*où * est à remplacer par une numéro de version et une architecture (e.g. 4.13.0-1-amd64). Ces paquets (.deb) sont installés à partir du gestionnaire de paquets
apt-getet sont en gros soit une archive qui contient ce que tu as récupéré sur kernel.org (pour les paquets
linux-headerset
linux-sources), soit le résultat obtenu après compilation (
linux-image).
En pratique quand tu installes un système, seul le paquet
linux-image(dans sa dernière version et pour ton architecture de micro processeur est installé). Cela suffit à la plupart des utilisateurs. S'ils souhaitent préparer un pilote (e.g. un pilote nvidia), les headers sont suffisants. Ensuite pour un public plus curieux ou qui désire préparer un noyau plus optimisé, il est possible de récupérer les sources et d'indiquer quelles fonctionnalités doivent ou non être supportées dans le noyau.
Récupérer des sources sur kernel.org revient à ce dernier choix, sauf que tu n'es pas passé par
apt-get. En soi rien de bien gênant, mais personnellement je préfère toujours passer par le gestionnaires de paquets car ça permet de retrouver ce qui est installé sur la machine plus facilement, et donc de la nettoyer plus facilement.
Compiler un noyau
Tu peux regarder ce tutoriel, qui explique comment compiler un kernel. Il est recommandé d'avoir quelques bases en compilation.
Un kernel est écrit en langage C. Le C est un langage compilé, ce qui signifie que ses sources doivent être traitées pour produire un programme utilisable.
Plus précisément :
- compiler un programme consiste à convertir des sources (e.g. fichiers .c) en binaires (.o, .ko, exécutable, librairie .a ou .so, kernel). Les .o sont des binaires destinés à produire un autre binaire (exécutable, .so, .a, ...). Les .ko sont des modules de noyau (~ pilotes).
- le logiciel traditionnellement utilisé pour produire un binaire est
gcc
- chaque exécution de
gccest destiné à générer un objet ou un binaire.
Lorsqu'on compile un noyau, des centaines de binaires (.ko et autres) devront être générés. Bien trop pour qu'on les compile tous un par un :-) Pour éviter une tâche aussi fastidieuse, on va s'appuyer sur un script, appelé
Makefile. Il permet au travers de la commande
makede réaliser toute une chaîne de commandes. Plus précisément, un Makefile décrit les dépendances entre les différents objets. Il est alors possible de ne construire que les dépendances nécessaires à la compilation de ce que tu veux obtenir (par exemple, ton image de noyau).
L'utilisation des Makefile est très répandue et utilisée pour de nombreux projets (pas forcément des noyaux, et pas forcément écrits en C d'ailleurs). Généralement les dépendances sont connues à l'avance, mais ce n'est pas le cas d'un noyau qu'on veut, en général, optimiser. C'est la raison pour laquelle les dépendances utilisées par le Makefile sont déportées dans un fichier tiers, le fichier
.config(placé dans le répertoire des sources du noyau).
La première étape pour compiler un noyau consiste à générer/mettre à jour ce
.configen indiquant ce que tu veux construire. Pour ce faire, une interface permet de le faire
make menuconfigou
make oldconfig(quand on le récupères depuis un répertoire de source de noyau antérieur).
Attention à ne pas enlever des fonctionnalités vitales, car sinon ta machine ne démarrera pas sur ce noyau (kernel panic). Comme généralement le but quand on compile son propre noyau est d'obtenir un noyau optimisé, toute la difficulté est donc de déterminer les fonctionnalités nécessaires ou dont tu pourrais avoir besoin, et désactiver autant que possible les autres. Pour commencer en douceur, tu peux te contenter de garder les choix activés par défaut, ce qui devrait te donner un noyau peu optimisé mais utilisable.
Une fois le
.configdéfini, il est alors possible de passer à la compilation proprement dite, puis d'installer le noyau dans
/bootet ses modules dans
/lib/moduleset de mettre à jour ton boot loader (e.g. grub). Si tu es sous debian ou une distribution qui en dérive, je te conseille d'utiliser
make-kpkgpour avoir un paquet propre, puis d'installer le paquet obtenu avec
dpkg -i. Cela permet également ne pas avoir à réaliser toutes ces étapes manuellement. Tout ceci est décrit dans le tutoriel (ainsi que le cas où tu n'es pas sous debian).
Bonne chance
mamiemando
Messages postés
33352
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 novembre 2024
7 804
23 déc. 2017 à 14:20
23 déc. 2017 à 14:20
Attention il ne faut pas mélanger deux choses : le noyau et le système. Cette procédure permet de compiler uniquement le noyau. A la fin tu obtiens une image noyau ou un paquet debian selon la méthode que tu as utilisé (e.g.
On est loin après ça d'avoir un système, il faut ensuite une chaîne de démarrage, un certain nombre de paquets essentiels (par exemple un shell). Si l'idée est de faire une distribution live minimale, il y a des outils pour ça et il n'est même pas utile de compiler son propre noyau (un noyau par défaut fera amplement l'affaire).
https://debian-facile.org/utilisateurs:abdelqahar:tutos:live-build
Bonne chance
make-kpkg).
On est loin après ça d'avoir un système, il faut ensuite une chaîne de démarrage, un certain nombre de paquets essentiels (par exemple un shell). Si l'idée est de faire une distribution live minimale, il y a des outils pour ça et il n'est même pas utile de compiler son propre noyau (un noyau par défaut fera amplement l'affaire).
https://debian-facile.org/utilisateurs:abdelqahar:tutos:live-build
Bonne chance
Romeric
Messages postés
23
Date d'inscription
jeudi 17 novembre 2016
Statut
Membre
Dernière intervention
6 janvier 2018
23 déc. 2017 à 18:15
23 déc. 2017 à 18:15
Salut! Merci pour ton assistance!!! L'idée était de compiler un noyau sauf que le résultat final, j'ignorais complètement à quoi ça ressemblerait. J'ai utilisé la méthode de make-kpkg mais elle n'a pas abouti car il me manquait un paquet : kernel-package. Concernant la deuxième méthode, j'ai pas pu l'utilisé car je n'avais pas assez d'indice pour faire des recherches dessus.
Je pense que le sujet de base est déjà résolu. Je vais le passé en résolu. Encore mille fois merci pour ton assistance.
Je pense que le sujet de base est déjà résolu. Je vais le passé en résolu. Encore mille fois merci pour ton assistance.
mamiemando
Messages postés
33352
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 novembre 2024
7 804
31 déc. 2017 à 17:15
31 déc. 2017 à 17:15
Merci pour ton retour.
Pour
Bonne chance
Pour
make-kpkgil suffit que tu installes avec
apt-getle paquet approprié.
Bonne chance
mamiemando
Messages postés
33352
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 novembre 2024
7 804
4 janv. 2018 à 13:39
4 janv. 2018 à 13:39
A priori il s'agit plutôt d'un paquet
linux-source-*si tu utilises une distribution basée sur debian (comme ubuntu ou mint).
Romeric
Messages postés
23
Date d'inscription
jeudi 17 novembre 2016
Statut
Membre
Dernière intervention
6 janvier 2018
Modifié le 9 janv. 2018 à 09:50
Modifié le 9 janv. 2018 à 09:50
Bonsoir !
J'ai enfin pu lancer la compilation du kernel. Mais elle a été interrompue. Je viens juste de le faire donc je n'ai encore aucun indice pour essayer de corriger l'erreur. Ci-dessous, je vous laisse un aperçu de l'évolution de la compilation jusqu'à son interruption.
//Début du processus de compilation du kernel
J'ai enfin pu lancer la compilation du kernel. Mais elle a été interrompue. Je viens juste de le faire donc je n'ai encore aucun indice pour essayer de corriger l'erreur. Ci-dessous, je vous laisse un aperçu de l'évolution de la compilation jusqu'à son interruption.
//Début du processus de compilation du kernel
exec make kpkg_version=13.018 -f /usr/share/kernel-package/ruleset/minimal.mk debian
== making target debian/stamp/conf/minimal_debian [new prereqs: ]==
This is kernel package version 13.018.
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
cp: impossible d'évaluer '/usr/share/kernel-package/ChangeLog': Aucun fichier ou dossier de ce type
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/1.0./g' \
-e 's/=D/1.0.-10.00.Custom/g' -e 's/=A/amd64/g' \
-e 's/=SA//g' \
-e 's/=I//g' \
-e 's/=CV/1.0/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
-e 's/=R//g' /usr/share/kernel-package/Control > debian/control
test -f debian/changelog || sed -e 's/=V/1.0./g' \
-e 's/=D/1.0.-10.00.Custom/g' -e 's/=A/amd64/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
/usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
test -d ./debian/stamp || mkdir debian/stamp
make -f debian/rules debian/stamp/conf/kernel-conf
make[1] : on entre dans le répertoire « /home/user/Téléchargements/linuxx »
== making target debian/stamp/conf/kernel-conf [new prereqs: ]==
make ARCH=x86_64 \
oldconfig;
make[2] : on entre dans le répertoire « /home/user/Téléchargements/linuxx »
make[2]: *** Aucune règle pour fabriquer la cible « oldconfig ». Arrêt.
make[2] : on quitte le répertoire « /home/user/Téléchargements/linuxx »
debian/ruleset/targets/common.mk:194 : la recette pour la cible « debian/stamp/conf/kernel-conf » a échouée
make[1]: *** [debian/stamp/conf/kernel-conf] Erreur 2
make[1] : on quitte le répertoire « /home/user/Téléchargements/linuxx »
/usr/share/kernel-package/ruleset/minimal.mk:93 : la recette pour la cible « debian/stamp/conf/minimal_debian » a échouée
make: *** [debian/stamp/conf/minimal_debian] Erreur 2
Failed to create a ./debian directory: at /usr/bin/make-kpkg line 970.
Romeric
Messages postés
23
Date d'inscription
jeudi 17 novembre 2016
Statut
Membre
Dernière intervention
6 janvier 2018
Modifié le 9 janv. 2018 à 09:52
Modifié le 9 janv. 2018 à 09:52
voilà, c'est tout . . .
J'ai dû séparer le contenu de mon message en deux, il ne tenait pas dans un seul message (problème lors de la validation).
J'ai essayé de compiler de même la version 4.14 pour voir si le même problème se présentera mais le comportement était différent. Sauf que j'ai pas eu l'impression que ce se soit bien passé aussi. Voici une copie des différents messages reçues lors de la compilation :
// Début du processus de la compilation du kernel 4.14
Je suis impatient d'avoir votre avis sur ce problème. Merci.
J'ai dû séparer le contenu de mon message en deux, il ne tenait pas dans un seul message (problème lors de la validation).
J'ai essayé de compiler de même la version 4.14 pour voir si le même problème se présentera mais le comportement était différent. Sauf que j'ai pas eu l'impression que ce se soit bien passé aussi. Voici une copie des différents messages reçues lors de la compilation :
// Début du processus de la compilation du kernel 4.14
exec make kpkg_version=13.018 -f /usr/share/kernel-package/ruleset/minimal.mk debian
== making target debian/stamp/conf/minimal_debian [new prereqs: ]==
This is kernel package version 13.018.
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
cp: impossible d'évaluer '/usr/share/kernel-package/ChangeLog': Aucun fichier ou dossier de ce type
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/4.14.2/g' \
-e 's/=D/4.14.2-10.00.Custom/g' -e 's/=A/amd64/g' \
-e 's/=SA//g' \
-e 's/=I//g' \
-e 's/=CV/4.14/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
-e 's/=R//g' /usr/share/kernel-package/Control > debian/control
test -f debian/changelog || sed -e 's/=V/4.14.2/g' \
-e 's/=D/4.14.2-10.00.Custom/g' -e 's/=A/amd64/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
/usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
test -d ./debian/stamp || mkdir debian/stamp
make -f debian/rules debian/stamp/conf/kernel-conf
make[1] : on entre dans le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
== making target debian/stamp/conf/kernel-conf [new prereqs: ]==
make ARCH=x86_64 \
oldconfig;
make[2] : on entre dans le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
HOSTCC scripts/basic/bin2c
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
make[2] : on quitte le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
make ARCH=x86_64 prepare
make[2] : on entre dans le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
scripts/kconfig/conf --silentoldconfig Kconfig
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_64.h
HYPERCALLS arch/x86/entry/syscalls/../../include/generated/asm/xen-hypercalls.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/x86/include/generated/asm/clkdev.h
WRAP arch/x86/include/generated/asm/dma-contiguous.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mm-arch-hooks.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CC arch/x86/purgatory/purgatory.o
AS arch/x86/purgatory/stack.o
AS arch/x86/purgatory/setup-x86_64.o
CC arch/x86/purgatory/sha256.o
AS arch/x86/purgatory/entry64.o
CC arch/x86/purgatory/string.o
LD arch/x86/purgatory/purgatory.ro
BIN2C arch/x86/purgatory/kexec-purgatory.c
CHK include/generated/timeconst.h
UPD include/generated/timeconst.h
CC kernel/bounds.s
CHK include/generated/bounds.h
UPD include/generated/bounds.h
GEN scripts/gdb/linux/constants.py
CC arch/x86/kernel/asm-offsets.s
CHK include/generated/asm-offsets.h
UPD include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
make[2] : on quitte le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
echo done > debian/stamp/conf/kernel-conf
make[1] : on quitte le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
make -f debian/rules debian/stamp/conf/full-changelog
make[1] : on entre dans le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
== making target debian/stamp/conf/full-changelog [new prereqs: ]==
for file in ChangeLog Control Control.bin86 config templates.in rules; do \
cp -f /usr/share/kernel-package/$file ./debian/; \
done
cp: impossible d'évaluer '/usr/share/kernel-package/ChangeLog': Aucun fichier ou dossier de ce type
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
sed -e 's/=V/4.14.2/g' \
-e 's/=D/4.14.2-10.00.Custom/g' -e 's/=A/amd64/g' \
-e 's/=SA//g' \
-e 's/=I//g' \
-e 's/=CV/4.14/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
-e 's/=R//g' /usr/share/kernel-package/Control > debian/control
sed -e 's/=V/4.14.2/g' -e 's/=D/4.14.2-10.00.Custom/g' \
-e 's/=A/amd64/g' -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/linux/g' -e 's/=B/x86_64/g' \
/usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
make -f debian/rules debian/stamp/conf/kernel-conf
make[2] : on entre dans le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
make[2]: « debian/stamp/conf/kernel-conf » est à jour.
make[2] : on quitte le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
make[1] : on quitte le répertoire « /home/user/Téléchargements/linux-4.14.2/linux-4.14.2 »
echo done > debian/stamp/conf/minimal_debian
exec debian/rules
nothing to be done.
Je suis impatient d'avoir votre avis sur ce problème. Merci.
mamiemando
Messages postés
33352
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 novembre 2024
7 804
9 janv. 2018 à 09:57
9 janv. 2018 à 09:57
Bonjour,
Tu n'as pas a télécharger les sources de noyau "à la main" dans
De plus ton erreur de compilation semble provenir du fait que tu lance
Si tu veux absolument compiler les sources que tu as récupérées, suis ce tutoriel :
https://www.mistra.fr/tutoriel-linux-compiler.html
Bonne chance
Tu n'as pas a télécharger les sources de noyau "à la main" dans
/home/user/Téléchargements/linuxxcomme tu sembles l'avoir fait. Si tu installes un paquet
linux-sourcele noyau correspondant sera dans
/usr/src/.
De plus ton erreur de compilation semble provenir du fait que tu lance
make oldconfig(visiblement indirectement, par l'intermédiaire de make-kpgk). Mais dans ce cas, il faut que le
Makefilede tes sources de noyau propose cette cible, ce qui ne semble pas être le cas. Je pense que c'est lié au fait que tu n'as pas pris des sources de noyaux prévues pour être compilées avec
make-kpkg. Cette commande est prévue pour fonctionner avec des sources fournies par un paquet
linux-source.
Si tu veux absolument compiler les sources que tu as récupérées, suis ce tutoriel :
https://www.mistra.fr/tutoriel-linux-compiler.html
Bonne chance
19 déc. 2017 à 11:56