Linux内核模块加载及更新问题

Linux内核模块加载及更新问题 | DD'NotesLinux内核模块加载及更新问题背景最近碰到了一个Linux内核模块更新问题,比较有意思,特此记录。 问题: 一款我们内核已经适配过的蓝牙模块在一台机器上用不了,驱动加载不起来,看内核日志报一堆的符号问题: 29.784454] rtk_btusb: Unknown symbol hci_free_dev(err -22) 29.784483] rtk_btusb: disagrees abouticon-default.png?t=N7T8https://notes.z-dd.online/2024/07/23/Linux%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%E5%8A%A0%E8%BD%BD%E5%8F%8A%E6%9B%B4%E6%96%B0%E9%97%AE%E9%A2%98/

Linux内核模块加载及更新问题
背景
最近碰到了一个Linux内核模块更新问题,比较有意思,特此记录。

问题: 一款我们内核已经适配过的蓝牙模块在一台机器上用不了,驱动加载不起来,看内核日志报一堆的符号问题:

CODE
29.784454] rtk_btusb: Unknown symbol hci_free_dev(err -22)
29.784483] rtk_btusb: disagrees about version of symbol hci_alloc_dev_priv
29.784484] rtk_btusb: Unknown symbol hci_alloc_dev_priv(err-22)
29.784571] rtk_btusb: disagrees about version of symbol hci_unregister_dev
29.784573] rtk_btusb: unknown symbol hci_unregister_dev (err -22)
29.784583] rtk_btusb: disagrees about version of symbol hci_recv_frame    
29.784584] rtk btusb: unknown symbol hci_recv_frame (err -22)    
29.784608] rtk_btusb: disagrees about version of symbol hci_register_dev
29.784610] rtk_btusb: Unknown symbol hci_register_dev (err -22)    
29.784618] rtk_btusb: disagrees about version of symbol _hci_cmd_sync    
29.784620] rtk btusb: Unknown symbol_hci_cmd_sync(err-22)
29.808471] rtk_btusb: disagrees about version of symbol hci_free_dev
...
分析
从内核日志来看很明显是内核和驱动模块不匹配导致,但是内核包是用的我们正式发布的版本,按道理来说应该不会出现这种最低级的问题,于是开始一步步排查。

确认系统带的蓝牙驱动是否手动升级或修改
进入/lib/modules/xxx-generic/kernel/drivers目录,确认使用的蓝牙内核模块也未手动升级或修改,是和内核包一起的模块。
手动加载驱动模块验证
首先手动modprobe xxx这个驱动,发现加载报错;
然后我直接手动insmod了一下这个蓝牙驱动(/lib/modules/xxx-generic/kernel/drivers目录下的),惊奇地发现居然成功加载了,而且蓝牙可以正常使用了。
难道是系统之前使用的蓝牙驱动不是这个目录下的?
确认是否有其他同名驱动

。。。。。。

更多请关注:


作者: Shell
链接: https://notes.z-dd.online/2024/07/23/Linux%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%E5%8A%A0%E8%BD%BD%E5%8F%8A%E6%9B%B4%E6%96%B0%E9%97%AE%E9%A2%98/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值