0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linux内核插入模块时 Unknown symbol in module

鸿汉禹网络科技 2023-04-06 15:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

编译驱动的时候碰了insmod:errorinserting'./igb.ko':-1Unknownsymbolinmodule的问题,在网上看了下,说是查看dmesg|tail看输出信息中的Unknownsymbol,加载上这些模块就好。我的输出信息是:

1

2

3

4

5

[3548.357465]igb:Unknownsymboldca_remove_requester

[3548.358569]igb:Unknownsymboldca_add_requester

[3548.358814]igb:Unknownsymboldca_unregister_notify

[3548.358817]igb:Unknownsymboldca_register_notify

[3548.358924]igb:Unknownsymboldca3_get_tag

但是我在系统中查看

dca_remove_requester

dca_add_requester

dca_unregister_notify

dca_register_notify

dca3_get_tag

5个模块是没有找到,细细一想,估计是由于模块依赖的其他模块没有加载导致的。

直接用:modinfo./igb.ko|grepdepend找模块的依赖,结果如下,

depends:dca

然后再执行:

localhost:/opt/igb/igb-4.0.17/src# modprobedca

localhost:/opt/igb/igb-4.0.17/src#insmod./igb.ko

附:《模块加载常见错误》

insmod:errorinserting'./igb.ko':-1Unknownsymbolinmodule--->依赖的模块没有加载,需要先加载depends中列出的模块

insmod:errorinserting'./igb.ko':-1Operationnotpermitted--->这当然是你用普通用户执行才出现的错误咯

insmod:errorinserting'./igb.ko':-1Invalidmoduleformat--->模块的vermagic(就是编译内核的环境的内核版本)和当前系统不相匹配

insmod:errorinserting'./aacraid.ko':-1Nosuchdevice--->模块是对的,只是没有相应的设备

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2822

    浏览量

    52797
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217973
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux内核模块的加载机制

    Linux内核模块通常是.ko文件,也就是Kernel Object的缩写。这些文件是ELF格式的,但和用户空间的程序不同,它们包含的是特定于内核的信息。比如,模块的元数据,像作者
    发表于 11-25 06:59

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
    的头像 发表于 11-21 13:25 655次阅读
    【迅为工业RK3568稳定可靠】itop-3568开发板<b class='flag-5'>Linux</b>驱动开发实战:RK3568<b class='flag-5'>内核模块</b>符号导出详解

    【OK3506-S12Mini试用评测】编译你的第一个内核模块

    OK3506 开发板内核模块编译与加载 一、前言 在嵌入式 Linux 系统开发中,内核模块(Kernel Module) 是一种可动态加载到内核
    发表于 10-24 21:00

    Linux内核参数调优方案

    在高并发微服务环境中,网络性能往往成为K8s集群的瓶颈。本文将深入探讨如何通过精细化的Linux内核参数调优,让你的K8s节点网络性能提升30%以上。
    的头像 发表于 08-06 17:50 707次阅读

    linux环境下 软件启动失败怎么解决?

    /x86_64-linux-gnu/gio/modules/libgiognomeproxy.so: undefined symbol: g_uri_is_valid Failed to load module
    发表于 06-23 07:37

    如何配置和验证Linux内核参数

    Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要。合理的参数调整可以显著提升网络性能、系统稳定性及资源利用率。然而,仅仅修改参数是不够的,如何验证这些参数是否生效同样关键。
    的头像 发表于 05-29 17:40 785次阅读

    新品 | Module LLM Kit,离线大语言模型推理模块套装

    ●●●PART.01产品简介ModuleLLMKit是一款专注于离线AI推理与数据通信接口应用的智能模块套件,整合了ModuleLLM与Module13.2LLMMate模块,满足多场景下的离线AI
    的头像 发表于 03-28 18:49 893次阅读
    新品 | <b class='flag-5'>Module</b> LLM Kit,离线大语言模型推理<b class='flag-5'>模块</b>套装

    树莓派4 性能大比拼:标准Linux与实时Linux 4.19内核的延迟测试

    引言本文是对我之前关于RaspberryPi3同一主题的帖子的更新。与之前的帖子一样,我使用的是随Raspbian镜像提供的标准内核,以及应用了RT补丁的相似内核版本。对于实时版,我
    的头像 发表于 03-25 09:39 656次阅读
    树莓派4 性能大比拼:标准<b class='flag-5'>Linux</b>与实时<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>内核</b>的延迟测试

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之带参数的驱动模块

    命令行或配置文件进行配置。驱动模块参数提供了一种动态配置和调整驱动行为的方式。 在Linux内核中,驱动模块参数通常使用module_par
    发表于 03-13 09:52

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动

    使用__attribute__((alias(#init_fn)))将init_module()函数与初始化函数进行关联。 在Linux内核加载模块时,会调用init_
    发表于 03-12 10:35

    飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之带参数的驱动模块

    命令行或配置文件进行配置。驱动模块参数提供了一种动态配置和调整驱动行为的方式。在Linux内核中,驱动模块参数通常使用module_para
    发表于 03-12 10:34

    飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动

    (#init_fn)))将init_module()函数与初始化函数进行关联。在Linux内核加载模块时,会调用init_module()函
    发表于 03-12 10:15

    腾讯云内核团队修复Linux关键Bug

    腾讯云操作系统(Tencent OS)内核团队近日在Linux社区取得了显著成果。他们提交的两项改进方案,成功解决了自2021年以来一直困扰众多一线厂商,并在近期让多个Linux顶级
    的头像 发表于 12-31 10:58 915次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    所以每个模块都有对应的维护人员。维护人员的工作就是审核人们提交的代码是否正确,如果没有问题,就会合并到主分支上。这样就会使linux内核不断完善和更新。接下来就是芯片原厂例如恩智浦,开发人员会不定期在
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    所以每个模块都有对应的维护人员。维护人员的工作就是审核人们提交的代码是否正确,如果没有问题,就会合并到主分支上。这样就会使linux内核不断完善和更新。接下来就是芯片原厂例如恩智浦,开发人员会不定期在
    发表于 12-13 09:03