Ich plane, einige Gerätetreiber zu schreiben, und ich muss die Linux-Kernelquelle beschaffen. Meine Linux-Kernel-Version ist 3.2.0-23-generic-pae und ich habe das Image von diesem heruntergeladen . In vielen der Artikel, die ich gelesen habe, heißt es, dass ich den gesamten Kernelbaum haben muss, um neue Module einzufügen.
Reicht es aus, wenn ich dieses Bild herunterlade und es in den usr/src/
Ordner einfüge oder muss ich etwas anderes tun?
Antworten:
Dies wird die Quelle des Aktienkerns erhalten:
Sie können überprüfen, welche Version des Kernels wie folgt ausgeführt wird:
Welches druckt so etwas wie:
Eine Liste der aktuellen Quellpaketversionen, die auf Ihrem System verfügbar sind, finden Sie unter:
So rufen Sie die Upstream-Version des Kernels ab:
Im obigen Link ist 'trusty' der Codename für die Ubuntu-Version. Den Codenamen für die von Ihnen installierte Ubuntu-Version finden Sie unter:
quelle
apt-get source
nichtapt-get install
. Dann endet der Quelltextbaum in Ihrem aktuellen Pfad .ist der einfachste Weg. Der Quellcode wird aus Ihrem Repository heruntergeladen - und entspricht der von Ihnen ausgeführten Version (vorausgesetzt, Sie haben ihn noch nicht angepasst).
Wenn Sie jedoch herausfinden möchten, wo sich die Quelle befindet, können Sie Folgendes ausführen:
Suchen Sie nach dem Attribut 'Vcs-' (Versionskontrollsystem). Es wird normalerweise ein Git (Vcs-Git) oder ein Quecksilber-Repository sein.
Hinweis - Diese Befehle funktionieren mit jedem Paket. Ersetzen Sie einfach 'linux' durch das Paket, an dem Sie interessiert sind. Beachten Sie auch, dass 'apt-get source' keinen sudo-Zugriff benötigt und die Quelle in Ihrem aktuellen Verzeichnis ablegt.
quelle
/usr/src
- nicht die vollständige Kernel-Quelle - auf Ubuntu 16.04Laden Sie die Quelle direkt vom Launchpad herunter
Seltsamerweise empfiehlt jeder,
apt-get source
was die meiste Zeit nicht funktioniert, wenn Sie nach einer bestimmten Kernelversion suchen:Angenommen, Sie benötigen eine Kernel-Quelle für 3.19.0-58: Sie
apt-get source linux-image-3.19.0-58-generic
erhalten die Quelle für den neuesten Kernel der Serie: 3.19.0-80 in diesem Fall. Dies ist nicht das, wonach Sie gefragt haben.Sie haben also zwei Möglichkeiten:
1) Gib auf, installiere den Kernel 3.19.0-80 und benutze
apt-get source
2) Holen Sie sich die Quelle direkt vom Launchpad:
Google- Website: launchpad.net "linux-image-3.19.0-58-generic"
Das sollte Ihnen die Launchpad Package Page für diese Version geben.
Scrollen Sie nach unten und klicken Sie auf den Link "Quelle:". Sie befinden sich jetzt auf der Seite "Paketquelle" .
Blättern Sie nach unten und herunterladen
.tar.gz
,.diff.gz
,.dsc
Dateien:dpkg-source -x *.dsc
Anmerkungen:
quelle
Wählen Sie einfach eine aus:
Wenn Sie aufgefordert werden, einige Quell-URLs in Ihrer Datei anzugeben
sources.list
, bearbeiten Sie Ihre/etc/apt/sources.list
Datei und kommentieren Sie die gewünschtedeb-src
Zeile aus, z. B. (wenn Sie Xenial ausführen):Wenn Sie die
#
letzte Zeile entfernen , können Quell-Repositorys heruntergeladen werden, einschließlich Kernel-Quellen.Bemerkungen:
apt-get
.4.4.0-75-generic
zum Beispiel)./usr/src/linux-source-4.4.0/
.quelle