问题标签 [insmod]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - insmod: '错误...无效的模块格式' - 交叉编译用法
我想解决这个错误,显然是在更新和构建内核并使用以前的 Linux 设备驱动程序模块时发生的(我将一个或两个参数设置更改为内核,编译并构建并获取新的内核映像,为此问题开始)。
但是,在构建新的模块设备驱动程序时,我不断收到错误消息:
[nn.nnn]'module.ko':版本魔法'4.9.0-00011-ge82bfab-dirty SMP mod_unload aarch64'应该是'4.9.0 SMP mod_unload aarch64'
几点评论:
- 检查了以前的帖子相关问题(insmod error: inserting './hello.ko': -1 Invalid module format"),但它使用 'uname -a' 这对我没有帮助,因为我使用我的 Linux 操作系统作为编译环境到其他操作系统(嵌入式) - 交叉编译使用。
- 我在内核源代码树(内核下载包)中搜索了版本字符串,但只找到了自动生成字符串的位置(在../include/generated/utsrelease.h)
- 内核的 Makefile(我使用的是 uImage:u-boot Legacy uImage,Linux / OS Kernel)和 module.ko 使用相同的 CROSS_COMPILE 路径。
我在这里缺少什么?
linux - 我们可以在 /proc/kallsyms 中添加一个条目吗?
我想为foo
我的程序添加一个功能my_pgm.c
。我用它extern foo();
当我运行 Makefile 运行时,它运行my_pgm.c
良好,但由于它在运行时不存在,/proc/kallsym
所以insmod my_pgm.ko
会引发错误。
在 dmesg 它打印像 Unknown symbol my_pgm (err 0)
foo 定义为另一个文件的一部分。我从那里使用函数指针 foo nm another_file.ko
。我想将此指针条目插入/proc/kallsyms
我的问题是我们可以修改/proc/kallsyms
吗?如果是这样如何修改它?(如果我编辑文件并覆盖它,那么当我重新打开文件时更改也不会反映)
linux - 运行“Hello World”linux 模块的问题
我正在尝试从“Linux 设备驱动程序”一书中编译和运行“Hello World”模块,我要编译的程序 ~/ldd3/hello.c 是:
Makefile 是:
当我运行 make 时,编译似乎没问题:
但是当我运行时:
“Hello World”消息没有被打印出来。我跑步时也没有打印消息
你能告诉我为什么吗?谢谢
ubuntu - 无法将模块插入内核
这是我对内核模块的介绍。我正在关注Linux 内核模块编程指南,并且刚刚编写了我的第一个简单模块。
这是我的模块文件hello.c
;
这是我的Makefile
当我运行make
命令时,这就是我得到的..
make -C /lib/modules/4.15.0-45-generic/build M=/home/nailaakbar modules
make 1 : 进入目录'/usr/src/linux-headers-4.15.0-45-generic'
建筑模块,第 2 阶段。
MODPOST 0 个模块
make 1:离开目录'/usr/src/linux-headers-4.15.0-45-generic'
但是现在当我尝试使用此命令将其插入内核时;
我收到了这个错误
insmod:错误:无法加载模块 hello.ko:没有这样的文件或目录
我尝试了不同的解决方案,比如将这两个函数设为静态,或者更改文件位置,但没有任何结果。
目前我正在桌面上运行所有这些命令,并且我正在为 linux 环境使用双启动。
谁能帮我解决我在这里做错了什么?
可能重复的问题实际上解决了我的问题,但这不是我的直接问题。我在问题搜索期间经历了这个问题,但无法理解。这实际上是对我的问题的一条评论,改变了我对错误的看法,然后提到的答案解决了我的问题。
debian - Debian cifs 客户端突然崩溃
以前,Debian 挂载的 win10 cifs 运行良好。访问cifs文件时突然提示“输入/输出错误” 查看ls /proc/fs, cifs is missing
甚至 nfs 服务器也无法启动。
我不应该做任何修改系统配置,只是将ubuntu 10.10的modinfo复制到debian 9环境,半小时后出现上述现象。
重新加载 cifs.ko 失败
没有到岸价
挂载 cifs 服务器失败
linux - insmod:错误:无法插入模块:套接字的协议类型错误
insmod nf_nat_ipv4.ko
,但这会返回错误:
dmesg 中没有日志。操作系统没有安装 iptables。但是 insmod 适用于 nf_conntrack, nf_nat 。任何建议将不胜感激
makefile - 警告:modules_install:缺少“System.map”文件。跳过 depmod
我正在尝试使用depmod
和modprobe
实用程序插入内核模块,以解决任何依赖关系。当我构建模块时,它会抛出“警告:modules_install:缺少'System.map'文件。跳过depmod。 ”
后来当我尝试执行modprobe
它时会抛出一个错误,说
“modprobe: FATAL: Module i2c_eeprom_client.ko not found in directory /lib/modules/4.19.58-v7+”
下面是我正在使用的make文件:
下面是构建的输出:
我该如何解决这个问题?请帮忙
平台:Raspberry PI 3b+,Raspbian - linux 4.19.58-v7+
docker - docker [Errno 2] ip6tables v1.6.1: can't initialize ip6tables table `filter': Table does not exist (你需要insmod吗?)
我正在使用以下命令在 ubuntu 中运行 docker 映像
我收到以下错误
docker [Errno 2] ip6tables v1.6.1: can't initialize ip6tables table `filter': Table does not exist (你需要insmod吗?)
我四处搜索,许多建议是在本地机器上禁用 ipv6,因为不能在每个容器的基础上禁用 ip6 表。
最后,我找到了一个解决方法,即创建一个条目以防止探测 ip6table。
解决办法是什么?
c - 商业软件中的内核模块问题
我正在构建的安全软件包含一个内核模块。因为内核必须处理数据包。
不要使用 DKMS,因为它是商业软件。
如果内核版本上升,insmod 就不起作用。
我应该怎么办?你有个好主意吗?
c - insmod 因“模块中的未知符号”而失败
我正在使用 Linuxmint Cinnamon 19 Ubuntu 18.04,内核版本 4.15.0-20-generic
我在编译过程中看到以下内容:
然后我尝试使用 sudo insmod lift.ko 安装模块
在日志中看到:dmesg | 尾巴
生成文件
电梯.c
issue_request.c
start_elevator.c
stop_elevator.c
函数是静态的,同一目录中只有一个 makefile。所以我的问题是:为什么不能加载电梯.ko 以及如何修复?