Disconnettere / connettere dispositivo USB dalla riga di comando

6

Supponiamo di avere un telefono Galaxy collegato via USB al mio mac

L'elenco dei dispositivi USB è semplice e posso vedere il mio telefono collegato:

ioreg -p IOUSB -l -w 0

È possibile, dato che ho l'uscita ioreg, per disconnettere un dispositivo specifico (senza disconnetterlo FISICAMENTE)?

    
posta Shai 01.02.2017 - 17:50
fonte

1 risposta

1

UPDATE: Si scopre che è un modo per farlo non solo in macOS, ma in tutti i sistemi * NIX grazie a repository MVP su GitHub. Il programma si chiama uhubctl e ti consente di attivare e riaccendere l'alimentazione sia per le singole porte USB che per interi hub.

Come la descrizione implicherebbe, dovrai sapere a quale porta USB il dispositivo in questione è collegato (o far girare l'intero hub se sei sicuro che non causerà problemi con altre periferiche), e io consiglio comunque di utilizzare diskutil eject diskX (o sudo umount /dev/sdX per Linux e umount diskX per BSD) prima di riaccendere la porta per garantire che il dispositivo venga smontato in modo pulito.

Il codice sorgente per uhubctl è qui

La pagina GitHub è qui

Dovrai compilarlo dalla fonte in un modo o nell'altro, sia con make che tramite brew . Qualunque sia la tua scelta, avrai bisogno di una versione più recente di libusb di quella che è stata confezionata con macOS per compilarla. Se hai MacPorts e Brew installati puoi aggiornare libusb alla versione 10.0.21 e installare uhubctl in un solco fallo facendo quanto segue:

sudo port deactivate libusb
sudo port install libusb-devel
brew link --overwrite libusb
brew tap mvp/uhubctl https://github.com/mvp/uhubctl
brew install --HEAD uhubctl

Testato e in grado di confermare il funzionamento con hub USB Apple e di terze parti su macOS 10.13.1

P.S. @aeroxy Ho ammesso che tutto il tempo che avevi ragione, e che avevo torto.

Se vuoi smontarlo e avere il suo UDI (Unix Disk Identifier, cioè disk1s3 per la 3a partizione sul tuo secondo disco) puoi eseguire diskutil unmount diskXsX dal terminale e rimontarlo usando il stesso comando, sostituendo unmount con mount.

Se stai usando Android Debug Bridge per connetterti puoi aprire un terminale, andare a qualsiasi cartella in cui è installato ed eseguire ./adb stop per spegnere il server Android USB locale, quindi ./adb start per riconnetterti quando ti serve a.

Potresti anche usare Utility Disco per smontare il dispositivo.

Infine, se vuoi espellerlo per simulare lo scollegamento completo senza scollegarlo fisicamente, esegui diskutil eject diskXsX dalla riga di comando, oppure fai clic con il pulsante destro del mouse su Utility Disco e fai clic sul pulsante "Rimuovi".

MODIFICA: se non si utilizza ADB o un programma simile come Android File Transfer (AFT), non sarà possibile disconnettere il dispositivo, poiché non è mai stato collegato in primo luogo. Affinché un dispositivo Android possa connettersi a un sistema Unix (e per estensione macOS) è necessario soddisfare due condizioni: 1.) Il dispositivo deve avere la modalità sviluppatore abilitata e il debug USB attivato, oppure il dispositivo annullerà automaticamente qualsiasi richieste da un altro computer per connettersi tramite USB. 2.) È necessario avere un programma come ADB o AFT installato, questi programmi eseguono un server MTP Android locale e sono richiesti per inviare la richiesta di connessione e leggere il filesystem del dispositivo Android.

La modalità sviluppatore può essere attivata andando a Settings>About Device> e toccando Build Number 7 volte, il debug USB è nel menu delle opzioni sviluppatore che ora si trova nella parte inferiore della pagina delle impostazioni.

L'app AFT ufficiale per macOS può essere trovata qui: [link] ( link ) e la versione da riga di comando di ADB può essere trovato qui: [link] ( link )

Una volta che entrambi i prerequisiti sono stati soddisfatti, dovresti essere in grado di disconnettere il dispositivo senza disconnetterlo arrestando il server ADB o smontandolo / espellendolo come si farebbe con qualsiasi altro filesystem esterno.

    
risposta data 01.02.2017 - 21:09
fonte

Leggi altre domande sui tag