
Ich folgeDasum zu lernen, wie man den Kernel kompiliert. Ich habe
apt-get source linux-image-$(uname -r)
um den Quellcode des Linux-Kernels herunterzuladen, den ich derzeit verwende.
Nach dem Ausführen des obigen Befehls wurden die folgenden Dateien (und Verzeichnisse) heruntergeladen.
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 $
ImDasselbeSeite wird erwähnt:
Das Erstellen des Kernels ist ganz einfach. Wechseln Sie in das Stammverzeichnis des Kernel-Quellcodes und geben Sie dann die folgenden Befehle ein:
Ich bin mir jedoch nicht sicher, welches die „Wurzel des Kernel-Quellcodebaums“ ist.
Ist es das aktuelle Verzeichnis (in dem ich apt-get source ...
die oben aufgelisteten Dateien ausgeführt habe und in dem sie sich befinden)?
Oder ist es das Verzeichnis:
drwxrwxr-x 27 sps sps 4096 Oct 16 03:10 linux-lts-vivid-3.19.0
oder soll ich das Tarball extrahieren
-rw-rw-r-- 1 sps sps 123115155 May 6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
Ausgabe für uname -r
:
user $ uname -r
3.19.0-30-generic
user $
Antwort1
Von demDebian Wiki:
Quellpaketestellt Ihnen alle notwendigen Dateien zum Kompilieren oder anderweitigen Erstellen der gewünschten Software zur Verfügung.
Es besteht in seiner einfachsten Form aus drei Dateien:
Das Upstream-Tarball mit.tar.gzEnde
Eine Beschreibungsdatei mit der Endung .dsc. Sie enthält den Namen des Pakets, sowohl im Dateinamen als auch im Inhalt (nach dem Schlüsselwort Source:).
Ein Tarball mit allen an der Upstream-Quelle vorgenommenen Änderungen sowie allen für das Debian-Paket erstellten Dateien.
- Dies hat eine.debian.tar.gz(Quellformat: 3.0)
- oder ein.diff.gzEnde (Quellformat: 1.0)
Bei Ubuntu ist es ganz dasselbe, und in Ihrem Fall:
- "linux-lts-vivid-3.19.0": der eigentliche Kernel, gepatcht ausgehend vom Upstream-Tarball „linux-lts-vivid_3.19.0.orig.tar.gz“ mit den in „linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz“ aufgeführten Änderungen;
- „linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz“: ein Tarball mit allen an der Upstream-Quelle vorgenommenen Änderungen sowie allen für das Debian-Paket erstellten Dateien;
- „linux-lts-vivid_3.19.0-30.34~14.04.1.dsc“: eine Beschreibungsdatei mit der Endung „.dsc“. Sie enthält den Namen des Pakets, sowohl im Dateinamen als auch im Inhalt (nach dem Schlüsselwort „Source:“).
- „linux-lts-vivid_3.19.0.orig.tar.gz“: das Upstream-Tarball mit der Endung „.tar.gz“ (beachten Sie, dass es meiner Erfahrung nach nicht immer eine „.tar.gz“-Datei ist, sondern leicht unterschiedliche Formate haben kann, wie z. B. „.tar.xz“);
Wenn Sie ausführen apt-get source linux-image-$(uname -r)
, wird das Upstream-Tarball automatisch mit den in „linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz“ in „linux-lts-vivid-3.19.0“ aufgeführten Änderungen gepatcht:
% 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
# ...
Antwort2
Die Wurzel Ihres Kernelbaums ist das Verzeichnis linux-lts-vivid-3.19.0
.
Zu den anderen Dateien:
Im Tarball linux-lts-vivid_3.19.0.orig.tar.gz
finden Sie den „Vanilla“-Kernel, wie er von den Upstream-Entwicklern veröffentlicht wurde. Zu diesem Kernel haben die Ubuntu-Entwickler Patches, Treiber und Änderungen hinzugefügt, die in der Datei gesammelt sind, die diff
im Format komprimiert ist linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
.
Antwort3
Hmmm. Wenn Sie den Befehl ausführen
apt-get source linux-image-`uname -r`
der Befehl sollteautomatischExtrahieren Sie die Quell-Tarballs und patchen Sie sie, um ein Verzeichnis zu erstellen, das nach Ihrem Kernel benannt ist. In Ihrem Fall sieht es so aus, als ob es „linux-lts-vivid-3.19.0“ heißt – es steht in Ihrer Verzeichnisliste.
Dies ist also das Quellverzeichnis. Sie sollten Folgendes ausführen:
cd linux-lts-vivid-3.19.0
und folgen Sie dann weiter den Anweisungen