我正在使用AM3352在定制板上使用4.9.51内核的LTSI。 该系统似乎工作正常,但我正在 开机时出现以下消息:
clocksource_probe: no matching clocksources found
我偷看了一下,此消息由
clocksource_probe()
,在time_init()
期间调用。这是功能
代码:
void __init clocksource_probe(void)
{
struct device_node *np;
const struct of_device_id *match;
of_init_fn_1_ret init_func_ret;
unsigned clocksources = 0;
int ret;
for_each_matching_node_and_match(np, __clksrc_of_table, &match) {
if (!of_device_is_available(np))
continue;
init_func_ret = match->data;
ret = init_func_ret(np);
if (ret) {
pr_err("Failed to initialize '%s': %d",
of_node_full_name(np), ret);
continue;
}
clocksources++;
}
clocksources += acpi_probe_device_table(clksrc);
if (!clocksources)
pr_crit("%s: no matching clocksources found\n", __func__);
}
从代码中,我们可以看到消息已打印,因为
clocksources == 0
。这意味着没有匹配的节点
设备树,
并且那个acpi_probe_device_table返回0(这是正确的,见
内核不支持ACPI。
这给我两个问题:
1-此消息是否是问题指示?我假设是这样,因为
它印有pr_crit
...
2-为什么for_each_matching_node_and_match没有得到任何匹配?一世
找不到__clksrc_of_table
的初始化位置,所以也许是
因为__clksrc_of_table为空?