Linux-Kernel-USB-Druckergeräteklassentreiber

Linux-Kernel-USB-Druckergeräteklassentreiber

Ich versuche, den CUPS-Daemon auf meinem QNAP NAS zu aktualisieren, auf dem eine *nix-Variante läuft. Das gesamte Betriebssystem wird beim Booten des NAS auf eine RAMDISK geladen, daher habe ich ein Skript erstellt, das beim Start ausgeführt wird und meinen eigenen Code einfügt. Jetzt besteht mein Problem darin, dass ich die Kernel-Aktion auslösen muss, damit der USB-Druckertreiber das Skript cupsd.sh aufruft.

Laut Hersteller:

Wir haben den „USB Printer Device Class Driver“ des Linux-Kernels so geändert, dass er beim Ein-/Ausstecken eines USB-Druckers ein Signal/eine Meldung ausgibt. Nachdem der Daemon picd das Signal/die Meldung erhalten hat, ruft er cupsd.sh auf, um Drucker hinzuzufügen/zu entfernen.

Irgendwelche Ideen, wie ich das erreichen kann?

Antwort1

Normalerweise wird dies unter Linux von udev erledigt, ich bin mir jedoch nicht sicher, ob QNAP dies verwendet. Eine weitere Alternative ist mdev von busybox. Überprüfen Sie Ihr System, um zu sehen, welchen Ansatz es verwendet, und lesen Sie dann die entsprechende Dokumentation.

Im Allgemeinen funktioniert es wie folgt:

  • Kernel generiert, auch wenn Sie ein neues Gerät anschließen,
  • Ein User Space Daemon (udev oder mdev) wartet auf diese Ereignisse,
  • Das Ereignis durchläuft eine Regelkette und wenn eine Übereinstimmung gefunden wird, werden entsprechende Maßnahmen ergriffen.
  • Die Aktion kann darin bestehen, Ihr benutzerdefiniertes Skript auszuführen.

verwandte Informationen