Jump to content

Due injector per SBUS e LPC


Smith@@™
 Share

34 posts in this topic

Recommended Posts

Ciao ragazzi, sul continuo di questo

ho pensato di crearvi anche i 2 injector per i device di cui sopra. In ogni hack bisognerebbe sempre farli caricare, sempre, ma se non volete mettere mani al DSDT o l'iniezione in quest'ultimo di un id non reale non comporta risultati o non volete toccare i kext originali allora semplicemente inserite come da LSPCI l'id REALE nei plist dei kext in allegato.

Semplice semplice, per chi ha poca dimestichezza col resto. Se 2 sono troppi, riunite i 2 plist in uno.

 

 

Ciao, vi voglio bene :D

SMBus_injector.kext.zip

 

LPC_injector.kext.zip

Link to comment
Share on other sites

Ciao ragazzi, sul continuo di questo

ho pensato di crearvi anche i 2 injector per i device di cui sopra. In ogni hack bisognerebbe sempre farli caricare, sempre, ma se non volete mettere mani al DSDT o l'iniezione in quest'ultimo di un id non reale non comporta risultati o non volete toccare i kext originali allora semplicemente inserite come da LSPCI l'id REALE nei plist dei kext in allegato.

Semplice semplice, per chi ha poca dimestichezza col resto. Se 2 sono troppi, riunite i 2 plist in uno.

 

 

Ciao, vi voglio bene ;)

SMBus_injector.kext.zip

 

LPC_injector.kext.zip

 

 

scusa la mia ignoranza ma in soldoni cosa risolvono ?

mi potresti fare un esempio pratico

comunque grazie stai facendo un ottimo lavoro per questo forum

ciao

Link to comment
Share on other sites

Servono a caricare i device di cui sopra. Se non vuoi "toccare" il tuo dsdt, o l'iniezione di id non reali(fake id) non porta nessun risultato, puoi utilizzare gli injector di cui sopra. In ogni hack che si rispetti dovrebbero sempre essere caricati, sia l'sbus che l'lpc, per motivi che non sto qui a spiegare.

 

Ciao

Link to comment
Share on other sites

Servono a caricare i device di cui sopra. Se non vuoi "toccare" il tuo dsdt, o l'iniezione di id non reali(fake id) non porta nessun risultato, puoi utilizzare gli injector di cui sopra. In ogni hack che si rispetti dovrebbero sempre essere caricati, sia l'sbus che l'lpc, per motivi che non sto qui a spiegare.

 

Ciao

 

grazie per la risposta

Link to comment
Share on other sites

Ciao ragazzi, sul continuo di questo

ho pensato di crearvi anche i 2 injector per i device di cui sopra. In ogni hack bisognerebbe sempre farli caricare, sempre, ma se non volete mettere mani al DSDT o l'iniezione in quest'ultimo di un id non reale non comporta risultati o non volete toccare i kext originali allora semplicemente inserite come da LSPCI l'id REALE nei plist dei kext in allegato.

Semplice semplice, per chi ha poca dimestichezza col resto. Se 2 sono troppi, riunite i 2 plist in uno.

 

 

Ciao, vi voglio bene :D

SMBus_injector.kext.zip

 

LPC_injector.kext.zip

ciao avevo già trovato questi injector, ma non so dove trovare gli id dei devices e sopratutto in che punto del plist

va aggiunta la stringa e in he formato.

Puoi cortesemente illustrare un esempio pratico?

Grazie mille

Link to comment
Share on other sites

trovati dove? li ho postati solo qui e su kexts...

 

recuperi gli id reali dei 2 device, SMBus e ISA bridge, e li incolli rispettivamente nei plist dei kext. Apri il plist, spulcialo e comprendi come e dove inserirlo, e' molto semplice :P IONameMatch

 

Dai un'occhiata ai plist dei kext AppleSMBusPCI e AppleLPC per farti un'idea.

 

Ciao;)

Link to comment
Share on other sites

ciao avevo già trovato questi injector, ma non so dove trovare gli id dei devices e sopratutto in che punto del plist

va aggiunta la stringa e in he formato.

Puoi cortesemente illustrare un esempio pratico?

Grazie mille

 

Ciao a tutti.

 

Un esempio:

 

prendiamo il kext fantoccio di smit@@ dell'SMBUS guardiamo il contenuto del info.plist

troverai:

 

			<array>
			   <string>pci8086,283e</string>
		   </array>

 

altro valore digeribile e' ( RIMOSSO per non generare confusione)

Saluti

 

Fabio

 

EDIT: smith@@ abbiamo scritto quasi in contemporanea... (il fuso orario incide parecchio :P )

Link to comment
Share on other sites

Ciao fabione, vero, il fuso fa grossi danni :P

 

ascolta, solo una cosa, l'id da te postato 3a30 nell'esempio e' gia' contenuto nell' AppleSMBusPCI, non avrebbe senso inserirlo anche qui nell'injector, magari qualcuno potrebbe confondersi notandolo gia' nel kext di cui sopra.

 

Per seminole, non per fabio:

con l'injector tu "inserisci" al volo l'id REALE del device nel kext "originale", col dsdt tu "sovrascrivi" l'id reale con un FAKE id che deve COMBACIARE necessariamente con uno degli id GIA' inseriti nel kext "originale". In quest'ultimo caso gli id devono essere uguali, dovranno appunto combaciare, altrimenti non ci sara' corrispondenza. Quest'ultimo metodo non sempre funziona(Acer E700 in sign), ne' e' adatto a chi non vuole mettere mani al dsdt.

Link to comment
Share on other sites

Ciao fabione, vero, il fuso fa grossi danni :P

 

ascolta, solo una cosa, l'id da te postato 3a30 nell'esempio e' gia' contenuto nell' AppleSMBusPCI, non avrebbe senso inserirlo anche qui nell'injector, magari qualcuno potrebbe confondersi notandolo gia' nel kext di cui sopra.

 

Per seminole, non per fabio:

con l'injector tu "inserisci" al volo l'id REALE del device nel kext "originale", col dsdt tu "sovrascrivi" l'id reale con un FAKE id che deve COMBACIARE necessariamente con uno degli id GIA' inseriti nel kext "originale". In quest'ultimo caso gli id devono essere uguali, dovranno appunto combaciare, altrimenti non ci sara' corrispondenza. Quest'ultimo metodo non sempre funziona(Acer E700 in sign), ne' e' adatto a chi non vuole mettere mani al dsdt.

 

innanzi tutto grazie......

Dunque, ho pensato (forse erroneamente) di risolvere con questi due kext l'errore di caricamento di lspc e smbus evidenziato con l'avvio in verbose mode.

uso il modbios di smith(tnx) non uso dsdt

Questo il risultato di LPCI (in terminale lpci -nn):

00:00.0 Host bridge [0600]: Intel Corporation 4 Series Chipset DRAM Controller [8086:2e20] (rev 03)

00:01.0 PCI bridge [0604]: Intel Corporation 4 Series Chipset PCI Express Root Port [8086:2e21] (rev 03)

00:1a.0 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4 [8086:3a37]

00:1a.1 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5 [8086:3a38]

00:1a.2 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6 [8086:3a39]

00:1a.7 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2 [8086:3a3c]

00:1b.0 Audio device [0403]: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller [8086:3a3e]

00:1c.0 PCI bridge [0604]: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 1 [8086:3a40]

00:1c.1 PCI bridge [0604]: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 2 [8086:3a42]

00:1c.3 PCI bridge [0604]: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 4 [8086:3a46]

00:1c.4 PCI bridge [0604]: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 5 [8086:3a48]

00:1c.5 PCI bridge [0604]: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 6 [8086:3a4a]

00:1d.0 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1 [8086:3a34]

00:1d.1 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2 [8086:3a35]

00:1d.2 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3 [8086:3a36]

00:1d.7 USB Controller [0c03]: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1 [8086:3a3a]

00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev 90)

00:1f.0 ISA bridge [0601]: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller [8086:3a16]

00:1f.2 SATA controller [0106]: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller [8086:3a22]

00:1f.3 SMBus [0c05]: Intel Corporation 82801JI (ICH10 Family) SMBus Controller [8086:3a30]

01:00.0 VGA compatible controller [0300]: nVidia Corporation G92 [GeForce 8800 GT] [10de:0611] (rev a2)

02:00.0 Ethernet controller [0200]: Attansic Technology Corp. Atheros AR8121/AR8113/AR8114 PCI-E Ethernet Controller [1969:1026] (rev b0)

03:00.0 IDE interface [0101]: JMicron Technology Corp. JMB361 AHCI/IDE [197b:2361] (rev 02)

04:00.0 FireWire (IEEE 1394) [0c00]: VIA Technologies, Inc. Unknown device [1106:3403]

05:00.0 SATA controller [0106]: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller [1095:3132] (rev 01)

06:00.0 SATA controller [0106]: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller [1095:3132] (rev 01)

 

 

da qui la stringa inserita nell'injector LPC

 

<key>AppleLPC</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.apple.driver.AppleLPC</string>

<key>IOClass</key>

<string>AppleLPC</string>

<key>IONameMatch</key>

<array>

<string>pci8086,3a16</string>

</array>

<key>IOProbeScore</key>

<integer>1000</integer>

 

e quella di smbus injector peraltro come già evidenziato già contenuta nel kext originale apple

 

<key>PCI SMBus Bridge</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.apple.driver.AppleSMBusPCI</string>

<key>IOClass</key>

<string>AppleSMBusPCI</string>

<key>IONameMatch</key>

<array>

<string>pci8086,3a30</string>

</array>

<key>IOProbeScore</key>

<integer>1000</integer>

 

ammesso che abbia inserito le stringhe giuste nel posto giusto all'avvio questi due kext (injector) non vengono

caricati a causa di un'errore. senza injector invece da i soliti errori su lpc e smbus gli injector sono nella cartella extra

A questo punto mi chiedo dove sbaglio, conviene forse aggiungere le stringhe nei kext originali?

é una vita che cerco di levare questi due maledetti errori di caricamento

grazie della pazienza

Link to comment
Share on other sites

Riguardo all'errore dell'injector dovresti postare che errore, detta cosi' a scatola chiusa e' un po' difficile aiutarti;)

Io proverei sempre a editare i kext originali, nel caso in cui tutto funzioni, ripristinerei quest'ultimi e userei di conseguenza gli injector; gli injector vanno in /Extra/Extensions non in /Extra.

Per l'smbus non devi usare nessun injector, l'id del tuo device e' gia' contenuto nel kext AppleSMBusPCI.

A volte e' necessario, in particolar modo sulle p5q series aggiungere un'ulteriore parte di codice al dsdt per caricare il device di cui sopra, indipendentemente dall'id in questione;

 

per l' LPC e' tutto giusto, controlla sempre con lo ioreg che venga caricato;)

 

 Device (SBUS)
		{
			Name (_ADR, 0x001F0003)
			Device (BUS0)						  // da qui, spesso e' necessaria questa parte di codice
			{
				Name (_CID, "smbus")
				Name (_ADR, Zero)
				Device (DVL0)
				{
					Name (_ADR, 0x57)
					Name (_CID, "diagsvault")
					Method (_DSM, 4, NotSerialized)
					{
						Store (Package (0x03)
							{
								"address", 
								0x57, 
								Buffer (One)
								{
									0x00
								}
							}, Local0)
						MCDP (Arg2, RefOf (Local0))
						Return (Local0)
					}
				}
			}					  // a qui
		}

 

Non uso il metodo DTGP per l'iniezione di altro codice ma l'MCDP. Sostituite con la chiusura del DTGP ;)

Link to comment
Share on other sites

Riguardo all'errore dell'injector dovresti postare che errore, detta cosi' a scatola chiusa e' un po' difficile aiutarti;)

Io proverei sempre a editare i kext originali, nel caso in cui tutto funzioni, ripristinerei quest'ultimi e userei di conseguenza gli injector; gli injector vanno in /Extra/Extensions non in /Extra.

Per l'smbus non devi usare nessun injector, l'id del tuo device e' gia' contenuto nel kext AppleSMBusPCI.

 

 

Dunque ho eliminato i due kext dalla cartella extra/extension ho lasciato intatto il smbus originale (la stringa lspci esiste già) ho editao applelpc e aggiunto la stringa.

I due errori a cui mi riferisco sono questi, anzi questo

quello riguardante la LPC device è sparito, ma resta questo di smbus, ma a questo punto mi viene il dubbio che non centri molto

 

** AppleSMBusPCI::start failed to get acpi path for provider

 

che ne dite?

 

grazie

P.S. NON USO NESSUN DSDT

Link to comment
Share on other sites

Dunque ho eliminato i due kext dalla cartella extra/extension ho lasciato intatto il smbus originale (la stringa lspci esiste già)

 

Te l'ho appena scritto piu' su che esiste gia'..

 

quello riguardante la LPC device è sparito

 

Ovvio che e' sparito, hai usato l'injector..

 

 

Per l'sbus, ti ho gia' scritto che nel tuo caso hai la necessita' di aggiungere al dsdt al device suscritto il codice postato piu' su, senza il quale non viene correttamente caricato. Non c'entra l'id!

 

 

Ciao

Link to comment
Share on other sites

Te l'ho appena scritto piu' su che esiste gia'..

 

 

 

Ovvio che e' sparito, hai usato l'injector..

 

 

Per l'sbus, ti ho gia' scritto che nel tuo caso hai la necessita' di aggiungere al dsdt al device suscritto il codice postato piu' su, senza il quale non viene correttamente caricato. Non c'entra l'id!

 

 

Ciao

 

 

Grazie di tutte le info preziosissime, io non uso il file dsdt.aml (non mi entra in testa come costruirlo ed editarlo a misura del mio sistema) quindi piuttosto che fare danni, visto che il tutto funziona egregiamente mi tengo l'errore....

 

siete veramente preziosi

Link to comment
Share on other sites

  • 3 weeks later...

Ciao a tutti e grazie a Smith per il suo lavoro. Allora, ho voluto provare anche io... Nello specifico AppleLPC originale conteneva già l'ID giusto e quindi non ho avuto bisogno dell'injector. Discorso diverso invece per AppleSmbusPCI. Ho messo l'injector opportunamente modificato in Extra/Extensions, riavviato e in console mi è comparso questo: Not loading kext com.apple.driver.AppleSMBusPCI - not found and kextd not available in early boot.

Allora ho tolto l'injector e editato il kext AppleSMBUSPCI originale con il mio ID, riavviato. Il messaggio in console non c'era più ma girovagando sul forum ho letto che x verificare che SMBUS fosse opportunamente riconosciuto e/o caricato bisognava eseguire kextstat l grep SMBUS. Ho fatto anche quello ma non ho ottenuto nessun output a differenza di altri utenti del forum.. Significa che non è caricato? In Ioreg non trovo nessuna voce riguardo SMBUS... Grazie x l'aiuto

Link to comment
Share on other sites

Not loading kext com.apple.driver.AppleSMBusPCI - not found and kextd not available in early boot.

 

Questo ti compare per ogni injector (ed e' anche abbastanza ovvio). Significa che l'injector viene caricato, sarebbe strano il contrario..

Link to comment
Share on other sites

Ok, infatti lo avevo pensato anche io paragonandolo ad un altro kext che mi da un output simile. Ma c'è un modo per capire se SMBUS è correttamente riconosciuto e se i kext relativi son caricati dato che kextstat l grep SMBUS non mi da nessun output?

Link to comment
Share on other sites

Smith ti chiedo scusa pensavo che lo ioreg si ottenesse digitando la parola sul terminale. X quello ho ottenuto quella stringa. Non sono un genio come ti sarai già accorto. Tu intendi la schermata di IoregistryExplorer?

Link to comment
Share on other sites

E' il PX43. Sei a posto cosi'. Se confronti lo ioreg di un macpro3,1 (originale) col tuo l'sbus, non e' caricato forzatamente. Quindi non e' detto che tu debba "vederlo" caricato. Puoi forzarlo attraverso l'aggiunta di codice nel dsdt, ma non sei obbligato a seguire questa strada. Ti ripeto l'sbus di un macpro3,1 rispetto al tuo identificativo ha solo il nome diverso, sbus e non px43.

Se hai inserito l'id o nel kext o attraverso injector, puoi fermarti. Se ti funziona tutto bene, puoi fermarti. :rolleyes:

Link to comment
Share on other sites

  • 5 months later...

Ciao buon Smith...Ogni tanto torno anche io a rompere le palle :(

 

Siccome anche io in avvio in -v mi sono accorto che dice quell'errore di caricamento dellì APPLESMBUSPCI.kext

 

Ti volevo chiedere un pò di cose.

 

parto dal presupposto che con l'ultimo chameleon che ha P-state automatici , ho editato SBRG = LPCB, per abbassare la temperatura; e quindi uno dei due kext da te proposti se non ho capito male quindi non mi servirebbe.

 

Quindi mi servirebbe solo quello per SBUS.

 

Se invece ho capito male, allora intanto ti rompo sul punto principale.

 

Io i kext injector non vorrei metterli e vorrei fare tutto tramite DSDT.

Solamente che nel mio DSDT non c'è SBUS.

Che faccio ? lo sparo a caso in un punto e lo metto da 0 ? come nell'esempio di DSDTSE:

 

Device (SBUS)

{

Name (_ADR, 0x001F0003)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x04)

{

"name",

"pci8086,3a30",

"device-id",

Buffer (0x04)

{

0x30, 0x3A, 0x00, 0x00

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

OperationRegion (SMBP, PCI_Config, 0x40, 0xC0)

Field (SMBP, DWordAcc, NoLock, Preserve)

{

, 2,

I2CE, 1

}

 

OperationRegion (SMBI, SystemIO, 0x1C00, 0x10)

Field (SMBI, ByteAcc, NoLock, Preserve)

{

HSTS, 8,

 

anche se mi pare parziale però :)

 

E questo è il punto principale.

Poi volevo in caso che anche LPCB lo abbia capito male, cioè il tuo primo injector, se mi dici allora che fare :P

 

Aspetto qui tranquillo la tua rispostona.

Ciao e grazie mille. Veramente stai facendo buone e tante cose per la comunità.

Grazie.

Link to comment
Share on other sites

 Share

×
×
  • Create New...