Я работаю с ядром 4.9.51 LTSI на специальной плате с AM3352.Кажется, что система работает нормально, но при загрузке я получаю следующее сообщение:
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 пуст?