Chinaunix

标题: 关于驱动手动加载及内核自动加载的问题 [打印本页]

作者: OLIVER_HJF    时间: 2018-05-10 10:36
标题: 关于驱动手动加载及内核自动加载的问题
最近在写一个PCM驱动,手动加载没有问题,调试也成功,但是编译进内核让内核自动加载,频频报错,各位有遇到类似问题的吗?提供一下思路给我,谢谢。报错打印信息如下:
ASoC: platform (null) not registered
snd_soc_register_card() failed: -517
Driver sxx-pcm-machine requests probe deferral

作者: Tinnal    时间: 2018-05-10 14:32
是概率,还是必然出错。 如果是概率。 然而手工插入时没有问题。 应该是上电初始化时序的问题。
作者: OLIVER_HJF    时间: 2018-05-11 10:43
回复 2# Tinnal

你好,是必然出错的。请问这个问题如果跟上电时序有关,我该去哪里调整。希望你提供一些思路。
作者: Tinnal    时间: 2018-05-12 07:17
OLIVER_HJF 发表于 2018-05-11 10:43
回复 2# Tinnal

你好,是必然出错的。请问这个问题如果跟上电时序有关,我该去哪里调整。希望你提供一 ...

必然出错不是更好高吗。沿着出错处慢慢网上找呀。在家点打印信息。
作者: Tinnal    时间: 2018-05-12 07:49
看一下https://lwn.net/Articles/450460/。就是你这类问题。你可以在每一个模块的初始化时打印一下。看看全编译进内核时,各功能模块的初始化顺序是不是跟你手工插入的时候不一样。如果是顺序不一样。就研究一下Grant's的功能。如果还解决不掉这个顺序问题。建议土办法,加点时延,手工控制顺序。
作者: Tinnal    时间: 2018-05-12 08:00
https://stackoverflow.com/questions/10368837/how-does-linux-determine-the-order-of-module-init-calls,依赖数量简单的情况下,也可以简单的调一下初始化等级来稍微控制一下。
作者: OLIVER_HJF    时间: 2018-05-14 18:39
感谢大侠提供的思路,我试试





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2