Jump to content

[Risolto] Sleep/Wake tramite iniezione nel DSDT


mrmojorisin17
 Share

116 posts in this topic

Recommended Posts

Sarebbe troppo bello!!!

Comunque per il momento mi arrendo, ho anche poco tempo, causa università, per mettermi a fare test e approfondire le mie conoscenze.

Eppure mi pare così strano che su due hardware così simili ci siano differenze abissali come queste.

La cosa che mi più mi fa i*******e è che c'ero così vicino...

Ora si è aggiunta anche questa cosa dell'SBUS e dell'LPCB. A quanto pare non sono così fondamentali (il SO non li carica all'avvio, però il PC si comporta bene), ma non sarebbe meglio se venissero caricati?

LPCB è fondamentale per lo speedstep, sbus è meglio se c'è però normalmente a me funge anche senza...

 

Il fatto che torna subito attivo dopo lo sleep è legato a qualcosa che lo risveglia subito, potrebbe essere un device usb ad esempio, se guardi in console puoi trovare il responsabile e da li iniziare a cercare nel dsdt o da altre parti cosa c'è di strano...

 

La posizione di DTPG non ha alcuna importanza (come già detto da smith@@) basta che sia esterna ad ogni altro Device, Method etc...

Link to comment
Share on other sites

Ciao scrax.

 

Ho dato un'occhiata al kernel.log, sia per quanto riguarda gli errori relativi all'SMBus, sia per quanto riguarda quelli relativi all'LPCB.

 

sdpond.png15e6yy1.png

 

Dall'IOReg mi sono preso gli ID:

 

LPCB pci8086,27b9

SBUS pci8086,27da

 

34ziv14.png2f0etms.png

2dl584h.png

 

Ho provato a modificare l'Info.plist dei due injector di smith@@ aggiungendo i miei due ID, ma SMBus e LPCB non vengono caricati lo stesso. :)

 

Edit

Hibernate Image is too old by XXXXXXX seconds [...]

L'errore (ammesso che così si possa chiamare così) che mi compare subito dopo la schermata di boot di Chameleon può entrare qualcosa col mio errore Sleep/Wake?

Link to comment
Share on other sites

Faccio il punto della situazione.

Sono ripartito da 0 col DSDT.

Sono partito dal DSDT "vergine" estratto con DSDTSE.

Ecco le iniezioni che ho fatto:

 

	Scope (\)
 {
	 Name (SSDT, Package (0x0C)
	 {
		 "CPU0IST ", 
		 0x7F6DC5D1, 
		 0x0245, 
		 "CPU1IST ", 
		 0x7F6DC816, 
		 0xD4, 
		 "CPU0CST ", 
		 0x7F6DBEA7, 
		 0x06A5, 
		 "CPU1CST ", 
		 0x7F6DC54C, 
		 0x85
	 })
	 Name (CFGD, 0x132468B1)
	 Name (PDC0, 0x80000000)
	 Name (PDC1, 0x80000000)
	 Name (SDTL, Zero)
 }

 

	Scope (_PR)
 {
	 Processor (CPU0, 0x00, 0x00001010, 0x06)
	 {
		 Name (HI0, Zero)
		 Name (HC0, Zero)
		 Name (_PSS, Package (0x07)
		 {
			 Package (0x06)
			 {
				 0x063C, 
				 0xF9D4, 
				 0x0A, 
				 0x0A, 
				 0x0C18, 
				 0x0C18
			 }, 

			 Package (0x06)
			 {
				 0x05B7, 
				 0xDE3F, 
				 0x0A, 
				 0x0A, 
				 0x0B16, 
				 0x0B16
			 }, 

			 Package (0x06)
			 {
				 0x0532, 
				 0xC3E6, 
				 0x0A, 
				 0x0A, 
				 0x0A14, 
				 0x0A14
			 }, 

			 Package (0x06)
			 {
				 0x04AD, 
				 0xA803, 
				 0x0A, 
				 0x0A, 
				 0x0911, 
				 0x0911
			 }, 

			 Package (0x06)
			 {
				 0x0428, 
				 0x906D, 
				 0x0A, 
				 0x0A, 
				 0x080F, 
				 0x080F
			 }, 

			 Package (0x06)
			 {
				 0x03A3, 
				 0x77EB, 
				 0x0A, 
				 0x0A, 
				 0x070C, 
				 0x070C
			 }, 

			 Package (0x06)
			 {
				 0x031E, 
				 0x631A, 
				 0x0A, 
				 0x0A, 
				 0x060A, 
				 0x060A
			 }
		 })
		 Method (_PDC, 1, NotSerialized)
		 {
			 CreateDWordField (Arg0, Zero, REVS)
			 CreateDWordField (Arg0, 0x04, SIZE)
			 Store (SizeOf (Arg0), Local0)
			 Store (Subtract (Local0, 0x08), Local1)
			 CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
			 Name (STS0, Buffer (0x04)
			 {
				 0x00, 0x00, 0x00, 0x00
			 })
			 Concatenate (STS0, TEMP, Local2)
			 _OSC (Buffer (0x10)
				 {
					 /* 0000 */	0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
					 /* 0008 */	0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
				 }, REVS, SIZE, Local2)
		 }

		 Method (_OSC, 4, NotSerialized)
		 {
			 CreateDWordField (Arg3, Zero, STS0)
			 CreateDWordField (Arg3, 0x04, CAP0)
			 CreateDWordField (Arg0, Zero, IID0)
			 CreateDWordField (Arg0, 0x04, IID1)
			 CreateDWordField (Arg0, 0x08, IID2)
			 CreateDWordField (Arg0, 0x0C, IID3)
			 Name (UID0, Buffer (0x10)
			 {
				 /* 0000 */	0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
				 /* 0008 */	0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
			 })
			 CreateDWordField (UID0, Zero, EID0)
			 CreateDWordField (UID0, 0x04, EID1)
			 CreateDWordField (UID0, 0x08, EID2)
			 CreateDWordField (UID0, 0x0C, EID3)
			 If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
				 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
			 {
				 Store (0x06, Index (STS0, Zero))
				 Return (Arg3)
			 }

			 If (LNotEqual (Arg1, One))
			 {
				 Store (0x0A, Index (STS0, Zero))
				 Return (Arg3)
			 }

			 Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
			 Store (And (PDC0, 0xFF), PCP0)
			 If (And (CFGD, One))
			 {
				 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0, 
					 0x09), 0x09)), LNot (And (SDTL, One))))
				 {
					 Or (SDTL, One, SDTL)
					 OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, One)), DerefOf (Index (SSDT, 0x02
						 )))
					 Load (IST0, HI0)
				 }
			 }

			 If (And (CFGD, 0xF0))
			 {
				 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
					 )), LNot (And (SDTL, 0x02))))
				 {
					 Or (SDTL, 0x02, SDTL)
					 OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
						 )))
					 Load (CST0, HC0)
				 }
			 }

			 Return (Arg3)
		 }
	 }

	 Processor (CPU1, 0x01, 0x00001010, 0x06)
	 {
		 Name (HI1, Zero)
		 Name (HC1, Zero)
		 Name (_PSS, Package (0x07)
		 {
			 Package (0x06)
			 {
				 0x063C, 
				 0xF9D4, 
				 0x0A, 
				 0x0A, 
				 0x0C18, 
				 0x0C18
			 }, 

			 Package (0x06)
			 {
				 0x05B7, 
				 0xDE3F, 
				 0x0A, 
				 0x0A, 
				 0x0B16, 
				 0x0B16
			 }, 

			 Package (0x06)
			 {
				 0x0532, 
				 0xC3E6, 
				 0x0A, 
				 0x0A, 
				 0x0A14, 
				 0x0A14
			 }, 

			 Package (0x06)
			 {
				 0x04AD, 
				 0xA803, 
				 0x0A, 
				 0x0A, 
				 0x0911, 
				 0x0911
			 }, 

			 Package (0x06)
			 {
				 0x0428, 
				 0x906D, 
				 0x0A, 
				 0x0A, 
				 0x080F, 
				 0x080F
			 }, 

			 Package (0x06)
			 {
				 0x03A3, 
				 0x77EB, 
				 0x0A, 
				 0x0A, 
				 0x070C, 
				 0x070C
			 }, 

			 Package (0x06)
			 {
				 0x031E, 
				 0x631A, 
				 0x0A, 
				 0x0A, 
				 0x060A, 
				 0x060A
			 }
		 })
		 Method (_PDC, 1, NotSerialized)
		 {
			 CreateDWordField (Arg0, Zero, REVS)
			 CreateDWordField (Arg0, 0x04, SIZE)
			 Store (SizeOf (Arg0), Local0)
			 Store (Subtract (Local0, 0x08), Local1)
			 CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
			 Name (STS1, Buffer (0x04)
			 {
				 0x00, 0x00, 0x00, 0x00
			 })
			 Concatenate (STS1, TEMP, Local2)
			 _OSC (Buffer (0x10)
				 {
					 /* 0000 */	0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
					 /* 0008 */	0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
				 }, REVS, SIZE, Local2)
		 }

		 Method (_OSC, 4, NotSerialized)
		 {
			 CreateDWordField (Arg3, Zero, STS1)
			 CreateDWordField (Arg3, 0x04, CAP1)
			 CreateDWordField (Arg0, Zero, IID0)
			 CreateDWordField (Arg0, 0x04, IID1)
			 CreateDWordField (Arg0, 0x08, IID2)
			 CreateDWordField (Arg0, 0x0C, IID3)
			 Name (UID1, Buffer (0x10)
			 {
				 /* 0000 */	0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
				 /* 0008 */	0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
			 })
			 CreateDWordField (UID1, Zero, EID0)
			 CreateDWordField (UID1, 0x04, EID1)
			 CreateDWordField (UID1, 0x08, EID2)
			 CreateDWordField (UID1, 0x0C, EID3)
			 If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
				 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
			 {
				 Store (0x06, Index (STS1, Zero))
				 Return (Arg3)
			 }

			 If (LNotEqual (Arg1, One))
			 {
				 Store (0x0A, Index (STS1, Zero))
				 Return (Arg3)
			 }

			 Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
			 Store (And (PDC1, 0xFF), PCP1)
			 If (And (CFGD, One))
			 {
				 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC1, 
					 0x09), 0x09)), LNot (And (SDTL, 0x10))))
				 {
					 Or (SDTL, 0x10, SDTL)
					 OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
						 )))
					 Load (IST1, HI1)
				 }
			 }

			 If (And (CFGD, 0xF0))
			 {
				 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC1, 0x18
					 )), LNot (And (SDTL, 0x20))))
				 {
					 Or (SDTL, 0x20, SDTL)
					 OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
						 )))
					 Load (CST1, HC1)
				 }
			 }

			 Return (Arg3)
		 }
	 }
 }

 

	Method (DTGP, 5, NotSerialized)
 {
	 If (LEqual (Arg0, Buffer (0x10)
			 {
				 /* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
				 /* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			 }))
	 {
		 If (LEqual (Arg1, One))
		 {
			 If (LEqual (Arg2, Zero))
			 {
				 Store (Buffer (One)
					 {
						 0x03
					 }, Arg4)
				 Return (One)
			 }

			 If (LEqual (Arg2, One))
			 {
				 Return (One)
			 }
		 }
	 }

	 Store (Buffer (One)
		 {
			 0x00
		 }, Arg4)
	 Return (Zero)
 }

 

				Name (_SUN, 0x05)
			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x10)
					 {
						 "AAPL,Haslid", 
						 Buffer (0x04)
						 {
							 0x01, 0x00, 0x00, 0x00
						 }, 

						 "AAPL,aux-power-connected", 
						 Buffer (0x04)
						 {
							 0x01, 0x00, 0x00, 0x00
						 }, 

						 "AAPL,backlight-control", 
						 Buffer (0x04)
						 {
							 0x01, 0x00, 0x00, 0x00
						 }, 

						 "AAPL,BacklightRestore", 
						 Buffer (0x04)
						 {
							 0x01, 0x00, 0x00, 0x00
						 }, 

						 "AAPL,HasPanel", 
						 Buffer (0x04)
						 {
							 0x01, 0x00, 0x00, 0x00
						 }, 

						 "device_type", 
						 Buffer (0x08)
						 {
							 "display"
						 }, 

						 "model", 
						 Buffer (0x07)
						 {
							 "GMA950"
						 }, 

						 "built-in", 
						 Buffer (One)
						 {
							 0x01
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }

 

						LWAK,   1,

 

						Method (_PSW, 1, NotSerialized)
					 {
						 If (Arg0)
						 {
							 Store (One, ^^PCI0.LPCB.H_EC.LWAK)
						 }
						 Else
						 {
							 Store (Zero, ^^PCI0.LPCB.H_EC.LWAK)
						 }
					 }
				 }

				 Device (PNLF)
				 {
					 Name (_HID, EisaId ("APP0002"))
					 Name (_CID, "backlight")
					 Name (_UID, 0x0A)
					 Name (_STA, 0x0B)

 

Lower temperatures SBRG/LPCB hack


This will allow you to have a proper LPC device registered under OSX.
It will lower your CPU temperature when using Native speedstep. (Appleintelcpupowermanagement).

Be sure to add your hardware´s LPC id to AppleLPC.kext and add this code into your DSDT.

If you get audio stuttering or audio glitches with this fix, then You have also to remove the IRQ to
Device (TMR)/(TIMR) and Device (PIC)/(IPIC)




Locate Device (SBRG) or Device (LPCB) and add the hacked id:


Device (SBRG) /* Also known as  Device (LPCB) */
		 {
			 Name (_ADR, 0x001F0000)
			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x02)
					 {
						 "device-id",
						 Buffer (0x04)
						 {
							 0x18, 0x3A, 0x27, 0xb9 /* hack the ID.. */
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }

 

Da IOReg: IOName pci8086,27b9

 

SBUS Hack

This hack will properly load SBUS device onto your registry.

Simply locate SBUS device by name or by adress (0x001F0003), then add this code:


		 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)
		 }



Example:


Device (SBUS)
	 {
		 Name (_ADR, 0x001F0003)
		 Method (_DSM, 4, NotSerialized)
		 {
			 Store (Package (0x04)
				 {
					 "name", 
					 "pci8086,27da", 
					 "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,

 

Da IOReg: pci8086,27da

 

Risultato: soliti errori in console per quanto riguarda SMBus e LPCB (non vengono caricati); Sleep/Wake come sempre. Ovvero Sleep a quanto pare ok ma Wake immediato; al Wake rumoraccio della testina dell'HD che sembra "sbattere", trackpad impazzito per circa un minuto e Bluetooth che inizia a funzionare dopo circa 20 secondi.

Altra cosa che ho notato al Wake: se ho un dispositivo USB inserito ricevo il seguente errore:

 

24uxkwi.jpg

Link to comment
Share on other sites

Faccio il punto della situazione.

 

Allora, una cosa findamentale nell' inserire degli ID nel DSDT è che serve solo quando dobbiamo CAMBIARE id, pertanto se invece che iniettare quelli delle guide che hai citato iniettii tuoi, cioè quelli che già vengono passati al sistema dai chipset originali, non serve a nulla.

Iniettare l'ID è come cambiare targa quando ci son le targhe alterne se incolli sulla tua targa dispari la stessa targa dispari non serve a nulla, devi cambiarla con una targa pari in modo che vada bene al sistema. ;)

 

In consolle devi cercare errori o messaggi relativi a "wake" non sbus e lpcb. Quello che ci interessa è vedere nei registri cos'è che fa partire il wake.

 

Altrimenti puoi provare anche con qualche disabler del tipo NullCpuPower o sleepenabler

 

Buon smanettamento

Link to comment
Share on other sites

Ecco gli errori relativi al Wake nel kernel.log:

 

2wdplc3.png

 

NullCPUPowerManagement.kext e SleepEnabler.kext non hanno sortito gli effetti sperati.

E poi vorrei evitare il più possibile disabler di quel genere.

 

Ok, se non posso iniettare nel DSDT i miei ID reali in quanto il SO non li riconosce, che ID inietto?

 

Edit A quanto si legge nel kernel.log potrebbero essere tutti i Device USB responsabili del Wake immediato. O sbaglio?

Possibili soluzioni?

Link to comment
Share on other sites

Ragazzi forse ci siamo quasi!

Lo Sleep funziona e ho Wake solamente con la pressione del tasto di spegnimento!

Certo il Wake non è proprio immediato immediato (ci pensa un pò prima di risvegliarsi), però almeno adesso l'accoppiata Sleep/Wake sembra funzionare.

Come al solito al Wake c'è il "rumoraccio" della testina dell'HD (almeno credo che sia quella) e il "problema trackpad".

Al secondo Wake il rumoraccio sparisce, ma rimane il problema trackpad.

Il tutto in modalità corrente.

Adesso faccio anche delle prove in modalità batteria.

 

Aggiornamento

In modalità batteria le cose vanno alla grande. Il Wake è molto più veloce (circa 2-3 secondi). In più non ho né il rumoraccio dell'HD né il trackpad impazzito.

Non sembra dare problemi neanche il Bluetooth.

Rimane il problema dei Device collegati. Al Wake ottengo l'errore: Il disco non è stato espulso correttamente [...] (vedi post precedente).

Ecco il kernel.log:

 

23v1g95.png

 

ps Ancora nulla da fare per quanto riguarda MSBus e LPCB.

Link to comment
Share on other sites

confermo quanto detto da scrax.non gettare via tutto il lavoro fatto prima

se vuoi eliminare il nullcpu devi iniettare codice darwin in 2 sezioni

 

si. generalmente non inietti i tuoi dati MA solo in 3 casi ovvero audio/vga e le posizioni relative ai device UHCI (e questultime non rientrano nel tuo caso)

nel resto delle operazioni solitamente si usano artifizi per indicare id MAC OSK like al posto dei device veri.. es HDEF al posto di AZAL.. GIGE, etc..

 

ma non sitamo li a menar..

 

per gli errori di USB removal il DSDTSE lo dice chiaramente e tu nel dsdt_wake dei primi allegati ce l'avevi a posto.. io stesso avevo verificato e sono i

Notify (\_SB.PWRB, 0x02)

 

per ciascuna periferica usb (sotto scope _GPE)

 

vedi mio post34

 

quindi rimetticeli o usa il vecchio dsdt

tanto alla fine li arrivi

 

 

altra cosa: device id/posizione/comportamento sono una mappa.. non sono un meccanismo ma uno schema logico. è poi il sistema operativo che tramite regole e Kext a gestirle. Ecco perchè si trucca il dsdt.. non per creare cose inesistenti (oltre un certo punto non avresti benefici!) ma per far si che i driver pensino di avere un mac sotto il culo e non dare errori o non caricare proprio.

 

quindi secondo me potresti tentare 1000 volte ma arrivare sempre a questo punto

 

quel dsdt del nc10 era magico.. probabilmente devi anche capire che il vero apporto 'sistemistico' non sta nel copiare e incolalre un pezzo di mac nel tuo pc 'a forza' poichè non è detto che funzioni. cioè alcune cose non ci sono e va bene, ma avere una entry device e farla quadrare in compilazione infilando dichiarazioni e variabili non implica che poi tu hai o meno quel device caricato.

il vero apporto sistemistico l'hai dato alle prime battute quando hai delle frasi in cui devi trovare la tringa giusta per il tuo sistema

e cercare nel device tree le voci vere o tentando di inserire valori che non sono standard.

 

prova a lavorare su quello.. modifica il dsdt nc10 solo nei punti mancanti allora!

Link to comment
Share on other sites

Per il Wake ci siamo, non ho fatto altro che inserire questo codice sotto tutte le voci USB:

 

Name (_PRW, Package (0x02)
{
0x1D,
0x03
})

 

Non so se basti, ma a quanto pare sì.

L'unico problema, almeno credo, rimane quello dell'errore che mi dà al Wake se ho dei device USB inseriti.

Ho guardato su DSDTSE alla voce "Device removal error (USB) fix", però non mi è tanto chiaro.

Il codice che dice di aggiungere c'è, però non so se è in tutti i posti in cui deve essere.

Link to comment
Share on other sites

I notify ci sono,pertanto io proverei ad aggiungere gli id consigliate nel USB UHCI HACK 2 in modo da vedere le usb come interne, prima magari guarda in system profiler se tele da come:

 

Posizione controller host: USB integrata

 

This hack adds an id of a Mac to the USB to make it more compatible with OSX.



Device (UHC1)
           {
               Name (_ADR, 0x001D0000)
               Name (UPS1, Package (0x02)
               {
                   0x03, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                           [color="#FF0000"]0x34, 0x3a, 0x00, 0x00[/color]  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC2)
           {
               Name (_ADR, 0x001D0001)
               Name (UPS1, Package (0x02)
               {
                   0x04, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                           [color="#FF0000"]0x35, 0x3a, 0x00, 0x00[/color]  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC3)
           {
               Name (_ADR, 0x001D0002)
               Name (UPS1, Package (0x02)
               {
                   0x0C, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                           [color="#FF0000"]0x36, 0x3a, 0x00, 0x00 [/color]  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC4)
           {
               Name (_ADR, 0x001A0000)
               Name (UPS1, Package (0x02)
               {
                   0x0E, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                          [color="#FF0000"] 0x37, 0x3a, 0x00, 0x00[/color]     /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC5)
           {
               Name (_ADR, 0x001A0001)
               Name (UPS1, Package (0x02)
               {
                   0x05, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                          [color="#FF0000"] 0x38, 0x3a, 0x00, 0x00  [/color] /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC6)
           {
               Name (_ADR, 0x001A0002)
               Name (UPS1, Package (0x02)
               {
                   0x20, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0xC4, One)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URES,   8
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URES)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x03, URES)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                           [color="#FF0000"]0x39, 0x3a, 0x00, 0x00 [/color]  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (EHC1)
           {
               Name (_ADR, 0x001D0007)
               Name (UPS1, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0x62, 0x02)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                         [color="#FF0000"]  0x3a, 0x3a, 0x00, 0x00 [/color]  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (EHC2)
           {
               Name (_ADR, 0x001A0007)
               Name (UPS1, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_PRW, 0, NotSerialized)
               {
                   Return (UPS1)
               }

               OperationRegion (USBR, PCI_Config, 0x62, 0x02)
               Field (USBR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                          [color="#FF0000"] 0x3c, 0x3a, 0x00, 0x00[/color]   /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

Link to comment
Share on other sites

Allora, in System Profiler il Bus USB mi viene dato come "Posizione controller host: USB integrata".

Ho dato un'occhiata all'Hack di DSDTSE che mi hai suggerito.

Questa la parte di codice del mio DSDT relativa alle USB:

 

			Device (USB1)
		{
			Name (_ADR, 0x001D0000)
			OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
			Field (U1CS, DWordAcc, NoLock, Preserve)
			{
				U1EN,   2
			}

			Name (UPRW, Package (0x02)
			{
				0x03, 
				0x03
			})
			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, U1EN)
				}
				Else
				{
					Store (Zero, U1EN)
				}
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_S4D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x1D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x07)
					{
						"AAPL,current-available", 
						0x05DC, 
						"AAPL,current-extra", 
						0x03E8, 
						"AAPL,current-in-sleep", 
						0x0BB8, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

		Device (USB2)
		{
			Name (_ADR, 0x001D0001)
			OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
			Field (U2CS, DWordAcc, NoLock, Preserve)
			{
				U2EN,   2
			}

			Name (UPRW, Package (0x02)
			{
				0x04, 
				0x03
			})
			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, U2EN)
				}
				Else
				{
					Store (Zero, U2EN)
				}
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_S4D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x1D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x07)
					{
						"AAPL,current-available", 
						0x05DC, 
						"AAPL,current-extra", 
						0x03E8, 
						"AAPL,current-in-sleep", 
						0x0BB8, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

		Device (USB3)
		{
			Name (_ADR, 0x001D0002)
			OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
			Field (U2CS, DWordAcc, NoLock, Preserve)
			{
				U3EN,   2
			}

			Name (UPRW, Package (0x02)
			{
				0x0C, 
				0x03
			})
			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, U3EN)
				}
				Else
				{
					Store (Zero, U3EN)
				}
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_S4D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x1D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x07)
					{
						"AAPL,current-available", 
						0x05DC, 
						"AAPL,current-extra", 
						0x03E8, 
						"AAPL,current-in-sleep", 
						0x0BB8, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

		Device (USB4)
		{
			Name (_ADR, 0x001D0003)
			OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)
			Field (U4CS, DWordAcc, NoLock, Preserve)
			{
				U4EN,   2
			}

			Name (UPRW, Package (0x02)
			{
				0x0E, 
				0x03
			})
			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, U4EN)
				}
				Else
				{
					Store (Zero, U4EN)
				}
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_S4D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x1D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x07)
					{
						"AAPL,current-available", 
						0x05DC, 
						"AAPL,current-extra", 
						0x03E8, 
						"AAPL,current-in-sleep", 
						0x0BB8, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

		Device (USB7)
		{
			Name (_ADR, 0x001D0007)
			Device (HUB7)
			{
				Name (_ADR, Zero)
				Device (PRT1)
				{
					Name (_ADR, One)
				}

				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT3)
				{
					Name (_ADR, 0x03)
				}

				Device (PRT4)
				{
					Name (_ADR, 0x04)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT5)
				{
					Name (_ADR, 0x05)
				}

				Device (PRT6)
				{
					Name (_ADR, 0x06)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT7)
				{
					Name (_ADR, 0x07)
				}

				Device (PRT8)
				{
					Name (_ADR, 0x08)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						Zero, 
						Zero, 
						Zero
					})
				}
			}

			Name (UPRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_S4D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Name (_PRW, Package (0x02)
			{
				0x1D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x07)
					{
						"AAPL,current-available", 
						0x05DC, 
						"AAPL,current-extra", 
						0x03E8, 
						"AAPL,current-in-sleep", 
						0x0BB8, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

 

O sono scemo io, oppure è il sonno che mi assale. Ma dove dovrei inserire gli ID "like Mac" nel mio DSDT? Il codice suggerito mi sembra abbastanza diverso mio codice. :rolleyes:

Link to comment
Share on other sites

Eccomi di nuovo qua.

Finalmente l'accoppiata Sleep/Wake funziona! :D

Anche se con qualche problemino.

Il netbook va in Sleep sia tramite Fn+F12, sia tramite la funzione Stop, attivata con la pressione del tasto di spegnimento e dal menù del Finder.

Il Wake è abbastanza lento; dalla pressione del tasto di accensione per il risveglio, al risveglio vero e proprio passano quasi 15 secondi (non è un pò troppo?).

Rimane anche il problema dell'errore che ottengo se lascio qualche Device USB collegato.

Ho provato a seguire il consiglio di scrax (DSDTSE: USB UHCI Hack 2) ma non so come rigirarmi. Non saprei dove aggiungere quella parte di codice.

La mia sezione USB sembra essere molto diversa da quella proposta. :)

 

Ancora niente da fare per quanto riguarda l'SMBus (o almeno credo!).

Nel kernel.log con chiave di ricerca smbus non appare niente, quindi questo voglia dire che non ci sono errori. La cosa strana è che se faccio una ricerca nell'IOReg con chiave sbus non trova niente! :wacko:

Invece, per quanto riguarda l'LPCB nel kernel.log compare sempre lo stesso errore:

 

ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized

Link to comment
Share on other sites

infatti io non l'avrei modificata perchè è troppo diversa. del resto non tutti sono uguali.

per il pstate e cstate prova il voodoopstate

per l'smbus come vedi aver l'entry non vuol dire avere il kext caricato

 

e se non lo avessi proprio? cmq vista/7 come gestiscono lo sleep/wake? perchè trovo che spesso ci siano comportamenti simili a volte identici.. e anche schifezze identiche

Link to comment
Share on other sites

in system preference cosa ti dice?

 

Siccome il codice che dobbiamo aggiungere ha la funzione di modificare gli ID delle varie USB non ci serve modificare il codice, ci basta aggiungere la proprietà che vogliamo (cambiare ID) alla fine del blocco indipendentemente da cosa c'è prima.

 

il codice da aggiungere è questo:

Device (USB1)
           {  // [color="#FF0000"]<--- Qui iniziano le proprietà del device usb 1....[/color]
               Name (_ADR, 0x001D0000)
               OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
               Field (U1CS, DWordAcc, NoLock, Preserve)
               {
                   U1EN,   2
               }

               Name (UPRW, Package (0x02)
               {
                   0x03, 
                   0x03
               })
               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, U1EN)
                   }
                   Else
                   {
                       Store (Zero, U1EN)
                   }
               }

               Method (_S3D, 0, NotSerialized)
               {
                   Return (0x02)
               }

               Method (_S4D, 0, NotSerialized)
               {
                   Return (0x02)
               }

               Device (RHUB)
               {
                   Name (_ADR, Zero)
                   Device (PRT2)
                   {
                       Name (_ADR, 0x02)
                       Name (_UPC, Package (0x04)
                       {
                           Zero, 
                           Zero, 
                           Zero, 
                           Zero
                       })
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x07)
                       {
                           "AAPL,current-available", 
                           0x05DC, 
                           "AAPL,current-extra", 
                           0x03E8, 
                           "AAPL,current-in-sleep", 
                           0x0BB8, 
                           Buffer (One)
                           {
                               0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }// [color="#FF0000"]<--- Qui finisce unl'ultima delle proprietà del device usb 1.[/color]
/* [color="#FF0000"]quindi prima della chiusura del device aggiungiamo l'iniezione 
degli ID apple al posto di quelli originali[/color][color="#2E8B57"]*/
              Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                           0x34, 0x3a, 0x00, 0x00  /*<--------- ID MAC------*/
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }/*[/color] [color="#FF0000"]fine della nostra iniezione, 
fai attenzione che il primo numero cambia per ogni usb, 
quindi usb due sarà 0x35, 0x3a, 0x00, 0x00[/color]*/
           }// [color="#FF0000"]<--- Qui finiscono le proprietà del device usb 1....[/color]

 

 

In verde la parte da aggiungere e in rosso le note :)

 

 

NOTA:

Possono funzionare anche solo con queste parti:

 

Device (USB1) {Name (_ADR, 0x001D0000)

Name (_PRW, Package (0x02) {0x0D, 0x03})}

 

ma con un dsdt ridotto molto rispetto a quello che hai ora (e gli Id iniettati via EFI string).

Link to comment
Share on other sites

Eccomi. :P

 

Allora, ho spiattellato il netbook! :)

Sto cercando di fare un'installazione retail il più pulita possibile, ovvero senza utilizzare l'accoppiata NetbookBootMaker+Netbookinstaller.

Il problema è che non riesco a bootare dall'HD dove ho installato Snow a causa di un noiosissimo panic sull'IOATAFamily.kext che mi sta facendo impazzire da ieri notte.

L'obiettivo è quello di riniziare, in quanto negli ultimi DSDT c'era un bordello assurdo; codice del DSDT di tea che non c'entrava nulla col mio hardware e cose del genere.

Il DSDT da cui continuare è già a buon punto (Speedstep Vanilla, alcune ottimizzazioni, device inseriti, etc.).

Non appena riuscirò ad avere Snow funzionante ripartiranno i test per ottenere Sleep/Wake, partendo stavolta da un DSDT fatto ad hoc solo ed esclusivamente per il mio hardware.

 

A presto! :P

Link to comment
Share on other sites

Sleep e Wake funzionanti!

E' bastato ripartire da un'installazione retail più pulita (evitati NetbookBootMaker e NetbookInstaller) e creare un DSDT nativo plasmato ad hoc per il mio hardware, senza prendere spunti da DSDT di altre macchine.

 

Grazie a tutti coloro che mi hanno dato una mano. :(

Link to comment
Share on other sites

Sleep e Wake funzionanti!

E' bastato ripartire da un'installazione retail più pulita (evitati NetbookBootMaker e NetbookInstaller) e creare un DSDT nativo plasmato ad hoc per il mio hardware, senza prendere spunti da DSDT di altre macchine.

 

Grazie a tutti coloro che mi hanno dato una mano. :(

:(

 

il dsdt definitivo è quello postato qui sopra?

Link to comment
Share on other sites

  • 2 weeks later...

Ciao a tutti,

mi intrufolo in questa discussione perchè vedo che avete un bel pò di dimestichezza sul tema SLEEP.

il problema che ho sul mio portatile è questo: lo sleep e l'ibernazione funzionano entrambi correttamente ma solo a patto che li attivi separatamente.

mi spiego meglio. lo sleep funziona benissimo se imposto la funzione di stop in modalità "solo sleep" (pmset hibernatemode 0) e altrettanto fa l'ibernazione se imposto lo stop nella modalità "solo ibernazione" (pmset hibernatemode 1). ciò che il portatile non riesce a fare è risvegliarsi dallo sleep quando imposto la modalità di stop in sleep/hibernate (pmset hibernatemode 3). dopo aver scritto il file di immagine della ram va in sleep correttamente ma non vuol saperne di risvegliarsi. si riaccendono le ventole e i led ma lo schermo rimane nero e non posso fare nulla se non spegnere forzatamente. la cosa strana però è che al riavvio il sistema si risveglia correttamente dallo sleepimage che aveva creato.

è da parecchio tempo che cerco di capire da cosa possa dipendere questo problema ma non riesco a venirne a capo e anche una semplice vostra opinione a riguardo mi sarebbe davvero molto utile.

 

ringrazio in anticipo tutti

 

ciao

Link to comment
Share on other sites

Ciao :wacko:

Guarda io di dimestichezza ne ho ben poca, se ho risolto e solo grazie all'aiuto che mi è stato dato.

A differenze tua a me non funziona l'ibernazione, ma solo lo sleep.

In Preferenze di Sistema/Sicurezza hai la flag su Usa la memoria virtuale sicura?

Link to comment
Share on other sites

No. Ho disabilitato la memoria virtuale sicura perchè se è attiva non va l'ibernazione.

Il fatto è che non capisco quale possa essere l'origine del problema e per quale ragione il risveglio funziona se lo stop è impostato in modalità solo sleep. Forse è qualcosa nella tabella DSDT ma non saprei da che parte cominciare. Speravo che il log della console registrasse eventuali errori che avvengono nel momento in cui fallisce il risveglio ma purtroppo non segna nulla. riparte dal momento in cui, dopo il riavvio, fa il resume dal file immagine dell'ibernazione.

 

in ogni caso ti ringrazio per il supporto

Link to comment
Share on other sites

 Share

×
×
  • Create New...