
Ich bin über SSH mit einem PC verbunden, auf dem Linux-Kernel 3.11.1 läuft:
root@alix:~# uname -r
3.11.1
wie kann ich herausfinden, welches Paket diese bestimmte Datei bzw. Kernelversion installiert hat?
Ich habe es versucht
root@alix:/boot# dpkg -S vmlinuz-3.11.1
dpkg-query: no path found matching pattern *vmlinuz-3.11.1*
Andere installierte Kernel-Versionen finden Sie unterdpkg -S:
root@alix:/boot# dpkg -S vmlinuz-3.2.23
linux-image-3.2.23-ath5kmod: /boot/vmlinuz-3.2.23-ath5kmod
Mein Anliegen: Ich möchte die entsprechenden Linux-Header für die Version 3.11.1 installieren um ein Kernelmodul dafür zu kompilieren.Apt-Cache-Suche Linux-Headerlistet 15 verschiedene Header-Versionen auf, aber nicht die für 3.11.1.
Vielen Dank.
Antwort1
Sie können alle installierten Pakete mit auflisten und die Ergebnisse mit für die Kernel-Pakete dpkg -l
filtern.grep
dpkg -l | grep 'linux-image'
dpkg -l | grep 'linux-image' | grep '3.11'
So finden Sie das Kernel-Header-Paket für Ihren laufenden Kernel:
apt-cache search linux-headers-`uname -r`
Antwort2
Mein ursprüngliches Problem war, dass für den aktuell installierten Linux-Kernel (3.11.1) keine passenden Kernel-Header verfügbar waren.
Schließlich habe ich dieses Problem in vier Schritten gelöst:
- Die Kernel wurden entfernt, die überapt-get.
Benutzerdefinierte Kernel entfernt:
- /boot/vmlinuz*KERNEL-VERSION*
- /boot/initrd*KERNEL-VERSION*
- /boot/System-map*KERNEL-VERSION*
- /boot/config-KERNELVERSION
- /lib/Module/KERNELVERSION/
- SehenHierfür eine detaillierte Beschreibung.
Installierter KernelUndentsprechende Header, die standardmäßig vom Paketmanager mitgeliefert werdenapt-get(es ist Version 3.2.0-4-486).
- Aktualisieren Sie Grub überUpdate-Grub.
Jetzt kann ich das erforderliche Linux-Kernelmodul kompilieren und verwenden. Danke, Creek, für den Hinweis. :)
Antwort3
Verwendendlocate(1)Befehl vonlokalisierenPaket:
$ dlocate /boot/vmlinuz-*
linux-image-4.9.0-6-amd64: /boot/vmlinuz-4.9.0-6-amd64
linux-image-4.9.0-7-amd64: /boot/vmlinuz-4.9.0-7-amd64
dlocate
verwendet den Dateinamen als Argument und gibt den Namen des Pakets zurück, das die angegebene Datei besitzt/bereitstellt.
Antwort4
apt-get install linux-headers
sollte Ihnen die Header für alle installierten Kernel liefern