/lib/modules//build丢失

 

问题背景:hook 系统调用 在加载模块时error. 原因应该是内核4.X版本太高,内核代码有更改。降级系统后发现没有3.16 -generic 目录

遇到这个错误,主要是没安装内核安装包(类似于kernel-devel的名字)
但是这种情况下一般有两种情况:
有安装内核开发包,但是因为各种各样的原因没有识别。 首先到/lib/modules/4.4.0-53-generic/(这里的版本号需要根据错误提示进入对应目录)目录下,查看是否有build文件:
a.如果有的话,那么则是链接出错,ls -l命令查看build链接文件是否存在(如果链接文件标红则说明链接文件不存在了),去对应/usr/src目录下查看链接文件是否存在,一般都是链接这个目录下对应内核版本,如果存在,则重新链接,如果不存在则进入情况2(没有安装kernel开发包);
b.如果没有的话,则参照步骤a,查找源链接文件是否存在。
没有安全内核开发包,则直接使用系统版本管理工具下载对应kernel-devel即可。 譬如Ubuntu是apt-get,centos是rpm,suse是zypper
————————————————
版权声明:本文为CSDN博主「SUKI547」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SUKI547/article/details/104817280/

降级系统:

sudo apt-get install linux-image-extra-3.16.0-43-generic
#若apt-get太慢可下载 apt-fast
#检查是否安装成功
dpkg -l | grep 3.16.0-43-generic
#更改启动项
sudo vim /etc/default/grub

GRUB_DEFAULT=0 改为
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.16.0-43-generic"
#保存退出,更新启动项
sudo update-grub
#重启
reboot
#检查
uname -r

安装linux 内核:

sudo apt-get install linux-kernel-headers kernel-package
or
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)

https://blog.csdn.net/SUKI547/article/details/104817280/?utm_term=linux%E6%B2%A1%E6%9C%89build%E6%96%87%E4%BB%B6&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-2-104817280&spm=3001.4430

上一篇:苍了天,Debug 出了Bug


下一篇:Centos 7 升级内核