免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3003 | 回复: 10

[硬件及驱动] driver 可以通过 rmmod 手工卸载,但是关机时不能自动卸载 [复制链接]

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-10 09:51 |显示全部楼层
通过 console 观察的
加了调试信息

rmmod 时会打印提示模块卸载
hotplug remove 设备也会打印模块卸载信息

但是关机时没有打印
问题会出在哪里?



论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-10 13:08 |显示全部楼层
关机的时候为什么要卸载模块呢?反正都要停止运行了。

当然,不排除某些service会在关机的时候rmmod。

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-12 21:26 |显示全部楼层
回复 2# nswcfd


    系统启动时会有脚本加载模块,并创建相关的设备文件
    系统关闭时脚本会做相反的事情

    现在发现脚本 start 会执行,但是脚本 stop 不会被调用

   
     撇开脚本的问题
     个人觉得系统关机前 lsmod 显示的模块都在系统关机的时候应该都会被卸载
     但是跟踪 remove 方法发现 OS 关机不会被调用

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-13 10:10 |显示全部楼层
一个简单的实验,加载一个在module_exit里会导致crash的模块,系统可以正常的reboot。

脚本stop不运行,估计跟外围的rc/init有关(SysV-Init or UpStart ),那就得具体情况具体分析了。

论坛徽章:
0
发表于 2015-07-13 12:04 |显示全部楼层
如果真需要做一些cleanup, 可以注册shutdown

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-14 14:03 |显示全部楼层
回复 5# mnipxh


    回头试试
    谢谢~

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-14 14:04 |显示全部楼层
回复 4# nswcfd


    单纯 Pci driver 的 remove 方法里面加 panic,发现 reboot 时不会调用
    试试 module_exit
    谢谢~

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-14 14:27 |显示全部楼层
回复 5# mnipxh


    刚试了一下,shutdown 方法不行
   
    回头再看看是哪里问题
    谢谢~

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2015-07-14 18:38 |显示全部楼层
5#说的应该是reboot_notifier

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2015-07-15 11:24 |显示全部楼层
回复 9# nswcfd


    问一下
    如果模块的引用计数为 0,这时关闭 OS 会调用模块的 exit 方法吗?哪块代码来负责调用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP