web-dev-qa-db-fra.com

Où / quelle est la source réelle du noyau?

Je suis this pour apprendre à compiler le noyau. j'ai utilisé

apt-get source linux-image-$(uname -r)

télécharger le code source du noyau Linux que j’utilise couramment.

Après avoir exécuté la commande ci-dessus, les fichiers suivants (et les répertoires) ont été téléchargés.

user $ ls -l
total 130972
drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0
-rw-rw-r--  1 sps sps  10980684 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
-rw-rw-r--  1 sps sps      7396 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.dsc
-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
user $ 

Dans la même page, il est mentionné:

Construire le noyau est assez facile. Changez votre répertoire de travail à la racine de l’arborescence du noyau, puis tapez les commandes suivantes:

Mais je ne sais pas quelle est la "racine de l’arbre source du noyau".

Est-ce le répertoire actuel (où j'ai exécuté apt-get source ... et où se trouvent les fichiers ci-dessus)?

Ou est-ce le répertoire:

drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0

ou dois-je extraire l'archive

-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz

Sortie pour uname -r:

user $ uname -r
3.19.0-30-generic
user $ 
8
sps

Depuis le wiki de Debian :

Les packages sources vous fournissent tous les fichiers nécessaires pour compiler ou créer le logiciel souhaité.

Il consiste, dans sa forme la plus simple, en trois fichiers:

  • La archive amont avec . Tar.gz se terminant

  • Un fichier de description avec .dsc se terminant. Il contient le nom du paquet, à la fois dans son nom de fichier et son contenu (après le mot-clé Source:).

  • Une archive avec toutes les modifications apportées à la source en amont, ainsi que tous les fichiers créés pour le paquet Debian.

    • Cela a un . Debian.tar.gz (format source: 3.0)
    • ou une fin . diff.gz (format source: 1.0)

Il en va de même pour Ubuntu et dans votre cas:

  • "linux-lts-vivid-3.19.0": le noyau actuel , corrigé à partir de l'archive en amont "linux-lts-vivid_3.19.0.orig .tar.gz "avec les modifications répertoriées dans" linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz ";
  • "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz": une archive contenant toutes les modifications apportées à la source en amont, ainsi que tous les fichiers créés pour le paquet Debian;
  • "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.dsc": un fichier de description ".dsc" se terminant. Il contient le nom du paquet, à la fois dans son nom de fichier et son contenu (après le mot-clé Source:);
  • "linux-lts-vivid_3.19.0.orig.tar.gz": l'archive amont avec la fin ".tar.gz" (attention, dans mon expérience, ce n'est pas toujours un fichier ".tar.gz", il peut être légèrement différents formats, tels que ".tar.xz");

Lorsque vous exécutez apt-get source linux-image-$(uname -r), l'archive amont est automatiquement corrigée des modifications répertoriées dans "linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz" dans "linux-lts-vivid-3.19.0 ":

% apt-get source linux-image-$(uname -r)
# ...
dpkg-source: info: extracting linux in linux-3.19.0
dpkg-source: info: unpacking linux_3.19.0.orig.tar.gz
dpkg-source: info: applying linux_3.19.0-30.34.diff.gz
# ...
8
kos

La racine de votre arborescence de noyaux est le répertoire linux-lts-vivid-3.19.0.

A propos des autres fichiers:

Dans l'archive linux-lts-vivid_3.19.0.orig.tar.gz, vous pouvez trouver le noyau "Vanilla", tel que publié en amont; les développeurs Ubuntu ont ajouté à ce noyau des correctifs, des pilotes, des modifications apportées aux éléments collectés dans le fichier diff compressé dans linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz.

4
Rmano

Hmmm. Lorsque vous exécutez la commande

apt-get source linux-image-`uname -r`

la commande devrait automatiquement extraire les archives de la source et les corriger pour créer un répertoire appelé après votre noyau. Dans votre cas, on dirait qu'il s'appelle 'linux-lts-vivid-3.19.0' - il se trouve dans votre liste de répertoires.

Donc, c’est le répertoire source, vous devriez lancer:

cd linux-lts-vivid-3.19.0

puis continuez à suivre les instructions

4
Nick Veitch