oswaldini Opublikowano 25 Marca 2010 Zgłoś Udostępnij Opublikowano 25 Marca 2010 Dopisywanie grafiki do DSDT v1.0 - Pierwsza publikacja v1.1 - Dodany opis dla kilku kart graficznych SPIS TEMATÓW O MODYFIKACJI DSDT: [Cześć 1] Wydobycie DSDT z naszego sprzętu [Cześć 2] Podstawowe modyfikacje DSDT [Cześć 3] Sekcja audio w DSDT [Cześć 4] Modyfikacja sekcji USB [Cześć 5] Dopisywanie grafiki do DSDT [Cześć 6] Fixy dla notebooków/netbooków oraz PC [Cześć 7] Kosmeytka DSDT + Uciszanie kompilatora [Cześć 8] Sprawdzenie działania Power Managmentu (SpeedStep) 1. Lokalizacja portu karty graficznej Zanim dopiszemy kartę graficzną do DSDT musimy wiedzieć gdzie to zrobić. W tym celu uruchamiamy IORegistryExplorer i wyszukujemy "display". Jak widać na screenie moja karta graficzna (7900GS 256MB) podpięta jest pod P0P2. To sobie gdzieś zapisujemy lub zapamiętujemy. Screen zrobiony już po dopisaniu karty graficznej do DSDT dlatego widnieje GFX0, nie ma to jednak żadnego znaczenia bo port się nie zmienia 2. NVCAP Musimy znać NVCAP swojej karty graficznej ponieważ będziemy go wprowadzać do modyfikacji. Musimy wyciągnąć i zapisać na dysku bios z karty graficznej, polecam pod Windowsem program Nibitor. Nie będę się na ten temat rozpisywać. Można znaleźć na ten temat sporo informacji, zresztą program jest bardzo prosty w obsłudze. Jak już wydobędziemy bios zaopatrujemy się w program NVCAP Maker. http://www.mediafire.com/?dw2hwjmvejm Uruchamiamy NVCAP Maker, pojawi sie okno w którym wskazujemy lokalizacje biosu naszej karty graficznej. Program "wypluje" nam wygenerowany NVCAP. Dla mojej 7900GS to: 04000000000003000c0000000000000700000000 dzielimy go na 16/16/8 znaków 0400000000000300 0c00000000000007 00000000 a potem dodajemy "0x, " na każde dwa znaki: 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00 Może troszkę śmiesznie opisane ale mam nadzieję, ze wszystko jest zrozumiałe 3. Modyfikacja DSDT Lokalizujemy w DSDT nasz port z pkt 1. czyli dla mojej 7900GS to P0P2, szukamy: Device (P0P2) Sekcja oryginalna: Device (P0P2) { Name (_ADR, 0x00010000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Dodajemy: Device (GFX) { Name (_ADR, Zero) Name (_SUN, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x16) { "@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, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x10 }, "device_type", Buffer (0x0C) { "NVDA,Parent" }, "model", Buffer () { "NVIDIA GeForce 7900GS" }, "rom-revision", Buffer () { "nVidia GeForce 7900 GS OpenGL Engine" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } W powyższym kodzie modyfikujemy sekcje: "NVCAP" na nasz z pkt 2 "VRAM,totalsize" ostanie dwie cyfry: 0x40 = 1024mb, 0x20= 512mb, 0x10= 256mb "model" wpisujemy nazwę naszej karty graficznej "rom-revision" wpisujemy wersje biosu lub co chcemy Zmodyfikowana sekcja: Device (P0P2) { Name (_ADR, 0x00010000) Device (GFX) { Name (_ADR, Zero) Name (_SUN, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x16) { "@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, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x10 }, "device_type", Buffer (0x0C) { "NVDA,Parent" }, "model", Buffer (0x16) { "NVIDIA GeForce 7900GS" }, "rom-revision", Buffer (0x25) { "nVidia GeForce 7900 GS OpenGL Engine" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Efekt końcowy: 4. Modyfikacja dla kilku kart graficznych Proces jest dokładnie ten sam. Lokalizujemy w IORegi wszystkie karty graficzne i zapisujemy sobie ich porty. Pod te porty dodajemy sekcje modyfikującą jak wyżej z tym wyjątkiem że dodajemy numer karty graficznej w nazwie: Device (GFX). Czyli np dla dwóch kart graficznych będą występować dwie sekcje GFX1 oraz GFX2 naturalnie w odpowiednich portach. Wyrywkowo kod jak to powinno wyglądać. Device (GFX1) { Name (_ADR, Zero) Name (_SUN, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x16) { "@0,compatible", Buffer (0x0B) ........ Device (GFX2) { Name (_ADR, Zero) Name (_SUN, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x16) { "@0,compatible", Buffer (0x0B) .......... Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
max00r Opublikowano 1 Października 2011 Zgłoś Udostępnij Opublikowano 1 Października 2011 Mam już prawie wszystko, tylko jaki to port? Co wpisać do VRAM? to Nvidia GFX285 1024 MB. Plik DSDT wyciągnałem z kompa, ale mam też przygotowany dla mojej płyty głównej z kext.com. Gdzie dopisać tą grafikę, byle gdzie? Przepraszam, dopiero zaczynam się bawić w DSDT... Dzięki za podpowiedź PS. Znalałem coś takiego w moim DSDT z kompa. Jak to by miało wyglądać dla mojej karty? Scope (\_SB.PCI0) { Name (SLIC, Buffer (0x9E) { "987134512781Genuine NVIDIA Certified SLI Ready Motherboard for GIGABYTE GA EX58UD4 0101-Copyright 2008 NVIDIA Corporation All Rights Reserved-765289891023(R)" }) Device (WMI1) { Name (_HID, "pnp0c14") Name (_UID, "MXM2") Name (_WDG, Buffer (0x14) { /* 0000 */ 0x3C, 0x5C, 0xCB, 0xF6, 0xAE, 0x9C, 0xBD, 0x4E, /* 0008 */ 0xB5, 0x77, 0x93, 0x1E, 0xA3, 0x2A, 0x2C, 0xC0, /* 0010 */ 0x4D, 0x58, 0x01, 0x02 }) Method (WMMX, 3, NotSerialized) { CreateDWordField (Arg2, 0x00, FUNC) If (LEqual (FUNC, 0x41494C53)) { Return (\_SB.PCI0.SLIC) } Return (0x00) } } } Tutaj jest coś takiego jak nvcap, ale zupełnie inny niż sobie wyjąłem z biosu karty. Tutaj mi wyszedł taki: 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07 0x00, 0x00, 0x00, 0x00 Już nic nie kapuuuuuje, za stary jestem Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
oswaldini Opublikowano 1 Października 2011 Autor Zgłoś Udostępnij Opublikowano 1 Października 2011 Olej to i odpal z GraphicsEnabler=Yes przez chameleona. Dopisywanie grafiki do DSDT ma sens dla lapków. Nie ma się co męczyć jak odpali na GE. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
max00r Opublikowano 3 Października 2011 Zgłoś Udostępnij Opublikowano 3 Października 2011 Mam cały czas problem, żeby wystartował sam installer. Póki co udało mi sie tylko starego kalawaya instalnąć z cpus=1. Nie daje nic GraphicsEnabler, ani Yes, ani No, tak więc pomyślałem, że dopiszę tą kartę do DSDT, to powinno być lepiej Sorry za offtopa trochę, ale musiałem rozjaśnić sprawę, po co mnie to DSDT Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
oswaldini Opublikowano 3 Października 2011 Autor Zgłoś Udostępnij Opublikowano 3 Października 2011 Masz bardzo dobry sprzęt pod retaila, robiłem kilka takich zestawów ! GE Ci nie działał bo w tym distro jest stary chameleon bez obsługi Twojej karty graficznej ! Ta płyta gigabyte sprawia troszkę problemów bo w 10.6.8 przestaje działać PM ale da się to naprawić przez chameleona. Tutaj masz tutorial: http://hamac.pl/topics33/instalacja-mac ... vt2646.htm Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AB76 Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 Może mi ktoś powiedzieć jaki to port ? W zasadzie grafika działa poprawnie ale nie działa HDMI moze z tą poprawką się odpali ? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
oswaldini Opublikowano 30 Października 2011 Autor Zgłoś Udostępnij Opublikowano 30 Października 2011 Port sprawdź w gałęzi pci-bridge@1 - zapewne nie będzie tam nazwy. Przy pci-bridge@1 szukasz w DSDT wpisu 0x00010000 - miejsce z tą wartością jet Twoją gałęzią grafiki. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AB76 Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 To by było tu ? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
oswaldini Opublikowano 30 Października 2011 Autor Zgłoś Udostępnij Opublikowano 30 Października 2011 Nie. Byłem mało precyzyjny opisując to. Wpis ten musi znajdować się w sekcji PCI0. Powinien być on w linii: Name (_ADR, 0x00010000). W pierwszym poście jest to w przykładzie linia Device (P0P2) i jest tam ta wartość 0x00010000 Przykład poniżej: Device (PEGP) { Name (_ADR, 0x00010000) Name (_PRW, Package (0x02) { 0x09, 0x05 }) Device (GFX0) { Name (_ADR, Zero) Name (_SUN, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDAU) { Name (_ADR, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AB76 Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 W sekcji PCI0 mam tylko Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, Zero) Name (_UID, One) Name (_BBN, Zero) Method (_S3D, 0, NotSerialized) { Return (0x03) } Method (_STA, 0, NotSerialized) { Return (0x0F) } Czyli muszę dopisać sekcję Device (PEGP) ? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
314TeR Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 W sekcji PCI0 mam tylko To jest tylko początek sekcji... Musisz gdzieś mieć w kodzie: Name (_ADR, 0x00010000) Tego szukaj. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AB76 Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 No właśnie szukam tego wpisu i nie ma nic takiego, a może jestem ślepy. Podepnę swoje dsdt na wszelki wypadek, możne będzie się chciało komuś zerknąć. A jest jeszcze jakaś inna metoda odpalenia HDMI ? dsdt.aml.zip Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
314TeR Opublikowano 30 Października 2011 Zgłoś Udostępnij Opublikowano 30 Października 2011 Popatrz dokładnie w ioreg, VGA jest podpięta pod któryś z: Device (PEX*) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
oswaldini Opublikowano 30 Października 2011 Autor Zgłoś Udostępnij Opublikowano 30 Października 2011 Jak nie ma (zdaża się, np. EX58-UD5) to dodaj sekcje z przykładu, który podałem wyżej (pegp) do sekcji PCI0 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
AB76 Opublikowano 31 Października 2011 Zgłoś Udostępnij Opublikowano 31 Października 2011 Sekcje Device (PEX*) są od 0 do 5 ale żadna nie zaczyna się Name (_ADR, 0x00010000 jest Name (_ADR, 0x001C0000) Name (_ADR, 0x001C0001) Name (_ADR, 0x001C0002) Name (_ADR, 0x001C0003) Name (_ADR, 0x001C0004) Name (_ADR, 0x001C0005) patrze w ioreg jak szpak w pi.... i za dokładnie to nawet nie wiem czego szukać ?! Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.