請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

内核编译和嵌入式产品的设计与开发
回复
cyberwiz
帖子: 4
注册时间: 2017-10-10 21:02
系统: window

請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#1

帖子 cyberwiz » 2017-10-10 21:17

Hi 各位資深先進

有誰知道driver code中
這行沒被執行的原因? module_i2c_driver( A_device_driver )

我已經做了如下檢查
1,已經設定Kconfig and makefile,確定此driver code有產生出ko, o
2,查看此module_i2c_driver( A_device_driver )中的log, 因為此會先進行module_init(A_device_driver)
做bus register但沒有相關A_device_driver的log
3,在sys/bus/....也沒有A_device_driver的節點產生

所以,想請問各位在執行module_i2c_driver( A_device_driver )之前是否還有哪些程式code要設定 ?

謝謝
头像
astolia
论坛版主
帖子: 6398
注册时间: 2008-09-18 13:11

Re: 請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#2

帖子 astolia » 2017-10-11 9:47

你确认driver已经被加载了?这行只是在设置driver初始化和退出时要执行的函数,本身并不涉及到driver的加载。module_init也是同样的。
如果你没有在driver里实现detect相关的代码,那么你需要用modprobe或insmod来手动加载driver
cyberwiz
帖子: 4
注册时间: 2017-10-10 21:02
系统: window

Re: 請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#3

帖子 cyberwiz » 2017-10-11 14:37

Hi Astolia

我有cat proc/modules 確定modules 有在list中
這應該算有被掛載吧?

我也有再做一次modprobe module name
還是一樣,driver code 沒任何log (使用prints (KERN ERR⋯⋯log

也有做
印出i2c_detect ()這 function log 中沒有我想要掛載的module name

現不知從何處debug?


謝謝
cyberwiz
帖子: 4
注册时间: 2017-10-10 21:02
系统: window

Re: 請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#4

帖子 cyberwiz » 2017-10-11 16:06

補充:

使用modprobe 才有被掛載,log 也有被印出,
是我重新開機又自動被卸載掉


請問,要將module 包進image中
當載入kernel image時會自動掛載module
要如何做?

是不是要將module name寫入到某config或table
才會由kernel image一起被掛載?

謝謝
头像
astolia
论坛版主
帖子: 6398
注册时间: 2008-09-18 13:11

Re: 請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#5

帖子 astolia » 2017-10-11 20:28

ubuntu下一般把名称写到/etc/modules或者/etc/modules-load.d/下面,如果需要指定参数,往/etc/modprobe.d/下面放配置文件
cyberwiz
帖子: 4
注册时间: 2017-10-10 21:02
系统: window

Re: 請問有誰知道這module_i2c_driver( device_driver )沒被執行的原因?

#6

帖子 cyberwiz » 2017-10-12 10:15

應該不能這樣做,因為kernel source code沒有etc folder,,我目前是要把support module driver全build入image,然後dpkg到device,device開機後,就會掛載所需要module driver,是不能事後再掛載的
回复