Jump to content

Natywny zapis do NVRAM - modyfikacje BIOS


314TeR
 Share

Recommended Posts

No właśnie - ktoś sprawdzał czy i jak działa natywny zapis do NVRAM? Chciałbym zweryfikować czy brak zapisu do nvram w cloverze na wielu wersjach biosów Z97/Z170 to problem faktycznie jakiegoś błędu w BIOS czy jednak wciąż błąd w Cloverze. 

 

Ktoś weryfikował i wie jak można sprawdzić zapis do nvram z poziomu jakiegokolwiek linuxa. 

Link to comment
Share on other sites

Ogólnie trzeba zrobić następujący test:

 

Zapisać jakąś zmienną do pamięci NVRAM - zrobić restart i potem sprawdzić czy się zapisała i przetrwała restart. 

 

Ten test trzeba zrobić na biosie który wspiera zapis do nvram pod macOS i z biosem w którym zapis nie działa w macOS. Trzeba w ten sposób zweryfikować ostatecznie czy problem z brakiem zapisu do nvram jest po stronie sterownika w cloverze czy błędu w BIOSie. 

Link to comment
Share on other sites

No to nie pomogę sorry, nie mam takiej płyty.

 

Ale na LiveCD było by to łatwe do ogarnięcia; wystarczy doinstalować pakiet Nvramtool (sudo apt-get install nvramtool).

 

Albo jak ktoś nie ma internetu na Live to na pendrive można ściągnąć paczkę DEB i zainstalować.

http://old-releases.ubuntu.com/ubuntu/pool/universe/n/nvramtool/

 

EDIT:

Jednak to nie będzie takie proste. Nvramtool wydaje sie współpracować tylko z Coreboot.

Szukam innego sposobu ale nic prostego narazie nie widzę...

Link to comment
Share on other sites

314TeR pisałeś, że w Asus Z97-C NVRAM przestał działać od wersji 2403, zgadza się ? Porównując 2402 i 2406, można zobaczyć, że oba używają Combined smm/dxe nvramsmi. Próbowałeś je podmienić i sprawdzić czy działa ?

 

///

 

Z wersji 2403 na 2404 zaszła zmiana w tym module, szczególnie w jednej subfunkcji.

Link to comment
Share on other sites

@reyder - mam sprzętowy programator, moja mobo obecna MAXIMUS VII IMPACT też cierpi na ten błąd - jak masz ochotę pobawić się ze mną i podmienić moduły w pliku BIOS to zapraszam. Mogę zmieniać BIOSy jak chcę bez najmniejszego ryzyka że cokolwiek uwalę, więc fajnie by było sprawdzić tę teorię. 

 

Mam też drugą płytę - Sabertooth Z97 która w ogóle nie ma żadnego dostępnego BIOSu z działającym zapisem do NVRAM, mogę też na niej przetestować modyfikacje. 

 

MAXIMUS VII IMPACT - jedyny bios z działającym zapisem do NVRAM to wersja 0217.
Następna wersja 0412 ma już ten zapis uwalony.
Link to comment
Share on other sites

Zróbie najlepiej najpierw dump z mobo, potem zmodyfikujcie, na koniec wgrajcie. Jak wyciągniesz bios z capa i wgrasz go bezpośrednio do kości to stracisz informację z DMI - serial number, MAC adres.

Swego czasu robiliśmy podobne akcje z 314TeR ale nic to nie dało, warto jednak sprawdzić.

Link to comment
Share on other sites

Nie mam dostępu do Z97-C, poza tym nie zaryzykuję wpakowania Z97-C, bo nie ma ta płyta USB Flash Back, więc jak się uwali, to tylko backup sprzętowym programatorem ją podniesie. 

 

@reyder - jak mi wymodzisz bios do mojej płyty to mogę sprawdzić, spróbuj przeszczepić moduły z wersji 0217 do 0412. Na swojej mogę spokojnie ryzykować. Jak metoda zaskoczy to można spróbować z innymi płytami. 

Link to comment
Share on other sites

 

Ha no i pięknie - dwie wiadomości, obie dobre - pacjent wstał, bios wgrałem przez USB Flash Back - zapis do NVRAM w zmodowanej wersji 0412 - DZIAŁA!

 

Test bardzo na szybko - chciałem sprawdzić jedynie czy sam zapis do NVRAM działa, nie wiem jak sam komp z tą wersją śmiga i czy inne kwiatki nie wyjdą, ale po 2 uruchomieniach na razie wszystko OK. 

 

Natomiast najważniejsza informacja - TEN MOD DZIAŁA!

 

@reyder - to ja Cię poproszę o nastepny wsad - tym razem trochę trudniejszy - ta płyta NIE ma żadnego BIOSu z zapisem do nvram, ale może uda Ci się tą samą metodą - przeszczepiając starsze moduły zmodować BIOS. 

https://www.asus.com/pl/Motherboards/SABERTOOTH_Z97_MARK_2USB_31/

Ostatni BIOS: http://dlcdnet.asus.com/pub/ASUS/mb/LGA1150/SABERTOOTH_Z97_MARK_2_USB31/SABERTOOTH-Z97-MARK-2-USB31-ASUS-2702.zip

Link to comment
Share on other sites

https://mega.nz/#!dwgiTTab!kf3PCGcz-cDIiGIQ0aUvT8F20iEdUDedtWIfUFU_9ck

 

Chciałbym coś więcej powiedzieć, ale wrzucenie w dissasembler bez header nic za bardzo nie mówi, a nie mam Idy zainstalowanej. Moduły wyglądają prawie identycznie, oprócz jednej funkcji, która przyjmuje 5 argumentów. Mając 0 doświadczenia z UEFI i brakiem czasy w tym tygodniu nic na razie więcej nie powiem. 

Link to comment
Share on other sites

@reyder - zapis do nvram w zmodowanym przez Ciebie biosie 2702 dla ASUS SABERTOOTH Z97 MARK 2/USB 3.1 działa.  :mrgreen:

 
Mnie wciąż nurtuje czemu zapis do NVRAM działa jak kierunkowskaz. Wczesne wersje BIOSów dla Z87 i Z97 wspierają ten zapis, późniejsze znów mają go ubitego. Następna ciekawostka - nowsze wersje BIOSów dla Z170 i skaylake mają ten zapis aktywny, kiedy to ostatnie wersje sprzed dosłownie miesiąca dwóch znów ten zapis mają ubity. Nie sądzę aby ASUS i inni producenci celowo ubijali zapis, potem odblokowywali aby ponownie ubić. To bez sensu. 
 
reyder - wiem, że znasz się na asemblerze, popatrz w wolnej chwili o co chodzi z tymi modułami, co jest grane że raz ten zapis jest a raz nie ma... może wrzuć jakieś info jak można to "zdisasemblować" lub już zdisasemblowany kawałek kodu. 
 
PS - napisz jakim narzędziem podmieniasz te moduły? - chciałbym przetestować dla siebie parę innych nowszych biosów do mojego Maximusa Impact VII i zobaczyć który działa najlepiej, a nie chcę nadużywać Twojego wolnego czasu. 
Link to comment
Share on other sites

Super sprawa. Reyder opisz co zrobiłeś na forum insanely http://www.insanelymac.com/forum/topic/317802-efi-variable-store-on-aptio-v-haswell-e-and-up/page-1 albo daj nam znać to przekażemy info. Może trafią na jakiś trop.

 

Możesz zmodzić BIOS dla Z170 Pro Gaming. Wersja 2003 jako ostatnia obsługiwała NVRAM, 3016 już nie, 3202 nie testowałem.

 

PS: ja podmianę modułów robiłem w MMTool.

Link to comment
Share on other sites

Przeglądnij temat z insanelymac - Slice pisał, że to nie Clover bo z poziomu bootloadera lecą wpisy do nvram.

 

Nvram reads working everywhere. Writes working in Clover and not in macOS.

I see no significant difference in memory map between working and non-working case with other users:

- same RT_Data

- same NvramSmiBuffer location

- same redirection and virtualization

- same MMIO protection

It seems to be not a real reason.

Link to comment
Share on other sites

Nie generalizował bym, skoro z poziomu clovera jest, a potem nie mia, bym bardziej weryfikował działanie OsxAptioFixDrv-64.efi i OsxAptioFix2Drv-64.efi, bo to w nich zawarta jest obsługa zapisu NVRAM dla macOS.

 

Wciąż NIE wiemy czy Linux potrafi zpisywać na biosach "zablokowanych" czy nie. Jak się okaże, że linux potrafi to ewidentnie błąd jest po stronie OsxAptioFix i spółki

Link to comment
Share on other sites

Zrobiłem u siebie podmianę modułów odpowiedzialnych za zapis do NVRAM i potwierdzam, że opisany sposób powyżej działa.  Na mojej płycie ostatni bios z którym działał natywny zapis to 1304. Wypakowałem z niego programem UEFITool moduł odpowiedzialny za zapis nvram i podmieniłem w najnowszym biosie 2903. Zapis zaczął działać, ale płyta miała co 5-6 raz problem z uruchomieniem(podejrzewam że to problem dogadania się kości pamięci z płytą główną). Wgrałem więc zmodyfikowany bios w wersji 2401, najniższej na jakiej wystartuje mój procesor. Komputer na tej wersji jak na razie działa stabilnie, zapis do nvram również działa poprawnie :mrgreen: .

Link to comment
Share on other sites

Wracam do tematu sprawdzenia zapisu/odczytu nvram z poziomu innego systemu niż macOS - aby zweryfikować czy błąd jest w sterowniku clovera czy BIOSu.

 

Zainstalowałem Ubuntu 16.04 serwer na płycie z97 z BIOSem który ma DZIAŁAJĄCY zapis do nvram pod maOS. Niestety wszelkie próby "dobicia" się do nvram pod linuxem kończą się:

 

root@ubuntu:~# nvramtool -a
nvramtool: coreboot table not found.  coreboot does not appear to
        be installed on this system.  Scanning for the table produced the
        following results:


            0 valid signatures were found with bad header checksums.
            0 valid headers were found with bad table checksums. 

Ma ktoś doświadczenie w tym temacie? A może spod linuxa nie mam szans dostać się do parametrów dostępnych w macOS... google co gorsza milczy albo podaje tematy niezwiązane z problemem. 

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

@reyder - coś jeszcze kombinowałeś z zapisem do NVRAM? Udało Ci się coś rozkminić z dissasemblacji modułu od NVRAM? 

 

Przykładowa inna płyta - MSI Z170A GAMING M7 - gdzieś do biosów z końców G/H zapis jest, a późniejsze już nie. Wybacz, ale nie pamiętam dokładnie literki. :(

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.