Re: Kernel und Module

From: Bernd Walter <ticso(at)cicely7.cicely.de>
Date: Tue, 13 Nov 2012 13:49:09 +0100

On Fri, Nov 09, 2012 at 03:35:57PM +0100, Oliver Fromme wrote:
> Gerhard Brauer wrote:
> > Aber: ich habe gleichzeitig eine ssh-Sitzung auf den Recher. Wenn
> > ich davon dann eingebe:
> > kldunload ohci && sleep 10 && kldload ohci
> > dann kann ich _immer_ Maus+Tastatur wieder erwecken. Diese
> > zehnsekündige Pause brauche ich, da ein kürzeres Intervall zwischen
> > Ent- und Wiederladen nicht funktioinert.
>
> Seltsam. In der Zeit passiert ja eigentlich nichts, außer
> dass der Kernel halt seine Strukturen aufräumt. Ich hätte
> vermutet, dass eine Sekunde auch genügt.

Der USB-Controller liefert 10 Sekunden lang keine Framinginformationen
und angeschlossene Geräte müssen sich komplett disconnecten und
ggfs schlafen legen.
Wenn die Frames hingegen nur kurz aus bleiben kann das sein, dass
die Geräte keinen Disconnect machen und diese ihre Konfiguration behalten.
Der USB Controller diese dann wegen bereits vorhandener Konfiguration
nicht erreichen.
Zudem kann die im Gerät fälschlicherweise konfigurierte Betriebsadresse
auch zu kollisionen mit einem anderen Gerät führen, welches die gleiche
Adresse frisch konfiguriert bekommt - das ist aber eher unwahrscheinlich,
weil der USB Stack USB Ports mit angeschlossenen toten Geräten in der
Regel abschalten sollte.
Aber in der Tat 1 Sekunde hätte genügen sollen.
Die USB Spezifikation besagt 3ms zum erkennen eines suspends.
Das sind für low und full-speed 3 ausbleibende Frames.
Und weitere 7 ms bleiben, bis das Gerät den Strom vom Bus abschalten muss.
Aber bei den ganzen kaputten USB-Firmwares traue ich Geräten durchaus
zu mehrere Sekunden zu benötigen - sowas merkt doch der 08/15-Konsumer
gar nicht.

> Normalerweise sollte das Entladen aber beim Suspend gemacht
> werden, nicht erst beim Resume. Dann erübrigt sich evtl.
> auch der Sleep (müsste man ausprobieren).

Ja - so muss der Kernel jetzt auch tote Geräte abwerfen.
Kann sein, dass hierdurch erst volle 10 Sekunden notwendig sind.
Der Suspend selber sollte mit weniger auskommen.
Es geht naürlich besser solange alles noch funktioniert.
Der sleep erübrigt sich dann natürlich auch, weil die Geräte durch
den suspend lange genug schlafen mussten.
Außerdem bekommen die Geräte jetzt garantiert einen suspend und
verbrauchen entsprechend weniger Strom.

-- 
B.Walter <bernd@bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 13 Nov 2012 - 13:49:23 CET

search this site