Quanti dischi rigidi USB possono essere collegati a un laptop usando un replicatore di porte?


10

Ho un laptop con 2 porte USB 2.0 e 1 USB 3.0 e vorrei sapere quanti dischi rigidi USB potrei collegarci. C'è un limite rigido nel kernel di Linux?

Per quanto riguarda le prestazioni, qual è la velocità condivisa tra le unità collegate alla porta?


1
Mio padre ama i suoi nuovi dispositivi USB. Lo prenderò ancora per il suo compleanno e ti farò sapere quando raggiungerà il limite: D
Greg,

Risposte:


13

Teoricamente puoi avere fino a 127 dispositivi collegati a un PC host ma ci sono limiti pratici di potenza e larghezza di banda dei dati che lo impedirebbero. Questi 127 dispositivi possono essere disposti in una rete a più livelli di hub fino a sette livelli, contando l'host PC come livello 1 e il dispositivo più lontano come livello 7. Il PC fornisce 5 unità di potenza a un hub. Ogni unità è 100 mA e ogni porta richiede un minimo di 1 unità. L'hub stesso ne consuma una, lasciando 4 unità per un massimo di 4 porte. Quindi non troverai mai un hub alimentato da bus con più di quattro porte.

Gli hub alimentati dal bus hanno un'ulteriore limitazione. Poiché ogni porta ha solo una singola unità di potenza, possono collegarsi solo a valle a un singolo dispositivo. Non è possibile collegarli a un altro hub per l'espansione perché tale hub richiede altre 5 unità. E non tutti i dispositivi possono funzionare su una singola unità. Un dispositivo a bassa potenza come un mouse funzionerà, ma un dispositivo ad alta potenza può richiedere fino a 5 unità. I dispositivi USB ad alta potenza funzionano solo se collegati direttamente a un host PC o a un hub autoalimentato in grado di fornire 5 unità alla porta.

Quando si collega un dispositivo, il PC richiede al dispositivo le sue capacità e requisiti. Quindi, ad esempio, il PC sa che è collegato a un hub alimentato da bus a 4 porte, il che significa che ciascuna porta può pilotare solo un'unità. Se si tenta di collegare un dispositivo ad alta potenza a tale hub, il sistema operativo genererà un messaggio di errore e rifiuterà di abilitare il dispositivo.

Gli hub alimentati dal bus sono generalmente una cattiva idea a causa di queste limitazioni e sono destinati principalmente all'uso mobile, non desktop.

D'altra parte, se i dispositivi collegati alla porta sono autoalimentati, potrebbe non essere necessario più di un'unità dall'hub. Ad esempio, le unità disco esterne hanno la propria potenza, quindi dovrebbe funzionare correttamente su un hub alimentato dal bus.

Un hub autoalimentato sarà in grado di fornire 5 unità a ciascuna porta, consentendo dispositivi ad alta potenza e ulteriori livelli di hub. Quindi puoi collegare un hub autoalimentato a 7 porte e poi altri sette hub a 7 porte in quello, dandoti 49 porte disponibili solo al quarto livello.

Alcuni hub autoalimentati ti permetteranno di usarli anche in modalità bus, ma se provi a collegare troppi dispositivi, il sistema operativo ti darà un messaggio di errore.

La maggior parte dei chip del controller hub ha 4 porte, quindi comunemente si vedono hub a 4 porte. Quando vogliono costruire un hub più grande, usano solo due chip a 4 porte. Ma devono collegarli a margherita con il primo chip collegato all'host e il secondo collegato a una delle porte a valle del primo chip. Questo lascia all'utente solo sette porte, tre sul primo chip e quattro sul secondo, da cui il comune hub a 7 porte.

L'USB è plug-and-play, nel senso che non è necessario conoscere nessuna di queste cose quando si collegano le cose. Il sistema operativo tiene traccia del budget di alimentazione di ciascun hub e dispositivo, ti dirà se la connessione non funzionerà e che dovrai utilizzare una porta autoalimentata.

modifica: i pacchetti USB si presentano così:

Gettone:
ID pacchetto: 8 bit
Indirizzo: 7 bit
Endpoint: 4 bit
CRC: 5 bit

Inizio del frame:
ID pacchetto: 8 bit
Numero di frame: 11 bit
CRC: 5 bit

Pacchetto dati:
ID pacchetto: 8 bit
Dati: 0-1023 byte
CRC: 16 bit

Stretta di mano:
ID pacchetto: 8 bit

Poiché l'indirizzo ha solo 7 bit, è possibile avere solo 128 dispositivi sull'intero bus (con 7 bit che possono essere attivati ​​e disattivati ​​ciascuno, sono possibili solo 128 combinazioni di bit diverse). Ciò include il tuo computer, in modo da lasciare 127 altre cose che puoi collegare ad esso.


2
Da dove viene il limite 127? Mi sto solo chiedendo.
crazy2be,

@ crazy2be: chiedi, io modifica :)
Rinzwind

1
@ crazy2be tieni presente che mentre ti sono consentiti 127 dispositivi per controller, è improbabile che il tuo PC fornisca corrente sufficiente per alimentare 127 hard disk. Se ogni unità ha il proprio alimentatore, dovrebbe andare bene, ma non aspettarti che un laptop fornisca così tanta energia.
crasic

127 chiavette USB sono possibili. 128 disco rigido? Non la penso così: D
Rinzwind

che ne dici di trasferimento dati? Se avessi 1 disco rigido a X GBps, un replicatore a 8 porte si trasferirebbe su X / 8 su ciascun disco rigido? E X / 127 nella configurazione massima?
719016,

0

Quindi, scoprirai che con i chipset USB3, in realtà raggiungerai un limite di 30 dispositivi o giù di lì, a causa di un limite di 32 dispositivi (davvero 96 endpoint limite) sui chipset USB3.

Ho affrontato anche questo problema e mi ci è voluto un po 'per trovare il vero problema e le soluzioni. È una lunga pagina, quindi puoi leggerlo lì http://marc.merlins.org/perso/linux/post_2018-12-20_Getting-Around-USB3-xhci-32-Device-Limit- Max-number-of- devices-this-xHCI-host-supports-is-32 .html

Fondamentalmente, si riduce a queste cose
1) esiste un limite di 96 endpoint con USB3 (che si traduce solo in 32 dispositivi)
2) si perdono ulteriori endpoint a causa di hub, l'utilizzo di un cavo USB2 in un hub USB3 restituisce alcuni slot
3) più in generale dovresti disabilitare USB3 se puoi farne a meno (rimuovi il driver del kernel USB3, o più facilmente se puoi, disabilita USB3 nel tuo BIOS). L'uso di un chip USB3 in modalità USB2 non aiuta, è necessario disabilitare USB3 in modo che la scheda madre reindirizzi la porta a un controller USB2 che non ha quel limite di endpoint 4) se non è possibile disabilitare USB3, ottenere una scheda PCIe solo USB2 e quello ti darà davvero 120 dispositivi o giù di lì.

Ulteriori risorse: https://www.spinics.net/lists/linux-usb/msg175224.html
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci? language = it


-2

Per esperienza personale, la mia webcam funzionerà solo se collegata direttamente alle porte USB del mio PC. Non funzionerebbe collegato a un hub alimentato. Ciò implicherebbe per me che incontrerai limiti di larghezza di banda prima di imbatterti in un numero di limiti di dispositivi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.