
Я подключен через SSH к ПК под управлением ядра Linux 3.11.1:
root@alix:~# uname -r
3.11.1
как узнать, какой пакет установил этот конкретный файл или версию ядра?
Я пытался
root@alix:/boot# dpkg -S vmlinuz-3.11.1
dpkg-query: no path found matching pattern *vmlinuz-3.11.1*
Другие установленные версии ядра можно найти с помощьюdpkg-S:
root@alix:/boot# dpkg -S vmlinuz-3.2.23
linux-image-3.2.23-ath5kmod: /boot/vmlinuz-3.2.23-ath5kmod
Моя цель: я хотел бы установить соответствующие заголовочные файлы Linux для версии 3.11.1, чтобы скомпилировать для нее модуль ядра.apt-cache поиск linux-headersперечислены 15 различных версий заголовков, но не версия для 3.11.1.
Большое спасибо.
решение1
Вы можете вывести список всех установленных пакетов dpkg -l
и отфильтровать результаты по grep
пакетам ядра
dpkg -l | grep 'linux-image'
dpkg -l | grep 'linux-image' | grep '3.11'
Чтобы найти пакет заголовков ядра для вашего работающего ядра:
apt-cache search linux-headers-`uname -r`
решение2
Моя первоначальная проблема заключалась в том, что для установленного в данный момент ядра Linux (3.11.1) не было подходящих заголовочных файлов ядра.
В конце концов, я решил эту проблему в четыре шага:
- Удалил ядра, которые были установлены черезapt-get.
Удалены пользовательские ядра:
- /boot/vmlinuz*ВЕРСИЯ-ЯДРА*
- /boot/initrd*ВЕРСИЯ-ЯДРА*
- /boot/System-map*ВЕРСИЯ-ЯДРА*
- /boot/config-ВЕРСИЯ ЯДРА
- /библиотека/модулей/ВЕРСИЯ ЯДРА/
- Видетьздесьдля подробного описания.
Установленное ядроисоответствующие заголовки, которые поставляются по умолчанию менеджером пакетовapt-get(версия 3.2.0-4-486).
- Обновить grub черезобновление-grub.
Теперь я могу скомпилировать и использовать требуемый модуль ядра Linux. Спасибо Creek за то, что указал мне правильное направление. :)
решение3
Использоватьdlocate(1)команда отdlocateупаковка:
$ 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
принимает имя файла в качестве аргумента и возвращает имя пакета, который владеет/предоставляет данный файл.
решение4
apt-get install linux-headers
должен предоставить вам заголовки для всех установленных ядер