![Linux 内核 USB 打印机设备类驱动程序](https://linux22.com/image/567925/Linux%20%E5%86%85%E6%A0%B8%20USB%20%E6%89%93%E5%8D%B0%E6%9C%BA%E8%AE%BE%E5%A4%87%E7%B1%BB%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F.png)
我正在尝试更新 QNAP NAS 上的 CUPS 守护程序,它运行 *nix 版本。NAS 启动时,整个操作系统都会加载到 RAMDISK 上,因此我编写了一个在启动时运行并注入我自己的编码的脚本。现在我的问题是我需要触发内核操作,以便 USB 打印机驱动程序调用 cupsd.sh 脚本。
据制造商称:
我们修改了Linux内核的“USB Printer Device Class driver”,在插入/拔出USB打印机时发出信号/消息。守护进程picd收到信号/消息后,会调用cupsd.sh来add_printer/del_printer。
有什么想法我可以实现这个吗?
答案1
通常,这是由 Linux 中的 udev 完成的,但我不确定 QNAP 是否使用它。另一种选择是 busybox 中的 mdev。检查您的系统以查看它使用哪种方法,然后阅读相应的文档。
通常它的工作方式如下:
- 即使你插入新设备,内核也会生成
- 用户空间守护进程(udev 或 mdev)监听这些事件,
- 事件经过一系列规则,如果发现匹配,则采取相应的行动,
- 该操作可以是执行您的自定义脚本。