Hallole,
zur Zeit programmiere ich als kleines “Erholungsprojekt” eine Netzwerksteuerung für unser LinuxMuster-Netz, das epoptes ersetzen soll. Da soll dann auch per Mausklick des Lehrers Tastatur und Maus abgestellt werden können.
Linux kann seit Kernel 2.6 mit einem einfachen root-Befehl das “binding” der Treiber zur hardware lösen. Das geht so:
Mitlsusb -t
ermittelt man Bus und Portnummer der Devices:
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
|__ Port 3: Dev 9, If 0, Class=Hub, Driver=hub/7p, 480M
|__ Port 4: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 9: Dev 8, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 10: Dev 10, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 10: Dev 10, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 10: Dev 10, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 10: Dev 10, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 13: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 13: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
Die Human Interface Devices (Maus und Tastatur schaltet man so ab):
Man muss root sein (sudo funktioniert nicht), dann schreibt man den Wert für Bus-Port, hier z.B. für die Maus per “echo”-Befehl auf:
/sys/bus/usb/drivers/usb/unbind
und zum Einschalten wieder auf:
/sys/bus/usb/drivers/usb/bind
also in obigem Beispiel so:
echo "3-4" > /sys/bus/usb/drivers/usb/unbind
Das schaltet die Maus aus.
Die Tastatur würde man nach obiger lsusb-Ausgabe so abschalten:
echo "3-13" > /sys/bus/usb/drivers/usb/unbind
(Das mach ich jetzt aber mal nicht hier …)
Vermutlich läuft das bei PS/2-Anschlüssen genau so.
Der Vorteil gegenüber xinput:
Man muss keine Display-Variablen herausfinden und exportieren und / oder man kann damit auch die Tastatur abschalten.
(Und über ssh ganz schnell wieder aktivieren).
Gruß Christoph Gü