Thinkpad und Docking Station

onkeljuergen

New member
Themenstarter
Registriert
2 Sep. 2010
Beiträge
2
Hallo Leute,

ich habe bei mir zu Hause ein Lenovo Thinkpad mit einem Port-Replicator.

http://www.notebooksbilliger.de/images/products/0/6260/advanced_mini_dock_39T4587.jpg

Ich möchte gerne vor dem Abdocken ein Script ausführen lasse, dass mir alle meine Wechseldatenträger aushängt, bevor alle USB Ports einfach abgekoppelt werden.

Wenn auf den kleinen Knopf zum abdocken drücke, passiert nämlich genau das, also die Ports werden abgekoppelt, aber die Wechseldatenträger werden nicht sauber ausgehängt. (zumindest glaube ich das... kann leider keine näheren Infos finden)

Scripts schreiben, die mir meine Wechseldatenträger aushängen, ist soweit kein Problem, und dass diese ausgeführt werden, wenn ich auf den Knopf zum abdocken an der Dockingstation drück auch nicht.

Siehe zum Beispiel diese Anleitung:

http://ubuntuforums.org/showthread.php?t=1076486

Das Problem, was ich habe ist, dass diese Scripts langsamer als der Abdockvorgang an sich sind. D.h. ich drücke den Abdockknopf und meine Scripts werden gestartet, nur sie sind nicht zu ende, heißt die Festplatten nicht sauber ausgehängt, bevor der "interne" Abdockprozess zu ende ist. (kann ich gut mit Ausgaben kontrollieren)

Meine Frage an euch ist erstens: ob mir vll jemand dabei helfen kann.
Bzw. zweitens, ob jemand Infos zu den Interna des Abdockvorgangs hat, dass ich da vll irgendwas drehen kann.

Grüße euer onkel
 
Hi,

und willkommen im Forum :D .

Wenn Du Glück hast, bist Du nur mit den falschen udev-Events unterwegs, für Anregungen schau mal hier rein: http://www.thinkwiki.org/wiki/How_to_hotswap_Ultrabay_devices#Using_the_generic_bay_driver_and_udev
(die Dockingstation ist /sys/devices/platform/dock.0)

Wenn Du Pech hast, ist ausgiebiges Studieren und Hacken der Kernelquellen angesagt.

Bei mir (X200) zeigt [font='Courier New, Courier, mono']dmesg[/font] beim Knopfdrücken das hier
Code:
[12702.331285] ACPI: \_SB_.GDCK - undocking
[12702.751296] usb 1-5: USB disconnect, address 2
Daraus würde ich schließen mal mit ./drivers/acpi/dock.c zu beginnen. Damit ist mein Kenntnishorizont allerdings erreicht.

Aber mal ehrlich: der Komfortgewinn steht, falls Du den Kernel hacken mußt, in keinem Verhältnis zum (absehbaren) Aufwand.
 
Ja genau das war auch schon meine Anlaufstelle (dock.c, in den Kernel sourcen).
Aber da hast du wohlt echt recht... den Kernel zu hacken, so viel mehr komfort hab ich dadurch nich.

Also kennt hier wohl auch keiner weiter eine Antwort, wie man das ganze aus dem "User" Bereich raus regeln könnte.

Aber danke der schnellen Antwort.
 
Hallo onkeljuergen,

installiere mal acpid und überprüfe mittels acpi_listen, ob das Betätigen des Abdockknopfes ein ACPI-Event auslöst. Falls ja, kannst du die Aktion abfangen und eigene Aktionen bestimmen, die bei Knopfdruck ausgeführt werden sollen, i.e. Unmount und Monitorwechsel.

Falls das nicht geht, sehe ich die einfachste Lösung darin, statt des Abdockknopfes in Zukunft ein Skript per Kommandozeile aufzurufen, wenn du abdocken möchtest.
Dieses Skript würde zunächst deine beiden Skripte zum Unmounten der HDDs und Wechseln des Monitors aufrufen und erst nach einer Wartezeit von mindestens 5 Sekunden den eigentlichen Abdockprozess einleiten (über die Kontrolldatei in /sys/devices/platform/dock.0).

Grüße,
mikar
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben