发现 DVB 设备所需的调谐器/前端内核模块

发现 DVB 设备所需的调谐器/前端内核模块

我正在尝试编译可加载内核模块(.ko 文件)以支持 Linux 嵌入式系统(特别是 QNAP NAS)上的不同 USB DVB 调谐器内核4.2.8。这个系统没有 udev (或者更好,它有,但基本上你不能碰它)所以我需要构建内核模块,然后插入模块他们一个接一个。

我已经成功构建了可以正确加载的 .ko 文件,但我需要知道特定 DVB 调谐器需要哪些模块没有它在手里。

对于某些设备,这很容易,例如 Hauppauge,2040:7070它使用dvb-usb-dib0700.ko我可以检查模块依赖性:

[~] # modinfo dvb-usb-dib0700.ko | grep depends
depends:        dib7000m,dib9000,dibx000_common,dvb-usb,dib0090,dib0070,dib3000mc,rc-core

我可以插入所有不同的前端,例如dib7000m.ko等等,并且调谐器被完美检测到(由消息)与/dev/dvb相应地创建节点。

相反,其他一些设备更加困难,这提出了我的问题。以 Pinnacle PCTV DVB-S2 为例2013:024c:报告的 dmesg 日志它的 LinuxTV 页面建议它可以使用EM28xx,a8293TDA10071模组信息在这种情况下没有帮助:

# modinfo em28xx-dvb.ko | grep depends
depends:        em28xx 
# modinfo em28xx.ko | grep depends
depends:

正如您所看到的,这里没有提到前端 a8293 和 TDA10071(它们作为可加载内核模块存在于内核 4.2.8 上),所以如果没有物理设备,我如何知道它需要哪些调谐器和前端内核模块?

我这么问是因为一位使用该调谐器的朋友尝试了 insmod dvb-frontends/a8293.kodvb-frontends/tda10071.ko但 dmesg 仍然没有说成功加载 em28xx-dvb也没有/dev/dvb已创建,所以我认为缺少另一个内核模块。但是什么模块呢?内核模块也会随内核版本而变化,因此 LinuxTV 页面对于我们的内核 4.2.8 可能不正确。

将 USB 调谐器连接到 Debian 虚拟机时,系统会使用以下命令自动加载调谐器和前端所需的内核模块乌德夫。操作系统在哪里可以找到有关调谐器的信息?如果它被硬编码在某个地方,我可以提取它以通过 lsusb ID 来了解调谐器的正确内核模块吗?我想在嵌入式系统上复制 Debian 所做的确切过程。

编辑:

通过继续在网上搜索,我发现乌德夫可以使用莫代利亚斯匹配可用的内核模块并查看是否需要它们。但即使我将调谐器连接到嵌入式系统(不使用 udev),我如何“检查”不同的 i2c 别名?

相关内容