Debian11加载模块batman-adv.ko的时候报错:Unknown symbol in module
出现这个的原因是缺少依赖模块
使用modinfo xx.ko | grep depends 可以查看依赖的模块
然后使用 modprobe xx 来加载缺少的依赖模块
最后在使用insmod batman-adv.ko就可以成功了
Linux modprobe命令用于自动处理可载入模块。
modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
Linux depmod命令用于分析可载入模块的相依性。 depmod(depend
module)可检测模块的相依性,供modprobe在安装模块时使用
之前在batman-adv文件夹下make install出现很多警告的Unknown symbol in module的问题,也是这个原因,只不过只是警告,就不一一加载了
make 和make install的区别
make的作用是开始进行源代码编译,以及一些功能的提供,这些功能由它的Makefile设置文件提供相磁的功能
make install如果原始代码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。如果用bin_PROGRAMS宏的话,程序会被安装至/usr/local/bin这个目录,或者库文件拷贝到相应的目录下