对于某些人来说这可能是显而易见的,但对我而言却不是,所以我会问=)
我遇到的问题是,我已经为某些硬件(NVidia TX2 + ConnectTech Astro载体)构建了嵌入式Linux堆栈。我使用EPIX的PCIe卡
如果我使用Ubuntu的官方发行版进行集成,则可以正确检测到PCIe卡。
使用相同内核和设备树blob,以及相同的硬件单元,嵌入式Linux检测失败。
我认为检测PCIe设备将是内核的工作,而不受发行版的影响,除非将驱动程序构建为内核模块并在不同的时间插入。但就我而言,它们是在内核中构建的。
有人可以解释为什么检测只适用于一个发行版而不适用于订单吗?
这里是我试图修复检测结果的链接 tx2-pcie-does-not-detect-endpoint-on-connecttech-carrier-board
谢谢!
答案 0 :(得分:1)
Linux发行版包含的内核通常不同于同一发行版的原始内核。大多数情况下,分发内核包含大量错误修复的后端口,这些错误修复后来在微发行版中被发现并修复。特定供应商可能还包含其他功能,而普通内核则不提供,例如某些驱动程序的最新版本等。更令人困惑的是,这些后端口的集合在不同供应商的发行版中常常有所不同。副作用是,这使得很难在自定义内核代码或自定义设备驱动程序中依赖KERNEL_VERSION()
宏之类的东西。
我不能说您遇到的具体问题。该主题非常笼统,希望这一解释对您有所帮助。