最近在编译部署内核模块的时候。
Makefile报错:
找不到/lib/modules/**内核版本号**/build
。
经过一番搜索,发现:
/lib/modules/内核版本号/build
和/lib/modules/内核版本号/source
。应该是指向编译内核时的源码工程的软连接。
当前内核版本的名称可以通过如下指令获取:
uname -r
对于使用比如Ubuntu的发行版。包管理器里可能包含开发用的源码和头文件包。
可以尝试安装:
sudo apt-get install linux-headers-$(uname -r)
或者类似的指令。
如果是嵌入式Linux,自己裁剪的内核。
可以将Linux Kernel的开发工程整个复制到嵌入式的文件系统中。然后建立软连接将build
和source
指向kernel工程目录。
注意:
只有源码是不够的,我复制了未被编译过的源码包,被报错找不到好像是autoconf.h
这些配置内核生成的文件。所以说应该是直接把编译生成当前镜像的工程源码包复制下来就好。
最后编译的时候说我有需要的内核配置选项没开。因为我没时间折腾,而这个内核模块也不是必需的。就到此为止了。 有新增后续再更。