Debian11加载模块batman-adv.ko的时候报错:Unknown symbol in module

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这个目录,或者库文件拷贝到相应的目录下

这两个问题都涉及到了与 Perl 相关的模块依赖冲突。 对于第一个问题,错误消息指出 `perl-DBD-SQLite` 模块需要 Perl 的版本为 5.26,但系统中没有可用的符合此要求的 Perl 模块。类似地,第二个问题中的 `perl-DBI` 模块也需要 Perl 的版本为 5.26。 要解决这些问题,您可以尝试以下步骤: 1. 检查系统中是否已经安装了 Perl。您可以运行以下命令来验证 Perl 的安装情况: ``` perl -v ``` 如果 Perl 未安装,请使用适当的命令进行安装。根据您使用的操作系统,可能是: ``` sudo apt-get install perl ``` 或 ``` sudo yum install perl ``` 2. 如果 Perl 已经安装,但版本不符合要求,您可以尝试使用适当的包管理器来更新 Perl 到所需的版本。具体命令取决于您使用的操作系统和包管理器。例如,如果您使用的是 CentOS/RHEL 系统,并且使用的是 yum 包管理器,可以运行以下命令: ``` sudo yum update perl ``` 如果您使用的是 Ubuntu/Debian 系统,并且使用的是 apt-get 包管理器,可以运行以下命令: ``` sudo apt-get install perl ``` 3. 如果更新 Perl 不可行或者不适用于您的情况,请考虑使用其他方法来安装所需的 Perl 模块。您可以尝试使用 CPAN 或其他 Perl 模块管理工具来安装特定版本的模块。具体步骤取决于您使用的工具和模块。 至于第二个问题中提到的 `new-kernel-pkg`,根据错误消息,看起来这个包在系统中无法找到。这可能是因为您使用的包管理器不支持或没有安装该包。请确保您使用的是正确的包管理器,并且已经正确安装了该包。 如果问题仍然存在,请提供更多关于您使用的操作系统、包管理器和其他相关信息,以便我能够更好地帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值