달력

4

« 2024/4 »

  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2012. 3. 1. 10:12

자신만의 DSDT생성하기 Hackintosh/DSDT2012. 3. 1. 10:12

Update : 이것저것 귀차니즘이라면 Clover 혹은 OpenCore부트로더

https://cafe.naver.com/uefi/12247

- 초큼 충격적인 애기지만 ASUS,MSI, Aslock사의 제조사들이 어떤 시각에서는 저가형보드 생산업체(?)
- 특히 이상하게도 한국내에서는 ASUS 메인보드가 고급 보드로 통한다.
- 왜냐하면 macOS, Linux, Unix, RTOS 등의 분야에서는 그닥 고급보드로 생각하지 않지만
- 심지어 인텔사의 레퍼런스 설계도에 의한 일부 부품은 저가형 칩셋을 사용하고 있음에도 
http://cafe.naver.com/uefi/1158
 
만약 메인보드의 DSDT 에 익숙하지 않거나 구글링하여 찾을 수 없다면 다음 방법이 도움이 된다.
Maldon 이 만든 DSDT Editor를 이용하여 간단하게 맥에서 마더보드에 대한 패치를 실행하여 만드는 방법이다

 


이 방법은 모든 메인보드에 적용되는 것은 아니지만, 많은 메인보드를 패치할 수 있다.
일단 먼저 Patch List 를 확인한다.

이 방법은 반드시 패치할려는 메인보드를 사용해야 한다.
이 방법은 OSX, Linux 혹은 Windows 에서 실행가능하다.

Step

1. Maldon'의 포럼에 가입한다. http://olarila.com/forum/ucp.php?mode=register. 가입하였으면 로긴한다. 

2. Download
- DSDT Editor for Mac http://olarila.com/dsdt/DSDTEditor_Mac.zip,
- DSDT Editor for Windows/Linux http://olarila.com/dsdt/DSDTEditor_Linux_Windows.zip
데스크 탑에 압축을 푼다.

만약 Windows를 사용하고 있다면, Java가 설치되어 있는지 확인해야 한다.

3. 다음단계는 메인보드의 모델패치를 찾는다. http://olarila.com/forum/packs.php 
메인보드 모델을 클릭하여 데스크탑에 간단패치를 저장한다.
- 보너스로 Aslock메인보드 패치 모음 : http://www.mediafire.com/?uh6qiquf34w8pf4

Image



4. DSDT editor 를 실행하여 'File' 에서'Extract DSDT'를 실행하여 자신의 메인보드의 원본 DSDT를 추출한다. editor에서 다음과 같이 어셈블리어 수준의 텍스트들을 볼 수 있을 것이다.



Image

Image



5. 메뉴바에서 'Patch'를 누르고 'Open'을 누른다. 윈도우즈에서 브라우징하여 파일을 open한다. 데스크탑에서  3번에서 다운로드 받은 메인보드 패치를 연다.

Image

Image

ALC8xx AUDIO:
ALC chipset 관련 모델을 메인보드 스펙에서 확인하여 여기에서  http://olarila.com/forum/patches.php 찾아서 동일한 방법으로 메인보드 패치를 적용하여 준다.
eg. 만약 메인보드가 ALC889를 사용한다면, ALC889 패치를 적용한다. 
audio kext(s)는 여전히 필요하지만, HDAEnabler는 불필요하다.

물론, ALC audio 를 사용하지 않는다면 불필요하다.


6. 작은 윈도우가 열릴것이다.  'Apply'를 눌러 적용한다. 수초이내에 완료될 것이고 끝나면 'Close'를 눌러준다.


Image



7. 메뉴바에서 'IASL'를 눌러주고 'Compile'을 실행한다. 박스가 열릴것이고 내부에 몇가지 에러가 있을 가능성이 있다. 'Fix Errors'를 누른다. 수초이내에 0 errors 가 나타날 것이고 박스를 닫는다.



Image

Image



8. 메뉴바에서 'IASL'를 누르고, 'Save AML As'를 눌러서 aml파일을 저장하는데, 조그만 box 가 열릴 것이고 Desktop을 찾아내어, 'Save As' 바에서, ''DSDT.AML''을 입력하고 'Save'를 눌러서 저장한다.



Image



Image



9. 데스크탑에서 dsdt.aml이 보이면 이제 패치된 DSDT 파일을 사용할 수 있다.

Image





NOTES:

만약 메인보드가 패치리스트가 없다면 다음글타래에서 요청할 수 있다. http://olarila.com/forum/viewforum.php?f=19

만약 컴파일 에러가 발생하였다면, iboot 이나 rboot cd를 사용하여 부팅한다.





Thanks to Maldon for the patches, and 'el coniglio' for the editor.

If you wish to donate to Maldon for his immense work on the patches, go to
http://olarila.com/donate/

 


 

'Hackintosh > DSDT' 카테고리의 다른 글

iaslMe  (9) 2011.01.31
Fix DSDT: sleep, shutdown, SATA, No restart  (0) 2010.07.12
Aslock P55 FireWire DSDT 설정하기  (0) 2010.07.09
Asus Mainboard Firewire DSDT  (0) 2010.07.05
DSDT 생성  (4) 2010.06.19
:
Posted by uno-ani
2011. 9. 23. 12:19

DSDT 수정 FAQ2011. 9. 23. 12:19

 Clover 부트로더를 사용하면 이 글은 필요 없다.

1. DSDT 추출
http://j.mp/jrfznx
 
2. DSDT Decompile
http://j.mp/pc5P6K
 
3. DSDT 수정
http://j.mp/oezVvo 
 
4. DSDT Compile


'FAQ' 카테고리의 다른 글

해킨토시 설치 실전  (5) 2012.07.02
맥의 용도  (1) 2012.01.21
해킨토시 - 1. 맥 시스템 기초  (4) 2011.05.02
해킨토시 - 2. 하드웨어  (0) 2011.05.02
해킨토시 - 3. 설치 시작 - 기본적인 사항  (0) 2011.05.02
:
Posted by Ritz®™
2011. 1. 31. 14:35

iaslMe Hackintosh/DSDT2011. 1. 31. 14:35

준비물: iaslMe

당근 어플리케이션>> 유틸리티에서 Terminal 을 실행하여 관리자 권한을 획득한 다음 아래 커맨드를 입력한다.
 

Terminal

perl -e 'open(CMD, "ioreg -lw0 \| grep DSDT|") or die; while(<CMD>) { chomp; if($_ =~ /\"DSDT\.?\d?\"=<([^>]*)>/) { $buff = $1; open(PIP, "|xxd -r -p > ~/Desktop/dsdt.aml") or die; print PIP "$1"; } }'



당근 이 dsdt.aml화일은 윈도우즈에서 추출한 값과 비교를 해보는 것이 좋다. 
바탕화면에 dsdt.aml 화일이 생겼다면 아래 그림과 같이 끌어다 당겨놓으면 iaslMe 어플리케이션이 compile 혹은 decompile하여 준다. 

즉, aml은 dsl로 dsl은 aml로 바꾸어(컴파일하여) 준다. 

dsl화일은 TextEdit등을 이용하여 추가 혹은 수정이 가능하지만, 컴파일된 aml화일은 기계어 코드 형식이므로 Text Edit등으로 열리지 않는다.

iaslMe]


'Hackintosh > DSDT' 카테고리의 다른 글

자신만의 DSDT생성하기  (0) 2012.03.01
Fix DSDT: sleep, shutdown, SATA, No restart  (0) 2010.07.12
Aslock P55 FireWire DSDT 설정하기  (0) 2010.07.09
Asus Mainboard Firewire DSDT  (0) 2010.07.05
DSDT 생성  (4) 2010.06.19
:
Posted by Ritz®™
2010. 5. 14. 16:46

MSI 1651 laptop Hackintosh/NoteBook2010. 5. 14. 16:46

I. 첫번째 설치

설치 이미지 : ipc 10.5.6 실패

시스템 : MSI 1651 laptop.

- "cpus=1 -v" 부팅 플래그를 주어 설치 성공. 단지 cpu가 1core만 동작. <<< dsdt.aml 적용으로 극복해야 함.



II. 재시도

specs:

core 2 duo T9300 (2.5 ghz)
intel pm45 chipset
nvidia 9600M GT


설치시 사용자화에서 다음 그림과 같이 "ACPI Fix" 와 "cpus =1 fix" 를 선택한다.
하드디스크로 재부팅시에 "-v -f " 로 부트플래그를 주어 부팅하여 시스템 설정 모드로 들어간다.

주의 : "-f" 옵션은 재부팅시에 한번만 해주고 다음 재부팅시에는 입력하지 않아도 된다.

:
Posted by Ritz®™
2009. 12. 6. 19:24

Code injection via DSDT for NVIDIA graphics Hackintosh/DSDT2009. 12. 6. 19:24

Created by Team EvOSX86
In this third guide, board and add to our DSDT code, graphics injection that will enable us to stop using Efi strings or injectors
Nvidia video card.
* Note: We've had success with this technique for some GMA950, ATI X3100 and some of the series X1xxx but not yet in HD.
Tools needed:
Ioregistry explorer
Nvidia graphics card working 100% including video outputs needed (QE and Hardware CI).
Having previously read chapter one and two of the guide
Content:
1. How to recognize where our video card in the registry and its associated devices.
2. Decompilation file and added COFIG DSDT.aml chart.
2a. The loader code.
3. Comparison of our code with Ioreg added Nvcaps, reg and renamed.
4. Basic structure of video devices and the DSDT added to our code.
4a. Example portable.
4b. Example computer tower.
5. Compiling and testing.
APPENDIX: How to clean our DSDT video inputs nonfunctional
1. How to recognize where our video card and registration devices
partners.
After downloading the program Ioregistry explorer, executive, we walk the tree of entries until we find the reference for our
video card, usually tends to be quite clear:
This example is from a laptop with a 256MB Nvidia 8600GT using the latest patches as Nvinject video and injector.
Pic1

As you will see, is not marked in green line corresponds to the card, but the upper, and has an explanation: in the DSDT code does not find his name, but with
the device that houses it.
Let me explain a bit these devices:
Marked in red is the AGP device @ 1, which depends on PCI @ 0, this device houses a device called a sub-VID @ 0, which is our video card.
In turn, the device VID @ 0 contains other devices that do not see, such as LCD, VGA, etc.
2. Decompilation of the code and added dsdt.aml chart.

Assuming that prior to this guide you have got to have a fixed DSDT and operational (HPET and RTC patched etc ...) you make a backup file and DSDT.aml
We have to work on.
In previous guides we have spoken of the binary called "iasl" found inside the folder "tools" created by the patcher Fassler. I repeat the recommendation that
copieis this file in / usr / bin with this I will always be available when you open the terminal and not have to be Recordade where we have given, or drag it to the terminal
every time we change our archive dst.dsl
That said, having copied the binary to start with where we mentioned decompilation of DSDT.aml:
Open terminal as root logueamos us and agree to the folder where we alamacenado the DSDT (cd "path to the folder")
once inside type in "-d iasl dsdt.aml"
This will create DSDT.dsl, we make a copy for backup and have it move away from the tools folder to avoid overcrowding of.
Now prodeas DSDT.dsl edit using a text editor of our choice (suggested textmate)
For this example we will use a DSDT from a laptop.
Note: The code marked in red is not used.
   
The blue outlines the part that we must adapt to our video card.



CODE

Device (PEGP)  

  {

  Name (_ADR, 0x00010000)

  Device (GFX0)

  {

  Name (_ADR, Zero)

  Name (_SUN, One)

  Method (_DSM, 4, NotSerialized)

  {

  Store (Package (0x1A)

  {

  "@0,compatible",

  Buffer (0x0B)

  {

  "NVDA,NVMac"

  },

  "@0,device_type",

  Buffer (0x08)

  {

  "display"

  },

  "@0,name",

  Buffer (0x0F)

  {

  "NVDA,Display-A"

  },

  "@1,compatible",

  Buffer (0x0B)

  {

  "NVDA,NVMac"

  },

  "@1,device_type",

  Buffer (0x08)

  {

  "display"

  },

  "@1,name",

  Buffer (0x0F)

  {

  "NVDA,Display-B"

  },

  "NVCAP",   <----------------   Nuestro NVCAP para salidas múltiples extraído de IOREG.

  Buffer (0x18)

  {

  /* 0000 */   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,

  /* 0008 */   0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* 0010 */   0x00, 0x00, 0x00, 0x00

  },

  "NVPM",   <----------------   Nuestro NVPM (gestión de energía), normalmente no hay que cambiarlo, pero es bueno compararlo en IOREG.

  Buffer (0x20)

  {

  /* 0000 */   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* 0010 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* 0018 */   0x00, 0x00, 0x00, 0x00

  },

  "VRAM,totalsize",

  Buffer (0x04)

  {

     0x00, 0x00, 0x00, 0x20

  },

   "device_type",

  Buffer (0x0D)

  {

  "NVDA,GeForce"

  },

  "model",

     Buffer (0x1F)   <----------------   Dependerá de la longitud del nombre + los espacios + 1.

     {

  "Nvidia GeForce 8600M GS 256 MB"   <----------------   El nombre de nuestra tarjeta y su memoria (a vuestra elección).

  },

   "rom-revision",

  Buffer (0x20)

     {

  "DSDT ROM v.1a #irc.osx86.es (c)"

  },

  "reg",   <----------------   Nuestro REG extraído de IOREG.

   Buffer (0x78)

   {

  /* 0000 */   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0010 */   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,

/* 0018 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0020 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,

/* 0028 */   0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,

/* 0030 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0038 */   0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,

/* 0040 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0048 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,

/* 0050 */   0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,

/* 0058 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0060 */   0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,

/* 0068 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0070 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00

  }

  }, Local0)

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

  Return (Local0)

  }

  }

  }

    

Renowned for our card in the code outsider.
                                                     
If you look at the letters in blue is suggested, you will see that marked the buffer and the name of the card, why?, It is simple, you will have to change the name of the card
for yours, and the buffer indicating the number of characters (including spaces) is in the name quoted 1 if you change the name but not the buffer, the
compilation will fail.
How to find the buffer (which is also in hexadecimal).
It is very simple, we need a converter decimal to hexadecimal and vice versa.
A site that you can come very convenient is this:
http://www.parkenet.com/apl/HexDecConverter.html
or this:
http://www.paulschou.com/tools/xlate/
Well, he began:
Sample buffer for the line "Nvidia GeForce 8600M GS 256MB, the number of letters and spaces contained here is 30 (decimal), add 1 to the result (actually it
The problem is that the account number starts from zero), which gives us 31, using the websites listed above, we put 31 in decimal and as a result gives us 1F
hexadecimal, ie, the buffer used.
If we change the name to our card, we use the same approach to calculate the size of the buffer.

2a. The loader code.

We will give an overview of the concept of loader code already discussed in the previous guide.
Our code is not ACPI is a string of information that add to the ACPI code, and if we as-is, our record's not OSX not being charged this compatible
ACPI, so this is loaded, we must use a "shipper" which is nothing more than a bit of code that define our entry code and allow its load by
system.
Where to insert the "shipper"?
This is simple, you must seek with the text editor area code _WAK called, and when the definition of it, fit the loader code.
Charger Code:


CODE

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)

}


Cargo Area:
The code in this area will depend on the machine, and basically you have to find the end _WAK code, which ends:


CODE

Return (Package (0x02)

{

Zero,

Zero

})

}


I include below the code loader.
EXAMPLE:
More cargo area shipper:



CODE

Method (_WAK, 1, NotSerialized)

{

P8XH (One, 0xAB)

If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))

{

If (And (CFGD, 0x01000000))

{

If (LAnd (And (CFGD, 0xF0), LEqual (OSYS, 0x07D1)))

{

TRAP (0x3D)

}

}

}

If (LEqual (RP2D, Zero))

{

Notify (\_SB.PCI0.RP02, Zero)

}

If (LEqual (Arg0, 0x03)) {}

If (LEqual (Arg0, 0x04))

{

\_SB.PCI0.LPCB.EC0.SELE ()

}

P8XH (Zero, 0xCD)

Return (Package (0x02)

{

Zero,

Zero

})

}

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)

}


Salváis the file and compile to see if there were errors in the code.
Open the terminal, as root logueamos us and tune into the DSDT folder (cd "path to the folder) then type
iasl-f dsdt.dsl

If errors occur is that you put the wrong charger, if warnings occur, is that it may come before, not do them much attention now.
If no error occurs, delete the file that was generated DSDT.aml and continued work within DSDT.dsl
3. Comparison of our code with Ioreg added Nvcaps, reg and
renamed.
We now proceed to seek the necessary data on our IOREG for insertion into each unit in the code.
NVCAPS or seek first the configuration of the outputs of our video card and NVPM or energy management.
We opened the IOREG and seek our video card, pointing device and look for the entry child NVCAP and NVPM:


Pic2

Once we have NVCAP values and NVPM, amend our code.
Now look at the value of the input REG:


Pic 3

Change value of REG in the graphical code, so you get the real value is in our system.

4. Basic structure of video devices and the DSDT added
of our code.
4a. Example using a laptop.
Let's open the DSDT.dsl and look through the keyword "device" until we get to:



CODE

Device (AGP)




We will find the device tree in this way (different colors for each device):
In short without our code:


CODE

Device (AGP) (Dispositivo madre)

{

Nombre y dirección.

DEVICE VID0 (Dispositivo hijo)

{

   Nombre y dirección de VID0

Inicio del método

{

   Método

   }

   Device (TV)

Device (CRT)

   Device (LCD)

Device (DVI)

}

}



Briefly our code:


CODE

Device (AGP) (Dispositivo madre)

{

Nombre y dirección.

DEVICE VID0 (Dispositivo hijo)

{

   Nombre y dirección de VID0

Inicio del método

{

   Método

   }

   Device (TV)

Device (CRT)

   Device (LCD)

Device (DVI)

Device (GFX) <-------- Nuestro codigo.

}

}

Extended:



CODE

Device (AGP)

{

Name (_ADR, 0x00010000)

Device (VID)

{

Name (_ADR, Zero)

Method (_DOS, 1, NotSerialized)

{

Store (Arg0, MIS4)

SMI (0x9E, MIS4)

}

Method (_DOD, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010110,

0x00010210

})

}

Else

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010118,

0x00010120

})

}

}

Device (TV)

{

Method (_ADR, 0, NotSerialized)

{

Return (0x0200)

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x04), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x04), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x04, Arg0)

}

}

Device (CRT)

{

Method (_ADR, 0, NotSerialized)

{

Return (0x0100)

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x02), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x02), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x02, Arg0)

}

}

Device (LCD)

{

Method (_ADR, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (0x0110)

}

Else

{

Return (0x0118)

}

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, One), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, One), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (One, Arg0)

}

Name (BTVL, 0x64)

Name (DBCL, Package (0x0A) {})

Method (_BCL, 0, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (Zero)

SX11 ()

Store (SX40 (), Index (DBCL, Zero))

Store (SX40 (), Index (DBCL, One))

Store (SX40 (), Index (DBCL, 0x02))

Store (SX40 (), Index (DBCL, 0x03))

Store (SX40 (), Index (DBCL, 0x04))

Store (SX40 (), Index (DBCL, 0x05))

Store (SX40 (), Index (DBCL, 0x06))

Store (SX40 (), Index (DBCL, 0x07))

Store (SX40 (), Index (DBCL, 0x08))

Store (SX40 (), Index (DBCL, 0x09))

SX12 ()

Return (DBCL)

}

Method (_BCM, 1, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (One)

SX30 (Arg0)

Store (Arg0, BTVL)

SX11 ()

SX12 ()

}

Method (_BQC, 0, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (0x02)

SX11 ()

Store (SX40 (), Local0)

Store (Local0, BTVL)

SX12 ()

Return (Local0)

}

}

Device (DVI)

{

Method (_ADR, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (0x0210)

}

Else

{

Return (0x0120)

}

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x08), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x08), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x08, Arg0)

}

}

Device (GFX0) <------------- Comienzo de nuestro codigo

{

Name (_ADR, Zero)

Name (_SUN, One)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x1A)

{

"@0,compatible",

Buffer (0x0B)

{

"NVDA,NVMac"

},

"@0,device_type",

Buffer (0x08)

{

"display"

},

"@0,name",

Buffer (0x0F)

{

"NVDA,Display-A"

},

"@1,compatible",

Buffer (0x0B)

{

"NVDA,NVMac"

},

"@1,device_type",

Buffer (0x08)

{

"display"

},

"@1,name",

Buffer (0x0F)

{

"NVDA,Display-B"

},

"NVCAP",

Buffer (0x18)

{

/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,

/* 0008 */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0010 */ 0x00, 0x00, 0x00, 0x00

},

"NVPM",

Buffer (0x20)

{

/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0018 */ 0x00, 0x00, 0x00, 0x00

},

"VRAM,totalsize",

   Buffer (0x04)

   {

0x00, 0x00, 0x00, 0x20

},

"device_type",

Buffer (0x0D)

{

"NVDA,GeForce"

},

"model",

Buffer (0x1F)

{

"Nvidia GeForce 8600M GS 256 MB"

},

"rom-revision",

Buffer (0x20)

{

"DSDT ROM v.1a #irc.osx86.es (c)"

},

"reg",

   Buffer (0x78)

{

/* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,

   /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,

   /* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,

   /* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,

   /* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,

   /* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,

   /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,

   /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

   /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00

}

}, Local0)

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

Return (Local0)

}

   } <------------- Fin de nuestro codigo (No incluir esta reseña en el DSDT)

}

}


4b. Example using a computer tower.
We will seek to explore our IOregistry video card, and here we notice a difference with the code on the laptop, and is as follows:
In the computer tower, we will find the video devices that we saw in the previous example, LCD, CRT etc., except in cases of integrated graphics, we
ioreg to look at the site of our graph, usually it be under some PCI devices such as PC1, P0P1 etc. .. depends
motherboard manufacturer, but sometimes we do not see the device with a clear demarcation in ioreg and appears as PCI2BRIDGE or in this case PCIBRIDGE
add the entry directly into the ICP as all these devices have the device "mother" to the main PCI ..... In plates with integrated graphics
we can find something closer to the example of the laptop, but we must not fall into errors, the code must be added in the code
for the device that is located not on our card and the integrated video board.
Set in the PCI code.



CODE

Device (PCI0)

{

Name (_HID, EisaId ("PNP0A03"))

Name (_ADR, 0x00)

Name (_UID, 0x01)

Name (_BBN, 0x00)

Method (_S3D, 0, NotSerialized)

{

If (LEqual (OSFL, 0x02))

{

Return (0x02)

}

Else

{

Return (0x03)

}

}

   Method (_STA, 0, NotSerialized)

{

Return (0x0F)

}

Method (_CRS, 0, NotSerialized)

{

Name (BUF0, ResourceTemplate ()

{


The code continues much longer, but we will take this as a reference.
Here we would have our code added to the PCI video:



CODE

Device (PCI0)

{

Name (_HID, EisaId ("PNP0A03"))

Name (_ADR, 0x00)

Name (_UID, 0x01)

Name (_BBN, 0x00)

   Device (PEGP)

{

Name (_ADR, 0x00060000)

Device (GFX0)

{

Name (_ADR, Zero)

Name (_SUN, One)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x1C)

{

   "AAPL,slot-name",

   Buffer (0x0D)

   {

"PCI-E Slot-1"

}, },

"@0,compatible",

Buffer (0x0B)

{

"NVDA,NVMac"

},

"@0,device_type",

Buffer (0x08)

{

"display"

},

"@0,name",

Buffer (0x0F)

{

"NVDA,Display-A"

},

"@1,compatible",

Buffer (0x0B)

{

"NVDA,NVMac"

},

"@1,device_type",

Buffer (0x08)

{

"display"

},

"@1,name",

Buffer (0x0F)

{

"NVDA,Display-B"

},

"NVCAP",

Buffer (0x18)

{

/* 0000 */ 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00,

/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,

/* 0010 */ 0x00, 0x00, 0x00, 0x00

},

"NVPM",

Buffer (0x20)

{

/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0018 */ 0x00, 0x00, 0x00, 0x00

},

"VRAM,totalsize",

Buffer (0x04)

{

0x00, 0x00, 0x00, 0x20

},

"device_type",

Buffer (0x0D)

{

"NVDA,GeForce"

},

"model",

Buffer (0x22)

{

"POV Nvidia GeForce 8800 GT 512 MB"

},

"rom-revision",

Buffer (0x23)

{

"DSDT ROM v.1a by #irc.osx86.es (c)"

},

"reg",

Buffer (0x78)

{

/* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,

/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,

/* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,

/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,

/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,

/* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,

/* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,

/* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

/* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00

}

}, Local0)

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

Return (Local0)

}

}

}

Method (_S3D, 0, NotSerialized)

{

If (LEqual (OSFL, 0x02))

{

Return (0x02)

}

Else

{

Return (0x03)

}

}

Method (_STA, 0, NotSerialized)

{

Return (0x0F)

}


5. Compiling and testing.

Now we only save the file and compile it to check for syntax errors or not.
Open the terminal, as root logueamos us and tune into the folder where we have our DSDT (cd "path to folder") Keyboards
iasl dsdt.dsl

If errors occur is that you put the wrong charger, if warnings occur, is that it may come before, not do them much attention now.
If you have them, make certain that brackets have not been orphaned, or deleted.
If not, you can rename the file you have in DSDT.aml the root of the system to "DSDTold.aml" and copy the new (to open created when compiling) to the root of the disk.
We delete the injector that we are using (Nvkush, Nvinject or NVdarwin) or EFI string if we use this method and proceed to reboot. If our site has
been right and proper coding of our graphics should be fully recognized and activated yet.
If you fail the new DSDT.aml (eg freezes the system), you can boot the system using the command DSDTold.aml DSDT = (introducidlo when you see the boot
chameleon by pressing F8 and selecting the installation of Leopard).
We hope that this third guide on the possibilities of DSDT system has been of your liking.
We will be updating the guidelines as new data have ....


ANNEX
In this annex, see how to optimize a laptop, removing the graphic code is not used by OSX, obtaining with this a greater fluidity in the video
because the register is only the code that is functional, our code added.
In the summary view can better see the tree of devices, so we can determine who should stay and who must not be erased to useful code and
prepare for the inclusion of our code of video.
In summary, our code should look like in after deleting unnecessary devices:
BEFORE:



CODE

Device (AGP)

{

Nombre y dirección.

Cabezera de VID0

{

   Nombre y dirección de VID0

Inicio del método

{

   Método

   }

   Device (TV)

Device (CRT)

   Device (LCD)

Device (DVI)

}

}


LATER:



CODE

Device (AGP)

{

Nombre y dirección.

Cabezera de VID0

{

   Nombre y dirección de VID0

Inicio del método

{

   Método

   }

   }

}

}


Extended BEFORE:



CODE

Device (AGP)

{

Name (_ADR, 0x00010000)

Device (VID)

{

Name (_ADR, Zero)

Method (_DOS, 1, NotSerialized)

{

Store (Arg0, MIS4)

SMI (0x9E, MIS4)

}

Method (_DOD, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010110,

0x00010210

})

}

Else

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010118,

0x00010120

})

}

}

Device (TV)

{

Method (_ADR, 0, NotSerialized)

{

Return (0x0200)

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x04), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x04), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x04, Arg0)

}

}

Device (CRT)

{

Method (_ADR, 0, NotSerialized)

{

Return (0x0100)

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x02), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x02), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x02, Arg0)

}

}

Device (LCD)

{

Method (_ADR, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (0x0110)

}

Else

{

Return (0x0118)

}

} If (LEqual (Local0, One))


Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, One), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, One), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (One, Arg0)

}

Name (BTVL, 0x64)

Name (DBCL, Package (0x0A) {})

Method (_BCL, 0, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (Zero)

SX11 ()

Store (SX40 (), Index (DBCL, Zero))

Store (SX40 (), Index (DBCL, One))

Store (SX40 (), Index (DBCL, 0x02))

Store (SX40 (), Index (DBCL, 0x03))

Store (SX40 (), Index (DBCL, 0x04))

Store (SX40 (), Index (DBCL, 0x05))

Store (SX40 (), Index (DBCL, 0x06))

Store (SX40 (), Index (DBCL, 0x07))

Store (SX40 (), Index (DBCL, 0x08))

Store (SX40 (), Index (DBCL, 0x09))

SX12 ()

Return (DBCL)

}

Method (_BCM, 1, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (One)

SX30 (Arg0)

Store (Arg0, BTVL)

SX11 ()

SX12 ()

}

Method (_BQC, 0, NotSerialized)

{

SX10 ()

SX30 (0x19)

SX30 (0x02)

SX11 ()

Store (SX40 (), Local0)

Store (Local0, BTVL)

SX12 ()

Return (Local0)

}

}

Device (DVI)

{

Method (_ADR, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (0x0210)

}

Else

{

Return (0x0120)

}

}

Method (_DCS, 0, NotSerialized)

{

Store (SMI (0x8E, 0x08), Local0)

Return (Local0)

}

Method (_DGS, 0, NotSerialized)

{

Store (SMI (0x99, 0x08), Local0)

Return (Local0)

}

Method (_DSS, 1, NotSerialized)

{

DSS (0x08, Arg0)

}

}

   }

   }



Extended LATER:



CODE

Device (AGP)

{

Name (_ADR, 0x00010000)

Device (VID)

{

Name (_ADR, Zero)

Method (_DOS, 1, NotSerialized)

{

Store (Arg0, MIS4)

SMI (0x9E, MIS4)

}

Method (_DOD, 0, NotSerialized)

{

Store (SMI (0x6D, Zero), Local0)

If (LEqual (Local0, One))

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010110,

0x00010210

})

}

Else

{

Return (Package (0x04)

{

0x00010100,

0x00010200,

0x00010118,

0x00010120

})

}

}

   }

}



Obviously, if we are to compile after erasing all those devices, we report a number of errors will disappear as many references as well
that we look for the lines marked as errors and remove them as follows:


CODE

Errores generados al compilar cuando eliminamos el device "LCD":

/Users/xxx/Desktop/pruebas dsdt/Tools/DSDToriginal.dsl 721: Notify (\_SB.PCI0.AGP.VID.LCD, 0x86)

Error 4063 - Object does not exist ^ (\_SB.PCI0.AGP.VID.LCD)

/Users/xxx/Desktop/pruebas dsdt/Tools/DSDToriginal.dsl 726: Notify (\_SB.PCI0.AGP.VID.LCD, 0x87)

Error 4063 - Object does not exist ^ (\_SB.PCI0.AGP.VID.LCD)



We move to the line 721 and 726 as shown and we find:

CODE

If (LGreaterEqual (OSID (), 0x20))

{

If (And (Local0, 0x04))

{

Notify (\_SB.PCI0.AGP.VID.LCD, 0x86)

Notify (\_SB.PCI0.VID.LCD, 0x86)

}

If (And (Local0, 0x02))

{

Notify (\_SB.PCI0.AGP.VID.LCD, 0x87)

Notify (\_SB.PCI0.VID.LCD, 0x87)

}

}



If we remove those two entries, and compile again, the errors are gone.

CODE

If (LGreaterEqual (OSID (), 0x20))

{

If (And (Local0, 0x04))

{

Notify (\_SB.PCI0.VID.LCD, 0x86)

}

If (And (Local0, 0x02))

{

Notify (\_SB.PCI0.VID.LCD, 0x87)

}

}


It is recommended to compile every time you delete an entry, so you can gradually correct our code.
Guide by: Roisoft and Pere

'Hackintosh > DSDT' 카테고리의 다른 글

DSDT 생성  (4) 2010.06.19
8600 GTS 256 MB DSDT  (0) 2010.02.18
Fix'y DSDT for ASUS P5W DH Deluxe and Snow & Leopard  (0) 2009.11.06
Windows용 DSDT 추출 및 Patcher  (0) 2009.10.30
Enabling ACPI, EIST, etc for ASUS P5W DH DELUXE  (0) 2009.10.25
:
Posted by Ritz®™
2009. 11. 13. 11:46

Network Setup!! Hackintosh/Lan Card2009. 11. 13. 11:46

1. 부팅시에 f8을 누르거나 Chameleon 같은 경우 스페이스 바를 눌러 부팅옵션을

"-v -f" 로 주어 부팅하여 다음 그림과 같이 실행합니다.




:
Posted by Ritz®™


EDIT 11-21-2011:
WoodyHDA.kext for ALC882:
You have to backup AppleHDA.kext and replace it with WoodyHDA
http://uploaded.to/file/jvthtx5v/from/8kp9rf
 

First of all, thanks Peter314,

I just translated Peter314’s posting.

EDIT 12-10-2009:
Peter
New DSDT v2.1 and LegacyHDA for ALC882:

3001___v2.1.zip ( 82.3K )
ALC882v10.kext.zip ( 8.77K )

EDIT 11-11-2009:
Peter update DSDT for P5W, for 2 and 4 CPU, based on 3001

EDIT 10-11-2009:

Bios Setting.
As my experience,

if Jmicron SATA/PATA controller is Enabled. No.1 Black Port, rounded Green Color, Above of Pic1.

SATA mode should be Basic(IDE) until 10.6.1.

After update to 10.6.2, it doesn’t matter Basic or AHCI.

But, Graphic Card is something missing as configured by OSX86 Tools.

I’ll correct Graphic Card Information.



No.2 is General SATA Port, No.3 is Backup Port.

EDIT 02-11-2009:
Added section to modify the LPC.
Removed section of the VGA due to not the best action.
Fixed all warnings when compiling, now DSDT Annex compiles the result of:
Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 46 Optimizations

EDIT 22-09-2009:
I added the source and the DSDT compiled versions with added support for the ATI 4870 and without any VGA.
DSDT BIOS code is based on 2504.

Yesterday after the exhausting struggle with the DSDT of my album, and finally killed and surrendered … I managed to finally stabilize the operation of all components and I have a stable operating the USB and FireWire problems that they have done since version 10.5.6.
We managed to overcome in order to always operate all ports, they always operate under the High Speed USB 2.0, FireWire always work, no strange errors in the console of the FireWire and the EHCI / UHCI is loaded AppleHPET, AppleRTC, working properly Sleep, Restart, Shutdown, I refer impression of the system is not rising faster still, no kext in / S / L / E has not been removed, modified, or added … and for dessert, a cake of raisins to the acting got a wake-up from sleep mode when you click the mouse or keyboard … one sentence full of grazing …

And what needs to be done.
1. Upload BIOS version 2504 - later do not contain tables SSDT - note the bios does not support 45nm processors.
2. Pull the DSDT and make the following modifications:


:arrow:
1. HPET, RTC fix and stabilization of the USB and FW:

Original section HPET:

Code:
Device (HPET)
(
Name (_HID, EisaId ( “PNP0103”))
Name (CRS, ResourceTemplate ()
(
Memory32Fixed (ReadOnly,
0xFED00000, / / Address Base
0x00000400, / / Address Length
_Y09)
))
OperationRegion (HPTC, SystemMemory, HTBA, 0x04)
Field (HPTC, ByteAcc, NoLock, Preserve)
(
HPTS, 2,
, 5,
HPTE, 1,
Offset (0x04)
)

Method (_STA, 0, NotSerialized)
(
If (LEqual (OSFL (), Zero))
(
If (HPTE)
(
Return (0x0F)
)
)
Else
(
If (HPTE)
(
Return (0x0B)
)
)

Return (Zero)
)

Method (_CRS, 0, NotSerialized)
(
CreateDWordField (CRS, \ _SB.PCI0.SBRG.HPET._Y09._BAS, HPT)
Multiply (HPTS, 0x1000, Local0)
Add (Local0, 0xFED00000, HPT)
Return (CRS)
)
)

Modified:
Code:
Device (HPET)
(
Name (_HID, EisaId ( “PNP0103”))
Name (CRS, ResourceTemplate ()
(
IRQNoFlags ()
(0)
IRQNoFlags ()
(8)
Memory32Fixed (ReadOnly,
0xFED00000, / / Address Base
0x00000400, / / Address Length
_Y09)
))
OperationRegion (HPTC, SystemMemory, HTBA, 0x04)
Field (HPTC, ByteAcc, NoLock, Preserve)
(
HPTS, 2,
, 5,
HPTE, 1,
Offset (0x04)
)

Method (_STA, 0, NotSerialized)
(
If (LEqual (OSFL (), Zero))
(
If (HPTE)
(
Return (0x0F)
)
)
Else
(
If (HPTE)
(
Return (0x0B)
)
)

Return (Zero)
)

Method (_CRS, 0, NotSerialized)
(
CreateDWordField (CRS, \ _SB.PCI0.SBRG.HPET._Y09._BAS, HPT)
Multiply (HPTS, 0x1000, Local0)
Add (Local0, 0xFED00000, HPT)
Return (CRS)
)
)


Original section RTC0:
Code:
Device (RTC0)
(
Name (_HID, EisaId (PNP0B00 “))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0070, / / Range Minimum
0x0070, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
IRQNoFlags ()
(8)
))
)

Modified section RTC0:
Code:
Device (RTC0)
(
Name (_HID, EisaId (PNP0B00 “))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0070, / / Range Minimum
0x0070, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
))
)

Original section TMR:
Code:
Device (TMR)
(
Name (_HID, EisaId ( “PNP0100”))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0040, / / Range Minimum
0x0040, / / Range Maximum
0x00, / / Alignment
0x04, / / Length
)
IRQNoFlags ()
(0)
))
)

Modified section of TMR:
Code:
Device (TMR)
(
Name (_HID, EisaId ( “PNP0100”))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0040, / / Range Minimum
0x0040, / / Range Maximum
0x00, / / Alignment
0x04, / / Length
)
IO (Decode16,
0x0050, / / Range Minimum
0x0050, / / Range Maximum
0x01, / / Alignment
0x04, / / Length
)
))
)

Original section PIC:
Code:
Device (PIC)
(
Name (_HID, EisaId ( “PNP0000”))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0020, / / Range Minimum
0x0020, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
IO (Decode16,
0x00A0, / / Range Minimum
0x00A0, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
IRQNoFlags ()
(2)
))
)

Modified section of the PIC:
Code:
Device (PIC)
(
Name (_HID, EisaId ( “PNP0000”))
Name (_CRS, ResourceTemplate ()
(
IO (Decode16,
0x0020, / / Range Minimum
0x0020, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
IO (Decode16,
0x00A0, / / Range Minimum
0x00A0, / / Range Maximum
0x00, / / Alignment
0x02, / / Length
)
))
)


:arrow: 2. DTGP method:
It is required that everything that all other fixes using it would work.
It looks like this:
Code:
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)
)


and should be placed after the first opening parenthesis “(“
After placing the section should look something like this:
Code:

* OEM Revision 0x00000000 (0)
* Compiler ID “INTL”
* Compiler Version 0x20080926 (537397542)
* /
DefinitionBlock (dsdt.aml “,” DSDT “, 1,” A0543 “,” A0543000 “, 0x00000000)
(
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)
)

Scope (_PR)
(
Processor (CPU1, 0x01, 0x00000810, 0x06)


:arrow: 3. TM Fix:
This fix enables the Time Machine without having to apply any additional patches, and get rid of the error console: Error UUID: 35

The original section P0P7 (P P Zero 7) - the connector that is connected to Ethernet 1
Code:
Device (P0P7)
(
Name (_ADR, 0x001C0003)
Method (_PRW, 0, NotSerialized)
(
Return (GPRW (0x09, 0x04))
)

Method (_PRT, 0, NotSerialized)
(
If (PICM)
(
Return (AR07)
)

Return (PR07)
)
)



Modified section P0P7 (P P Zero 7)
Code:
Device (P0P7)
(
Name (_ADR, 0x001C0003)
Method (_PRW, 0, NotSerialized)
(
Return (GPRW (0x09, 0x04))
)

Method (_PRT, 0, NotSerialized)
(
If (PICM)
(
Return (AR07)
)

Return (PR07)
)

Device (LAN)
(
Name (_ADR, Zero)
Name (_PRW, Package (0x02)
(
0x0B,
0x04
))
Method (_DSM, 4, NotSerialized)
(
Store (Package (0x04)
(
“built-in”
Buffer (One)
(
0x01
)

“device_type”
Buffer (0x09)
(
“ethernet”
)
), Local0)
DTGP (arg0, arg1, arg2, Arg3, RefOf (Local0))
Return (Local0)
)
)
)


:arrow: 4. Mobilization of the LPC:
This fix is often needed to start working properly vanillowego energy management. On CD-asus’a LPC is usually hidden under the name SBRG. In addition, after starting the LPC shows an option to “restart automatically after a power failure in the panel on” Energy Efficient machine “

The original top section SBRG:
Code:
Device (SBRG)
(
Name (_ADR, 0x001F0000)
Method (SPTS, 1, NotSerialized)
(
Store (One, PS1S)
Store (One, PS1E)

Inserted Modified:
Code:
Device (SBRG)
(
Name (_ADR, 0x001F0000)
Method (_DSM, 4, NotSerialized)
(
Store (Package (0x02)
(
“device-id”,
Buffer (0x04)
(
0xb9, 0x27, 0x00, 0x00
)
), Local0)
DTGP (arg0, arg1, arg2, Arg3, RefOf (Local0))
Return (Local0)
)

Method (SPTS, 1, NotSerialized)
(
Store (One, PS1S)
Store (One, PS1E)


If someone does not want to, can not, can not register on the forum to download the modified DSDT.dsl the attachment is below the “extra” link to download.
Code:
http://rapidshare.com/files/301490070/DSDT_P5W_DH_Delux_Fix_-_HPET_IRQ_TM_LPC.zip


Unfortunately, some values in the DSDT are generated depending on what is the processor model.

The following values are changing in the Scope (_PR) depending on your CPU:
CODE
OperationRegion (Stbl, SystemMemory, 0x7FF8E0B0, 0x01C6) //different for each CPUx section
 
Name (NCPU, 0x04) // 0x02 for core 2 duo, 0x04 for core 2 quad.

Name (CFGD, 0x7FF80507) //different for each CPUx section

And that, just below the section _PR
CODE
OperationRegion (BIOS, SystemMemory, 0x7FF8E064, 0xFF)

Unfortunately, it follows that for each model, eg processor E6300, E6400, etc. should do yourself a DSDT dump for example, under Ubuntu and improve these values to those learned from the dump.

If these values are incorrect, sleep / shutdown / speedsteep stops working.

In the attachment to the post, fixed version of the DSDT for the Q6600.
 

:
Posted by Ritz®™
2009. 11. 2. 09:08

EvOToolsX V1.1.0 EvOToolsX for Snow Leopard Hackintosh/Tool2009. 11. 2. 09:08

EvOToolsX V1.1.0 이 공개되었습니다.

Snow Leopard에서만 사용가능합니다.

v 1.1.0 에서 lspci 설치버그가 해결되었습니다.

##########################################################################

Here we bring you a small app that will provide the following information:
CPU info.
SMBIOS info.
SMC keys info.
Lspci info.
DEEP info.
Only for Snow Leopard
(EN)
Here we bring you a little app to gather this information:
CPU info.
SMBIOS info.
SMC keys info.
Lspci info.
DEEP info.
Only for Snow Leopard.
EvOToolsX V1.0.0 (EN)
EvOToolsX V1.1.0 (EN)
.
EvOToolsX Changelog V1.1.0
Solved a bug on lspci install.


'Hackintosh > Tool' 카테고리의 다른 글

Lizard & BootCDMaker in DARWINx86 software  (0) 2009.11.21
Path Finder  (0) 2009.11.10
DARWINx86 software  (0) 2009.10.30
패키지 분석하는 방법  (0) 2009.07.16
Path Finder 사용법  (0) 2009.07.07
:
Posted by Ritz®™