Jump to content
You are a guest user Click to join the site
Gengik84

guide ANSWERED Mappatura porte Usb

Recommended Posts

Lo scopo di questa guida è quello di configurare il nostro hack in un modo ancora migliore, senza usare UsbInjectall (escluso per metodo Rehabman) e nessuna patch per port limit attenendoci a ciò che Apple fa e vuole…. Ossia un massimo di 15 porte disponibili e utilizzabili

 

Decisamente molto più qualitativo. …. 😉

 

Occorrente:

  1. IORegistryExplorer.app
  2. MaciAsl (lo trovate in download)
  3. Procuriamoci una usb sia 2.0 che 3.0
  4. Aggiungiamo la patch per aumentare il port limit sul config
  5. Aggiungiamo usbinjectall.kext nella EFI

 

Riavviamo....

 

Iniziamo con la mappatura…

 

Apriamo IOReg, scorriamo fino a trovare XHC o nel caso XHCI

Nota:Nel caso le nostre usb fossero nominate XHC1 vanno rinominate tramite una patch sul config

 

scherm76.png

 

Adesso colleghiamo poi scolleghiamo prima una usb 2.0 e poi una 3.0

Nota: Questo procedimento dovrà essere eseguito senza chiudere IOReg e ripetuto su ogni singola porta usb del nostro hack…mobo e case..

Una volta terminato ci ritroveremo ad un esempio di questo tipo

 

scherm71.png

 

Le usb verranno mostrate in rosso dopo averle scollegate

Adesso ipotizziamo di aver terminato e basiamoci sulla foto precedente

Annotiamoci le porte non usate..per esempio HS02-HS04

Ovviamente questo è un esempio…potreste averne molte di più…con porte SSPx

La differenza tra le due nominazioni è:

 

HSxx = USB 2.0

SSPx= USB 3.0

 

A questo punto è necessario un ssdt per disabilitare le porte non usate

 

Metodo Basato su SSDT generico fatto da Rehabman

 

 

 

Apriamo ssdt con MaciASL

Adesso dobbiamo eliminare le porte che non usiamo, questo perché ssdt comprende tutte le porte possibili e utilizzabili della scheda madre

 

scherm72.png

 

Per rimuovere le vostre porte non in uso vi basterà rimuovere la parte che vi ho evidenziato…ovviamente è solo un esempio e non è detto che quella specifica porta non sia usata nel vostro hack.

Una volta aver rimosso le porte, all’inizio del ssdt definiamo i l numero di porte in uso

"port-count", Buffer() { 26, 0, 0, 0 },

26 è il numero di porte totali disponibili su schede madri Skylake e successivi… ma su osx il limite imposto è per 15 porte al massimo

Noi dobbiamo cambiare 26 con il numero delle porte che usiamo e deve essere inferiore o uguale a 15…ma non superiore.

Adesso passiamo alla parte "UsbConnector"

In questa parte dobbiamo definire il “tipo di porta” .. quindi se è 2.0, 3.0 e se è una usb interna

Guardate questo esempio

 

scherm73.png

 

Quindi le usb 2.0 avrà "UsbConnector", 0,

la usb 3.0 avrà "UsbConnector", 3,

Mentre le usb interne dovranno avere "UsbConnector", 255, ( 0xFF)

 

CREDITS:

@ Apple

@ ACPICA

@ Pokenguyen (primo che all’inizio di El Capitan ha fatto presente l’aggiunta da parte di Apple del limite di porte in uso)

@ PJalm

@ Piker

@ Rehabman

 

Metodo Alternativo Basato sulle proprie ACPI compatibile da Skylake e successivi

 

 

Questo è il metodo che preferisco e che uso da anni nei miei hack o di amici stretti…

Lo ritengo migliore, per il mio modesto parere, perché andiamo a usare e lavorare sul nostro proprio ssdt, senza usarne di aggiuntivi

 

Estraiamo le nostre acpi tramite clover (il dump richiede che sia installato nella ESP)

Premiamo F4 quando siamo nella GUI,per sicurezza che il dump sia corretto aspettiamo una trentina di secondi prima di avviare.

Montiamo la partizione EFI del dispositivo usato per il boot

 

Rechiamoci in EFI/Clover/acpi/origin

Troveremo varie tabelle, noi dobbiamo andare a cercare ed esaminare SSDT in special modo quello che gestisce le usb

Nella stragrande maggioranza dei casi sarà la tabella nominata xh_rvp08, xh_rvp10 etc... 

Nota: il Nome del relativo ssdt contenente le usb può cambiare da mobo a mobo, quindi dovrete voi controllare le vostre acpi e trovare quello contenente XHC

Apriamola con MaciASL

Adesso visualizzeremo le porte usb disponibili per la mobo

Soffermiamoci su questa parte di codice…ovviamente partiamo dalla prima usb HS01

You must logged to view this content.

Please login or registered

 

Bene adesso l’operazione è molto semplice One in questo caso vuol dire Vero/Abilitato

La parte di codice da modificare per ogni singola usb è:

Return (GUPC (One))

Quindi porta abilitata lasceremo One

Porta disabilitata cambieremo sostituendo One con Zero

Tornando all’esempio sopra…

Il codice rispettivamente per ogni porta disabilitata sarà:

You must logged to view this content.

Please login or registered

Nota: Anche il codice relativo può essere diverso, quindi potresti anche avere una cosa di questo tipo:

You must logged to view this content.

Please login or registered

in questo caso la parte interessata sarà contenuta all'interno della prima condizione, quindi avremo la solita sostituzione

You must logged to view this content.

Please login or registered

 

Finito di cambiare il valore per ogni porta basandoci sulla nostra mappatura non ci resta che compilare e salvare

 

Parte finale

 

Collochiamo il nostro SSDT in EFI/Clover/acpi/patched

Questo però non sarà sufficiente perché la tabella originale (OEM) verrà sempre caricata e quindi il nostro ssdt non avrà alcun effetto

Quindi dobbiamo “Droppare” la relativa tabella OEM

Cosa vuol dire?

Significa bloccare il caricamento della stessa per permettere al nostro ssdt di lavorare

Apriamo il config.plist, rechiamoci nella parte ACPI/Drop Tables

Clicchiamo sul simbolo +

Selezioniamo SSDT —> TableId ed accanto scriviamo il nome esatto della tabella da bloccare…esempio xh_rvp08

Il risultato sarà questo

 

scherm74.png

 

Come possiamo essere sicuri del corretto TableId?

Ecco spiegato nell'imagine sottostante:

2047509747_Schermata2019-12-28alle16_51_23.png.d806ce882bd3d50e5b2dee9d5c4ed8f9.png

 

Nota: Qualora trovassimo per esempio " AMI " questo non dovrà essere usato perchè nel caso del drop usando appunto il TableID, questo deve essere unico per tale ssdt e non uguale su più ssdt.

In questo caso dovrete usare Lenght per droppare la tabella.

Quindi seguite la relativa spiegazione nella parte della guida inerente a X299.

 

Rimuoviamo o disabilitiamo la patch per port limit e salviamo

Rimuoviamo usbinjectall.kext dalla relativa cartella kext in EFI

Riavviamo

Aprendo ioreg, cercando XHC noteremo che verrano visualizzate solo le porte in uso

Questo è l’esempio del mio hack

 

scherm75.png

 

 

Perfezionamento: Definizione dei connettori.

In download, nella sezione ACPI troverete una mia patch.

Scaricatela, aprite il file txt copiate e incollate il contenuto nella finestra patch di MaciAsl.

Applicate la patch sul relativo ssdt.

Adesso possiamo Abilitare/Disabilitare la porta modificando il primo valore mentre con il secondo valore andremo a definire la tipologia del connettore usb.

Quindi andiamo nella relativa porta e scriviamo/sostituiamo il contenuto del metodo _UPC con:

You must logged to view this content.

Please login or registered

Esempio: One ovviamente renderà la porta attiva, qualora volessimo disattivarla e vogliamo usare questo metodo, basterà mettere Zero al suo posto.

Nota: Per la disattivazione va ugualmente bene il metodo elencato sopra.

Seconda parte: 0x03 va a definire la relativa porta come semplice Usb 3.0

Nella mia patch sono elencati i vari connettori che possono essere usati, in primo luogo troviamo diciamo quelli più "comuni" e successivamente quelli diciamo opzionali.

 

Quindi con questa unica patch potete fare di tutto, abilitare/disabilitare e definire...

 

Spero che vi possa aiutare e spero anche che venga apprezzato e non solo copiato senza un credits come già è accaduto!

Vii invito a leggere, anche giusto per informazione, questo topic che ha vari riferimenti

 

 

 

 

Buon Hack !

  • Like 2
  • +1 2

Share this post


Link to post
Share on other sites

Metodo Per Serie 8/9 (Haswell)

 

Un altro metodo per questa serie di hardware è quello di apportare alcune modifiche direttamente sul dsdt poiché le usb sono qui definite

 

Il tutto viene eseguito tramite _UPC modificando ed aggiungendo questa parte di codice

You must logged to view this content.

Please login or registered

 

 

La modifica manuale e la relativa aggiunta può non essere facile per tutti, per questo ho scritto una patch per aiutarvi

 

La patch è scritta con impostata, di default, la prima porta usb2 quindi HS01

 

Quindi dovrete modificare questa patch per ogni porta da disattivare cambiando su di essa HS01 con HS03 o SSP3 per esempio e quindi applicarla nuovamente

 

 

 

Nota:la patch potrebbe funzionare anche su altre serie ma non l'ho personalmente testata, quindi questo è il motivo per cui ho definito per haswell

 

in caso ..come anche in caso di problemi..fate sapere allegando le vostre tabelle acpi pulite!

 

 

 

UPDATE SSDT PER DISABILITARE LE PORTE SU HASWELL

 

 

 

Dopo aver mappato le porte , aprite questo ssdt

SSDT-DisableUSB-Haswell-9Series.dsl.zip

 

dovete togliere il commento ossia // riguardante la usb da disattivare

 

Prestate attenzione questo dovrà essere fatto per sia la usb corrispondente sia per il relativo "External"

 

Esempio di disattivazione della porta HS01

 

Immagine di esempio

Disable USB.png

 

una volta eseguito per tutto le vostre porte da disattivare...compilate e salvate in .aml

 

Collocate ssdt in patched e rimuovete la patch per port limit

 

 

 

Nota è stato scritto in base ad alcune acpi...quindi potrebbero esserci da fare in caso degli "aggiustamenti" in caso...

 

Fatelo presente sul topic e cercherò di aggiornare tale ssdt oppure di scriverlo e allegarlo un altro

Disable_USB.txt.zip

Disable_USB_Haswell_8series.zip

  • +1 1

Share this post


Link to post
Share on other sites

Update X299

 

 

 

 

La procedura alla fine è la stessa per Skylake e successivi con alcune ulteriori attenzioni e modifiche

 

Estraiamo le tabelle acpi premendo F4 nella gui di clover, rechiamoci in origin e cerchiamo ssdt relativo alle usb

 

 

 

Nel mio esempio è SSDT-2-AMI.aml

 

una volta aperto troviamo a partire dalla prima usb

 

 

You must logged to view this content.

Please login or registered

 

 

Come per l'altri casi dobbiamo modificare GUPC (0x01) in GUPC (Zero)

 

Da ripetere per ogni porta da disattivare

 

quindi il codice finale sarà

 

 

You must logged to view this content.

Please login or registered

 

 

finito di disattivare le nostre porte non in uso su X299 bisogna fare altre modifiche

 

Avendo PC00 finito originalmente nelle acpi, x299 deve e usa un rename acpi sul config PC00 to PCI0

 

 

 

Quale è il problema?

 

Se noi collochiamo il nostro ssdt in patched questo non verrà poi caricato anche se droppata la tabella oem originale perchè "tutte" le acpi hanno a quel punto, grazie al rename di clover PCI0

 

La nostra tabella patchata e reiniettata invece avrà sempre PC00 e questo non va bene.... quindi

 

 

 

Nel nostro compilatore andiamo su Find, mettiamola spunta su "Replace"

 

e modifichiamo il tutto da PC00 in PCI0 come da immagine sottostante

 

Schermata__2018-09-01 alle 16.56.46.jpg

 

Clicchiamo su " All "

 

Compiliamo e salviamo.

 

 

 

Collochiamola in EFI/Clover/acpi/Patched

 

Adesso dobbiamo modificare il config e droppare la tabella OEM originale

 

in questo caso ho usato " Length " invece di " table" perchè ci sono altre tabelle con stesso "nome" e quindi usando questo bloccherei non solo la tabella delle usb ma tutte quelle con stesso nome

 

 

drop tables.png

 

Da dove si ricava Lenght?

 

Lo trovate

 

All'inizio della tabella ssdt su cui lavorate

 

Usando clover configurator per modificare il config, prendete direttamente il valore contenuto dentro le parentesi come evidenziato nell' immagine

Length.png

 

Adesso sempre dovuto ai rename che si usando su X299 ed a altro occorre diciamo definire un ordine di caricamento delle tabelle evitando così vari problemi

 

Per questo usiamo " SortedOrder "

 

Qui scriviamo il nome esatto della tabella trovata in origin su cui abbiamo lavorato

SortedOrder.png

 

Rimuoviamo o disabilitiamo la patch per port limit

 

Salviamo, riavviamo...

 

Adesso se avete eseguito tutto correttamente avrete attivate solo le usb che usate...

 

 

 

NOTA: se dovete in caso rimuove il vostro ssdt da patched ricordate di rimuovere anche il relativo Drop Tables

 

Altrimenti potresti aver problemi al boot oppure nessuna usb funzionante.. perchè ovviamente come detto prima quella funzione blocca il caricamento della tabella OEM e quindi questa tabella non verra mai caricata perchè mancante anche da patched..

 

 

 

 

 

NOTA-2: Potete rinominare tale ssdt messo in patched.. per esempio SSDT_DisableUSB.aml

 

Però ricordate che in SortedOrder il nome dovrà essere il medesimo

 

Quindi come cambiate nome al ssdt cambiate anche li...

 

Buon Hack! empticons_thu

Schermata 2018-09-01 alle 16.56.46.png

Share this post


Link to post
Share on other sites

buongiorno a tutti, quando apro MaciASL, e poi cerco di aprire la tabella mi compaiono questi errori....

 

cosa sto sbagliando ?

Senza titolo.jpeg

 

 

Share this post


Link to post
Share on other sites

Buon di , possibile il mio Lenovo g50-80 NON abbia SSDT x USB???

Share this post


Link to post
Share on other sites

@Matteo88 usi una versione sbagliata di iasl.. skylake devi usare 6... altrimenti non riesce a leggere le acpi

 

 

 

@Baio77 si è normale... devi mappare le usb è seguire il post 2 usando la mia patch alegata e ripeterla per disattivare le porte

 

 

 

Edit: Matteo88 passami ioreg con la tua mappatura

Share this post


Link to post
Share on other sites
"Gengik84" post_id="493" time="1519550255" user_id="2">

@Matteo88 usi una versione sbagliata di iasl.. skylake devi 6... altrimenti non riesce a leggere le acpi

 

 

 

@Baio77 si è normale... devi mappare le usb è seguire il post 2 usando la mia patch alegata e ripeterla per disattivare le porte

 

 

 

Edit: Matteo88 passami ioreg con la tua mappatura

 

ok ora provo grazie emoticon_41

Share this post


Link to post
Share on other sites

gengik ho provato con tutte le versioni del 6 ma non da nessun risultato, ho omesso anche quelli con la x come da guida, ma nulla

 

non so provate voi

Share this post


Link to post
Share on other sites

era la app di maciASL che era una versione vecchia ora ha aperto la tabella e provo a seguire la guida...grazie gengink

Share this post


Link to post
Share on other sites

Ecco qui con i risultati, queste in foto sono le porte non vengono utilizzate , con patch Port limit o senza i risultati sono identici , procedo a correggere DSDT .....

 

https://postimg.org/image/sxa3az3yz/">LINK_TEXT>

 

Ho problemi con la patch , funziona su HS05 - HS08 -SSP2 le atre rilasciano errore in compilazione DSDT .....

iMac di Boriss .zip

Share this post


Link to post
Share on other sites

Per non saper né leggere né scrivere... Prova a inserire manualmente la patch.

Share this post


Link to post
Share on other sites

https://www.macos86.it/memberlist.php?mode=viewprofile&u=55">Baio77

 

Ho preso il dsdt dal tuo topic però non so se è l'attuale che usi.. nel caso guarda questo e ricopia sul tuo e poi prova..

 

Comunque se non usi ne la patch per port limit, ne eventuali kext per far funzionare le usb tipo inject all o FakePCIID...

 

La guida non ti serve...è fatta proprio nel caso per non usare quelle cose

DSDT.aml.zip

Share this post


Link to post
Share on other sites

Oppss...ho proprio dimenticato di agire sulla quella porta... emoticon_vergogna Sorry...

 

 

 

Comunque corretto..anche per quella, in allegato

 

emoticon_sorriso

DSDT.aml.zip

Share this post


Link to post
Share on other sites

in scrittura velocità, non è gran che, soprattutto se sono usb3..

 

dovresti provare a testare su altro supporto, meglio se pulito, appena formattato

 

La velocità precedente l'avevi testata?

Share this post


Link to post
Share on other sites

sto testando tutte le porte con USB 3.0 appena formattata.

 

Ieri erano simili ,dai dati poco più veloce oggi con la stessa USB ....

 

Sono soddisfattissimo , lo ioreg risulta perfetto

Share this post


Link to post
Share on other sites
"Gengik84" post_id="496" time="1519550803" user_id="2">

Non decompilare ... usa https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-MaciASL-2017-0117.zip">MaciASL aggiornato selezionando acpi 6.1 nelle preferenze

 

vai subito ad aprire il corretto ssdt

 

emoticon_41 emoticon_41 emoticon_41 fantastico gengik ho seguito la tua guida e sono riuscito a mappare le usb!!! grazie per quello che fai emoticon_thanks

Share this post


Link to post
Share on other sites

Ciao Gen... Secondo te, avendo le mie maledette USB3, io troverei giovamento?

Share this post


Link to post
Share on other sites

Ciao... Beh no..

 

Tieni presente che Apple usa ed ha solo usb intel

 

Quindi XHC per usb 3.0 e su versioni precedenti a skylake EHC che sono usb 2.0

 

La mappatura è ovviamente solo per usb intel

Share this post


Link to post
Share on other sites

emoticons_triste emoticons_triste emoticons_triste Rimarrò segregato nelle mie problematiche.. Grazie.

Share this post


Link to post
Share on other sites

Vorrei acquistare un portatile. Come faccio a capire se ha le USB intel? Esiste un sito? In rete non ho trovato nulla e vorrei evitare di acquistarlo e poi scoprire che le USB non vanno bene.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.