USB-Port Strom abschalten
lima-city → Forum → Programmiersprachen → Basic
ausprobieren
ausschalten
bus
code
datenleitung
entfernen
frage
http
installieren
kontakt
lampe
level
machen
maus
port
problem
programm
strom
url
windows
-
Tagchen,
ich suche eine Möglichkeit, für einen bestimmten USB-Port einfach "abzuschalten". Am liebsten für VB6, notfalls auch für andere Programmiersprachen. Am liebsten Windows XP, notfalls auch für Linux, o.ä.
Wenn es gar nicht anders geht, nehme ich auch gerne Programme, welche diesen Zweck erfüllen.
Am liebsten wäre mir natürlich eine Möglichkeit, sogar die Stromzufur zu regulieren, was nun aber nicht zwingend notwendig ist.
Irgendjemand ansätze? Ideen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dafür musst du an die Mainboardtreiber ran.
Der USB-Controller am Mainboard regelt das ganze.
Da wirst du mit VB nicht sehr weit kommen. Generell keine leichte Sache. Ich wünsche viel Spaß. -
adrians schrieb: Dafür musst du an die Mainboardtreiber ran.
Wenn VB das nicht bietet (Ich weiss, dass QBx für's Mainboard/Bios recht gute Funktionalität zur verfügung stellte) nehme ich gerne auch C++, C#, oder was auch immer. Ich will da gar nichts großes machen - lediglich strom ein- und aus-schalten. Notfalls rufe ich dafür auch ein extra Programm auf...
Der USB-Controller am Mainboard regelt das ganze.
Da wirst du mit VB nicht sehr weit kommen. Generell keine leichte Sache. Ich wünsche viel Spaß.
Wenn das ganze "leicht" zu lösen wäre, müsste ich nicht fragen ^^
Hat denn jemand zumindest eine Idee wo man ansetzen könnte?
Um meinen Plan weiter zu erläutern: Ich habe eine Lampe, welche gewissermaßen ihren Strom über USB bezieht, viel mehr schaltet sie sich ein, wenn der USB-Port strom bekommt und schaltet sich aus, wenn der Strom weg ist. Ich will mir nun ein Programm schreiben, mit dem ich die Lampe beispielsweise wenn ich einen Film gucke ausschalten kann. Tastatur, Maus usw. sollten dabei allerdings aktiv bleiben.
Ich habe Lösungsansätze gegoogled - DevCon war ein resultat, was mich aber auch nicht wirklich weiter brachte. (Ich durchschaue das Programm noch nicht so wirklich.) -
Interessant, interessant. Wahrscheinlich musst du nicht einmal ins BIOS runter, sondern es reicht einen Gerätetreiber für deine Lampe zu schreiben. Würde deine Lampe über die Datenpins gesteuert und nicht über die Leistungspins, wäre das ganze kein Problem. Allerdings bin ich mir nicht sicher, ob du mittels eines Gerätetreibers die 5V kappen kannst. Was macht denn das Windows "USB-Gerät entfernen"? Nimmt das nicht die Spannung weg? Wenn das tatsächlich so ist, dann lässt sich das ganze als Treiber realisieren. Waffe deiner Wahl wäre dann wahrscheinlich good ole C.
-
Unter Linux könntest du mal ein:
ausprobieren.# echo suspend > /sys/bus/usb/devices/DEIN_DEVICE/power/level
Bei DEIN_DEVICE musst du evtl. mal ein bisschen rumprobieren, hier steht wie USB Geräte vom Kernel benamt werden.
Um das Gerät wieder einzuschalten kannst du entweder
oder# echo auto > /sys/bus/usb/devices/DEIN_DEVICE/power/level
verwenden.# echo on > /sys/bus/usb/devices/DEIN_DEVICE/power/level
€dit: Bei den Pfaden hat noch ein "/devices/" gefehlt...
Beitrag zuletzt geändert: 1.10.2009 17:42:12 von kochmarkus -
census schrieb:
Hm, darüber habe ich ein wenig gelesen. Das "USB-Gerät entfernen" sendet soweit ich gelesen habe nur ein "Reset" an das Gerät, wodurch es kurzzeitig keinen Strom hat. Aber der Strom geht dann nach einigen Sekunden wieder an. Ich habe schon überlegt, ob es Sinn macht, einen Fortlaufenden Reset zu senden, also alle paar Sekunden einen Reset zu machen. Wie schon gesagt: Notfalls nehme ich auch jedes Workaround. Muss ja nicht professionell sein, solange der Effekt stimmt. Problem an der Sacher ist, dass die Lampe nicht als Gerät angezeigt oder erkannt wird, es zwackt einfach nur die Stromversorgung an.
Interessant, interessant. Wahrscheinlich musst du nicht einmal ins BIOS runter, sondern es reicht einen Gerätetreiber für deine Lampe zu schreiben. Würde deine Lampe über die Datenpins gesteuert und nicht über die Leistungspins, wäre das ganze kein Problem. Allerdings bin ich mir nicht sicher, ob du mittels eines Gerätetreibers die 5V kappen kannst. Was macht denn das Windows "USB-Gerät entfernen"? Nimmt das nicht die Spannung weg? Wenn das tatsächlich so ist, dann lässt sich das ganze als Treiber realisieren. Waffe deiner Wahl wäre dann wahrscheinlich good ole C.
kochmarkus schrieb: Unter Linux könntest du mal ein:
Auch hier gilt wieder das Problem, dass das Gerät (unter Windwos zumindest) nicht als Gerät erkannt wird. Ich müsste also wirklich den Port ausschalten. Also das könnte zumindest ein Problem darstellen. Ich kenne mich mit Linux nicht aus, müsste es also extra installieren. Wäre also toll, das 100%ig zu klären, ob das funktioniert.
ausprobieren.# echo suspend > /sys/bus/usb/DEIN_DEVICE/power/level
Bei DEIN_DEVICE musst du evtl. mal ein bisschen rumprobieren, hier steht wie USB Geräte vom Kernel benamt werden.
Um das Gerät wieder einzuschalten kannst du entweder
oder# echo auto > /sys/bus/usb/DEIN_DEVICE/power/level
verwenden.# echo on > /sys/bus/usb/DEIN_DEVICE/power/level
Kann man damit denn wirklich auch Geräte ausschalten, die Praktisch nicht erkannt werden? Also wirklich einen bestimmten USB-Port abschalten, wenn auch kein Gerät drin steckt? -
Ich stelle mir gerade die Frage, warum willst du dem USB Port den Saft abdrehen, wenn kein Gerät dran steckt? Wo kein Verbraucher da ist auch kein Verbrauch.
Allerdings ist denke ich dieser Link hier interessant für dich: http://msdn.microsoft.com/en-us/library/ms793249.aspx Ich denke aber mal da wirst um C/C++ nicht herum kommen. -
evil-devil schrieb:
Es steckt ja ein Gerät dran, es wird nur nicht von Windows erkannt. Es geht nur um den Strom, den der USB-Port liefert ;)
Ich stelle mir gerade die Frage, warum willst du dem USB Port den Saft abdrehen, wenn kein Gerät dran steckt? Wo kein Verbraucher da ist auch kein Verbrauch.
Allerdings ist denke ich dieser Link hier interessant für dich: http://msdn.microsoft.com/en-us/library/ms793249.aspx Ich denke aber mal da wirst um C/C++ nicht herum kommen.
Der Link sieht gut aus, ich werde mich bei Zeiten damit beschäftigen. -
Du musst Linux ja nicht zwangsweise installieren, du kannst auch von z.B. einer Ubuntu Live-CD booten und es ausprobieren. Ich bin mir jedoch nicht sicher, ob meine Lösung funktioniert wenn das Gerät gar nicht als Gerät erkannt wird. Auf jeden Fall kann ich damit die LED meiner Maus ausschalten.
Wieviele Kontakte siehst du denn, wenn du in den USB Stecker der Lampe schaust, 2 oder 4? Wenn es nur 2 sind, dann fehlen die Datenleitungen komplett und das Gerät kann gar nicht als solches erkannt werden (allerdings würde es dann afaik auch nur max. 100mA bekommen, da die maximal möglichen 500mA erst über einen Befehl vom Gerät angefordert werden müssen, was ohne Datenleitungen nicht geht.) -
kochmarkus schrieb: Du musst Linux ja nicht zwangsweise installieren, du kannst auch von z.B. einer Ubuntu Live-CD booten und es ausprobieren. Ich bin mir jedoch nicht sicher, ob meine Lösung funktioniert wenn das Gerät gar nicht als Gerät erkannt wird. Auf jeden Fall kann ich damit die LED meiner Maus ausschalten.
Also scheinbar gibt es 4 Kontakte. Aber Windows zeigt mir das Gerät dennoch nicht an. Ich habe vor kurzem noch herum probiert, was passiert, wenn ich einzelne USB-Geräte im Gerätemanager deaktiviere. Leider bleibt der Strom vorhanden. Also meinst du, dass es Sinn machen würde, eine Linux-distribution zu installieren? Wie sähe das denn aus, wenn ich Linux nur in einer VM installiere? Das Ding ist, dass ich dafür dann einen extra Rechner nutzen würde, in den ich dann auch meine TV-Karte rein bauen würde - wie das mit der Kompatibilität mit Linux und den TV-Karten aussieht weiss ich aber nicht. Habe häufiger gehört, dass es da Probleme geben kann.
Wieviele Kontakte siehst du denn, wenn du in den USB Stecker der Lampe schaust, 2 oder 4? Wenn es nur 2 sind, dann fehlen die Datenleitungen komplett und das Gerät kann gar nicht als solches erkannt werden (allerdings würde es dann afaik auch nur max. 100mA bekommen, da die maximal möglichen 500mA erst über einen Befehl vom Gerät angefordert werden müssen, was ohne Datenleitungen nicht geht.)
(Ganz nebenbei: Welche Linuxdistribution ist langfristig stabil, ist zur Multimediawiedergabe geeignet und möglichst klein in der Installation? Ich richte mir dann einen Rechner ein, der ausschließlich zur Medienwiedergabe einrichten )
Beitrag zuletzt geändert: 1.10.2009 18:07:23 von nerdinator -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage