Zurücksetzen des USB-Anschlusses eines MacBook Pro

2

Ich versuche, Informationen zum Zurücksetzen des USB-Anschlusses eines MacBook Pro über die Befehlszeile des Terminals zu erhalten. Ich verwende den USB-Anschluss, um über einen seriellen Anschluss mit einem ioread GUC232A auf ein Netzwerkgerät zuzugreifen und eine Automatisierung durchzuführen. Wenn das Skript fertig ist, muss ich den USB <-> Serial Adapter physisch trennen und erneut anschließen, um den MacBook USB-Anschluss für einen nachfolgenden Automatisierungslauf freizugeben. Wie Sie sehen, ist dies nicht praktikabel.

Ich habe mir die folgende Lösung angesehen, aber sie funktioniert nicht sehr zuverlässig und ehrlich gesagt, ich bin nicht besonders daran interessiert, Treiber zu entladen und neu zu laden.

sudo kextunload IOUSBMassStorageClass.kext
sudo kextload /System/Library/Extensions/IOUSBMassStorageClass.kext

Ich könnte einen Single-Port-Terminalserver von Lantronix verwenden, um über SSH, das wiederum über RS232 verbunden ist, auf den Terminalserver zuzugreifen. Diese Lösung ist jedoch noch nicht auf dem Tisch.

Für Vorschläge zu einem USB-zu-Ethernet-Terminalserver, bei dem der USB-Anschluss als Konsole für den Zugriff auf das Netzwerkgerät fungiert, sind wir dankbar.

Python
quelle

Antworten:

2

Aktualisieren:

Es gibt zwei Möglichkeiten, einen USB-Stick zurückzusetzen:

  • Hardware (siehe unten). Dies entspricht dem Ein- und Ausstecken eines Geräts. Ideal zum Testen eines einzelnen Geräts, das zurückgesetzt werden muss.
  • Software ( Neustart des USB-Subsystems? ). Dadurch wird der USB-Bus vollständig zurückgesetzt. Hervorragend geeignet, wenn das USB-Subsystem aufgelegt ist.

Ich sah ein ähnliches Szenario, das gelöst wurde, indem ein Momentschalter mit der USB + 5V-Leitung des USB-Kabels (normalerweise der rote Stecker) verbunden wurde. Wenn der Techniker das Gerät zurücksetzen wollte (simulieren, dass es entfernt und dann wieder eingesetzt wird), drückte er (hielt ihn ein oder zwei Sekunden lang gedrückt) den Schalter, um die Stromversorgung des USB-Geräts zu unterbrechen. Wenn das Gerät freigegeben wird, wird die Stromversorgung wiederhergestellt, und das Gerät wird vom Computer neu geladen.

Bildbeschreibung hier eingeben

Dies hatte den Vorteil, dass nur das betreffende Gerät und nicht alle Geräte am gesamten USB-Bus betroffen waren.

Bei einer schnellen Suche konnte ich vorgefertigte Schalter finden , die dies für weniger als 10 USD leisten

Bildbeschreibung hier eingeben

Für eine weniger "klobige" Lösung könnten Sie einen USB-Hub mit einzelnen Netzschaltern wie dem Sabrent 4 Port erwerben .

Allan
quelle
Vielen Dank für die tolle Erklärung und die Links. Wie im ursprünglichen Beitrag erwähnt, suche ich nach einer Lösung, die automatisiert werden kann. Für Vorschläge zu einem USB-zu-Ethernet-Terminalserver, bei dem der USB-Anschluss als Konsole für den Zugriff auf das Netzwerkgerät fungiert, sind wir dankbar.
Pythonian
1
Ich habe dieses Produkt von Digi gesehen , das USB over IP ist, aber wenn Sie den Port automatisch zurücksetzen müssen, was ist mit Arduino oder Rasp. Pi? Sie können den von mir beschriebenen Schalter mit einer Schnittstelle ausführen, die über den Befehl ssh gesteuert werden kann. Nur ein Gedanke.
Allan
Das hört sich sehr interessant an. Ich dachte darüber nach, eine Raspel zu machen. Pi-Lösung, aber ich wollte nur sehen, ob jemand eine Lösung kennt, die bereits entwickelt wurde und eine "Plug-n-Play" -Lösung sein könnte.
Pythonian
Ihr Digi-Link sieht aus wie ein Jackpot! Ich werde das versuchen ... Vielen Dank @Allan
Pythonian
1
@pythonian - Nach einigen Recherchen zu einer ähnlichen Frage habe ich eine Möglichkeit gefunden, den USB-Stick über die Befehlszeile zurückzusetzen. Siehe diese Frage / Antwort
Allan