重复insmod 一个ko模块导致的异常问题解决方法

在insmod和rmmod KO驱动过程中遇到异常,导致内核重启后模块无法正常运行。问题根源在于exit函数未清除kobject。通过在exit函数中加入kobject_put解决了重复board_properties问题,但触摸虚拟按键仍无法使用。进一步调整ko文件权限从0777改为0644,成功修复问题并启用虚拟按键。参考代码展示了kobject创建和清理的方法。

第一次insmod ko驱动,正常运行无异常,rmmod 后再insmod一次,就出现下面的异常,并且导致内核重启之后ko 也没法正常运行起来了,why?

<4>[  371.040525] ------------[ cut here ]------------

<4>[  371.040558] WARNING: at fs/sysfs/dir.c:455 sysfs_add_one+0x8c/0xc0()
<4>[  371.040580] sysfs: cannot create duplicate filename '/board_properties'
<4>[  371.040623] [<c04433a4>] (unwind_backtrace+0x0/0xf8) from [<c047416c>] (warn_slowpath_common+0x4c/0x64)
<4>[  371.040662] [<c047416c>] (warn_slowpath_common+0x4c/0x64) from [<c0474218>] (warn_slowpath_fmt+0x30/0x40)
<4>[  371.040699] [<c0474218>] (warn_slowpath_fmt+0x30/0x40) from [<c05642f4>] (sysfs_add_one+0x8c/0xc0)
<4>[  371.040739] [<c05642f4>] (sysfs_add_one+0x8c/0xc0) from [<c0564388>] (create_dir+0x60/0xbc)
<4>[  371.040773] [<c0564388>] (create_dir+0x60/0xbc) from [<c0564494>] (sysfs_create_dir+0x84/0
hsan login: root Password: login: can't change directory to '/root' // # hi_mw 0x7040c2c0 0x010e0000 // # hi_mw 0x7040c2c0 0x410e0000 // # insmod /lib/hisilicon/ko/hi_kusb2phy.ko insmod: can't insert '/lib/hisilicon/ko/hi_kusb2phy.ko': File exists // # insmod /lib/hisilicon/ko/hi_kupsphy.ko insmod: can't insert '/lib/hisilicon/ko/hi_kupsphy.ko': File exists // # insmod /lib/hisilicon/ko/hi_usb.ko insmod: can't insert '/lib/hisilicon/ko/hi_usb.ko': File exists // # insmod /lib/modules/`uname -r`/udc-core.ko insmod: can't read '/lib/modules/5.10.0/udc-core.ko': No such file or directory // # insmod /lib/modules/`uname -r`/extcon-core.ko insmod: can't read '/lib/modules/5.10.0/extcon-core.ko': No such file or directory // # insmod /lib/modules/`uname -r`/libcomposite.ko insmod: can't read '/lib/modules/5.10.0/libcomposite.ko': No such file or directory // # insmod /lib/modules/`uname -r`/roles.ko insmod: can't insert '/lib/modules/5.10.0/roles.ko': File exists // # insmod /lib/modules/`uname -r`/dwc3.ko p_dr_mode=1 insmod: can't insert '/lib/modules/5.10.0/dwc3.ko': File exists // # insmod /lib/modules/`uname -r`/xhci-hcd.ko insmod: can't insert '/lib/modules/5.10.0/xhci-hcd.ko': File exists // # insmod /lib/modules/`uname -r`/xhci-plat-hcd.ko insmod: can't insert '/lib/modules/5.10.0/xhci-plat-hcd.ko': File exists // # hi_mw 0x7040c2c0 0x010e0000 // # hi_mw 0x7040c2c0 0x410e0000 // # [smart_manager:get_connect(168)]gethostbyname failed: Try again [smart_manager:register_request(212)]get connect failed timed out waiting for input: aut hsan login: root Password: login: can't change directory to '/root' // # hi_mw 0x70400430 0x810340 // # hi_md 0x7040c2c0 0x7040c2c0: 0x410e0000 // # hi_mw 0x7040c2c0 0x410e0000 // # 报的什么错?
最新发布
08-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值