Как дистрибутив Linux влияет на поведение ядра - PullRequest
0 голосов
/ 03 июля 2018

Это может быть очевидно для некоторых, но не для меня, поэтому я спрошу =)

У меня проблема с созданием встроенного стека Linux для некоторого аппаратного обеспечения (носитель NVidia TX2 + ConnectTech Astro). Я использую карту PCIe из EPIX

Если я использую официальный дистрибутив Ubuntu для Tegra, карта PCIe будет правильно определена.

С идентичным ядром и блобом дерева устройств и одним и тем же модулем HW обнаружение завершается неудачно со встроенным Linux.

Я думал, что обнаружение устройств PCIe будет работой ядра и не будет зависеть от дистрибутива, если драйверы не собраны как модули ядра и не вставлены в разное время. Но в моем случае они встроены в ядро.

Может ли кто-нибудь объяснить, почему обнаружение будет работать с одним дистрибутивом, но не с порядком?

Вот ссылка на то, что я пытался сделать, чтобы исправить обнаружение tx2-PCIe-это-не-обнаружения конечных точек-на-connecttech-несущая плата

Спасибо!

1 Ответ

0 голосов
/ 03 июля 2018

Дистрибутив Linux содержит ядро, которое обычно отличается от ванильного ядра того же выпуска. В большинстве случаев ядро ​​дистрибутива содержит множество обратных портов исправлений ошибок, которые были обнаружены и исправлены позже в микро-релизах. Могут быть и другие функции, которые есть у конкретного поставщика, а у ванильного ядра нет, например, более поздняя версия некоторых драйверов и т. Д. Что еще более запутанно, так это то, что наборы этих обратных портов часто отличаются в дистрибутивах от разных поставщиков. Как побочный эффект, это затрудняет зависимость от макроса KERNEL_VERSION() в пользовательском коде ядра или в пользовательских драйверах устройств.

Я не могу сказать о конкретной проблеме, с которой вы столкнулись. Тема довольно общая, и я надеюсь, что это объяснение поможет.

...