OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1336|回复: 2

求助,通过insmod安装自定义模块后,无法卸载模块。

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-10-12
在线时间
4 小时
发表于 2023-10-13 11:21:20 | 显示全部楼层 |阅读模式
1金钱
跟着教程写了一个FIFO模块,模块命名为cstfifo.ko,
通过insmod安装cstfifo.ko后,

在通过rmmod卸载模块,系统提示出错,通过多次尝试,更换模块之类的全都存在这个问题。(模块能正常使用,除了卸载)


通过使用lsmod进行查看,发现cstfifo这个模块是已经成功安装了的,只是不知道为什么Size 和 Used by为什么是-2。

借助网络进行查询(linux - lsmod shows -2 in the “Used by” column - Unix & Linux Stack Exchange),
说Used by之所以为-2是因为在linux内核进行编译的时候没有将CONFIG_MODULE_UNLOAD勾选上。
随后回去查看linux编译时的选项,发现这个宏是勾选上的,所以不是我要找的答案。

继续求助网络(Linux内核模块文件名中的坑_内核编译各种坑_云帆清扬的博客-CSDN博客),
找到一个跟我一模一样问题的人,也是Size和Used by都是-2。
但是他的问题是由于命名问题导致的,很明显我的没有该问题,但是给了我启发。

我去查看/sys/module目录,发现模块名果真存在问题。

不知道为什么我的模块名会有一个.o的后缀。
估计就是这个后缀导致了无法通过rmmod命令来卸载cstfifo这个模块。
随后我尝试rmmod cstfifo.o来卸载模块

发现还是报错。后来想通过使用改名的方法将cstfifo.o改为cstfifo但是提示没有权限,即使加上sudo命令也不行。
对比Makefile也是跟教程一致的,真想不明白问题出在哪儿,能用的办法都试过了。
跪求大佬解答这个问题该怎么解决,为什么会出现这种问题?

使用的内核是:
11、开发板教程对应的uboot和linux源码/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
编译器是:
5、开发工具/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-10-12
在线时间
4 小时
 楼主| 发表于 2023-10-14 00:56:57 | 显示全部楼层
图片不见了,重新补上。

跟着教程写了一个FIFO模块,模块命名为cstfifo.ko,
通过insmod安装cstfifo.ko后,
a.png

在通过rmmod卸载模块,系统提示出错,通过多次尝试,更换模块之类的全都存在这个问题。(模块能正常使用,除了卸载)
e.png

通过使用lsmod进行查看,发现cstfifo这个模块是已经成功安装了的,只是不知道为什么Size 和 Used by为什么是-2。
b.png

借助网络进行查询(linux - lsmod shows -2 in the “Used by” column - Unix & Linux Stack Exchange),
说Used by之所以为-2是因为在linux内核进行编译的时候没有将CONFIG_MODULE_UNLOAD勾选上。
随后回去查看linux编译时的选项,发现这个宏是勾选上的,所以不是我要找的答案。

继续求助网络(Linux内核模块文件名中的坑_内核编译各种坑_云帆清扬的博客-CSDN博客),
找到一个跟我一模一样问题的人,也是Size和Used by都是-2。
但是他的问题是由于命名问题导致的,很明显我的没有该问题,但是给了我启发。

我去查看/sys/module目录,发现模块名果真存在问题。
不知道为什么我的模块名会有一个.o的后缀。
c.png

估计就是这个后缀导致了无法通过rmmod命令来卸载cstfifo这个模块。
随后我尝试rmmod cstfifo.o来卸载模块
发现还是报错。后来想通过使用改名的方法将cstfifo.o改为cstfifo但是提示没有权限,即使加上sudo命令也不行。
d.png

对比Makefile也是跟教程一致的,真想不明白问题出在哪儿,能用的办法都试过了。
跪求大佬解答这个问题该怎么解决,为什么会出现这种问题?

使用的内核是:
11、开发板教程对应的uboot和linux源码/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
编译器是:
5、开发工具/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-10-12
在线时间
4 小时
 楼主| 发表于 2023-10-14 00:57:19 | 显示全部楼层
图片不见了,重新补上。

跟着教程写了一个FIFO模块,模块命名为cstfifo.ko,
通过insmod安装cstfifo.ko后,


在通过rmmod卸载模块,系统提示出错,通过多次尝试,更换模块之类的全都存在这个问题。(模块能正常使用,除了卸载)


通过使用lsmod进行查看,发现cstfifo这个模块是已经成功安装了的,只是不知道为什么Size 和 Used by为什么是-2。


借助网络进行查询(linux - lsmod shows -2 in the “Used by” column - Unix & Linux Stack Exchange),
说Used by之所以为-2是因为在linux内核进行编译的时候没有将CONFIG_MODULE_UNLOAD勾选上。
随后回去查看linux编译时的选项,发现这个宏是勾选上的,所以不是我要找的答案。

继续求助网络(Linux内核模块文件名中的坑_内核编译各种坑_云帆清扬的博客-CSDN博客),
找到一个跟我一模一样问题的人,也是Size和Used by都是-2。
但是他的问题是由于命名问题导致的,很明显我的没有该问题,但是给了我启发。

我去查看/sys/module目录,发现模块名果真存在问题。
不知道为什么我的模块名会有一个.o的后缀。


估计就是这个后缀导致了无法通过rmmod命令来卸载cstfifo这个模块。
随后我尝试rmmod cstfifo.o来卸载模块
发现还是报错。后来想通过使用改名的方法将cstfifo.o改为cstfifo但是提示没有权限,即使加上sudo命令也不行。


对比Makefile也是跟教程一致的,真想不明白问题出在哪儿,能用的办法都试过了。
跪求大佬解答这个问题该怎么解决,为什么会出现这种问题?

使用的内核是:
11、开发板教程对应的uboot和linux源码/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
编译器是:
5、开发工具/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 01:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表