我通过 SSH 连接到运行 Linux 内核 3.11.1 的 PC:
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
我的目的:我想安装3.11.1版本相应的Linux头文件来为其编译内核模块。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/系统映射*内核版本*
- /启动/配置-内核版本
- /lib/模块/内核版本/
- 看这里详细说明。
安装的内核和包管理器默认发送的相应标头apt-get(版本 3.2.0-4-486)。
- 通过更新 grub更新grub。
现在,我可以编译并使用所需的 Linux 内核模块了。感谢克里克为我指明了正确的方向。 :)
答案3
答案4
apt-get install linux-headers
应该为您提供所有已安装内核的标头