Portál AbcLinuxu, 26. dubna 2024 06:44

Zmena frekvencie PWM podsvietenia na T420 (a podobných)

16.4.2016 08:50 | Přečteno: 1822× | Hardware | Výběrový blog | poslední úprava: 16.4.2016 13:23

Po internete sa povaľuje zopár blbých návodov ako zmeniť frekvenciu PWM z defaultných 200Hz (hnusné blikanie) na povezme prijateľných 2 000Hz. Nie, že by to nefungovalo, ale zápis frekvencie PWM do príslušného registra GPU vyradí ovládanie podsvietenia cez xbacklight a podobné nástroje.

Upozornenie

Nasledujúci postup môže spôosobiť zničenie hardvéru. Hodnoty, ktoré nastavujem pre svoj notebook nemusia na iných modeloch vôbec fungovať. Uvedený postup môže výrazne znížiť životnosť zdroja. Hodnoty som nastavoval bez toho aby som poznal vnútornosti svojho notebooku systémom pokus-omyl. Ak mi po týždni umire zdroj - môj problém (mám v šuflíku ďalšie 2 náhradné).

Ako to funguje

Ako funguje PWM

PWM (alebo slovensky pulzne šírková modulácia) umožäuje generovať signál, ktorý sa tvári ako analógový (spojitý) aj keď v skutočnosti môžme generovať len 1 (zapnutý) a 0 (vypnutý). Parametrami PWM modulácie sú frekvencia a šírka impulzov.

Príklad

V príklade budem používať namiesto frekvencie periódu (1/frekvencia). Ak teda budeme mať periódu dĺžky 10 časových úsekov môžme meniť šírku impulzu (intenzitu podsvietenia) od 1 po 10. Minimálna úroveň podsvietenia by bola modulovaná takto:

100000000010000000001000000000

Nastavenie PWM cez registre

Jednoduchý návod a kalkulačka na nastavenie frekvencie PWM je na tomto odkaze. Surový zápis do registra pre nastavenie 2 000 HZ vyzerá takto: intel_reg write 0xC8254 0x1e801e8. Hodnota 01e8 je perióda PWM (do registru je zapísaná 2x, horné byty nastavujú periódu, dolné šírku, takže zápis rovno nastaví 100% jas).

Problémom je, že po nastavení hodnoty v registri nastavuje kernel stále šírku impulzu v plnom rozhahu, takže perióda je po zápise v mojom prípade 488, ale kernel umožňuje nastaviť šírku impulzu v rozaahu 1-4437. Xbacklight síce bude fungovať, ale jas sa bude meniť len v rozsahu 0-10%, všetky nad 10% bude mať maximálny jas.

Riešenie

Problémom je, že BIOS u Lenova nastavuje nezmyselne nízku hodnotu 200Hz (nie je to ako 200Hz CRT, tie aspoň nezhasli hneď, ale mali nejakú latenciu). Logickým riešením by bola oprava BIOSu, ale to jej pomerne zložité. Rozhodol som sa preto o menej drastický krok - upraviť trochu kernel.

Upraviť stačí jediný súbor - drivers/gpu/drm/i915/intel_panel.c vo funkcii pch_setup_backlight, riadok:

	// nastavenie šírky aj periódy na 0x01e8 teda 488
	I915_WRITE(BLC_PWM_PCH_CTL2, 0x01e801e8); // Tento riadok treba pridať nad nasledujúci riadok
	pch_ctl2 = I915_READ(BLC_PWM_PCH_CTL2);

Gentooisti si samozrejme môžu umiestniť patch do príslušného adresára aby sa im pri inštalácii automaticky opatchoval kernel.

       

Hodnocení: 89 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Petr Tomášek avatar 16.4.2016 11:34 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak šup, honem napsat patch do jádra a poslat to linusovi, aby uživatelé nemuseli lézt přímo do registrů...
multicult.fm | monokultura je zlo | welcome refugees!
mirec avatar 16.4.2016 12:00 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)

Do kernelu to nepatrí, oprava by mala ísť do BIOSu.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Petr Tomášek avatar 18.4.2016 11:45 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Dokud je BIOS na hovno, musíš mít háčky v jádře...
multicult.fm | monokultura je zlo | welcome refugees!
mirec avatar 16.4.2016 12:27 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)

Ešte aby odpoveď nebola taká strohá.

Dostupný rozah frekvencie PWM je od jednotiek Hz až po desiatky kHz. Pri nízkych frekvenciách sa prejavuje blikanie. Od 1kHz u niektorých modelov počuť pískanie (to mimochodom u mojej T420 počuť aj keď je hibernovaná a vydáva ju zdroj ktorý napája blbú blikajúcu LED). PWM podsvietenie tu na 2kHz nepočujem. Frekvencia sa dá nastaviť vysoko nad 20kHz.

Možnosti nastavenia PWM sú u všetkých modelov s rovnakou integrovanou grafikou rovnaké. Kernel nemá ako zistiť typ zdroja, ktorý napája LED. Frekvenčný rozsah zdroja môže byť výrazne obmedzený, pri niektorých frekvenciách môže vydávať zvuk, pri vysokých frekvenciách nemusí fungovať vôbec, alebo sa môže jeho životnosť výrazne znížiť. Neexistuje žiadna univerzálna frekvencia, pri ktorej je blikanie minimálne, ale neprejavia sa žiadne vedľajšie efekty. Kernel môže maximálne tak poskytnúť rozhranie cez ktoré by sa dala nastaviť frekvencia PWM, ale zápis zlej hodnoty do registra môže fyzicky zničiť hardvér.

Súčasný stav kedy frekvenciu určuje výrobca pretože výrobca by mal vedieť ako sa zdroj správa je správny. Kernel nemení hodnotu, ktorú nastavil BIOS.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
16.4.2016 12:12 smazáno | skóre: 18 | blog: smazáno
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Odpovědět | Sbalit | Link | Blokovat | Admin
Gentooisti si samozrejme môžu umiestniť patch do príslušného adresára aby sa im pri inštalácii automaticky opatchoval kernel.
Funguje tohle prosimte na gentoo i s jinymi balicky?
mirec avatar 16.4.2016 12:15 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
16.4.2016 12:58 zorro
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
To je docela dobře vymyšlené
Bedňa avatar 16.4.2016 21:40 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Tak Gentoo má vychytané viaceré veci, len tá kompilácia ma vždy zabíjala a tak som späť u Debiana, no poznám aj Gentoo veteránov ktorí skončili u Ubuntu, pretože oni majú toto väčšinou už vychytané.

Nechápte to ako komentár proti Gentoo, je to vynikajúce distro a komunita, len ako stárnem som stále lenivejší.
KERNEL ULTRAS video channel >>>
limit_false avatar 18.4.2016 12:41 limit_false | skóre: 23 | blog: limit_false
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Jsem na tom úplně stejně, tato vlastnost Gentoo byla skvělá, ale člověk většinou nepotřebuje tuto featuru u každého balíku. Takže teď si většinou manuálně zbuildím konkrétní balík ručně a zbytek distra nechám s předkompilovanými balíky (CentOS, Debian, Ubuntu). Přijde mi to jako nejlepší kompromis.

Človek ani není lenivější, jenom už nemá čas čekat až se všechno zkompiluje.
When people want prime order group, give them prime order group.
19.4.2016 10:45 smazáno | skóre: 18 | blog: smazáno
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Jenze to pak prijdes prave o to automaticke patchovani no ne.
mirec avatar 19.4.2016 11:57 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)

S tou kompiláciou to až tak horúce nie je. Ja som nedávno robil čistú inštaláciu na môj "nový" thinkpad t420 (5-ročný bazárový) a bola hotová za pár hodín (asi 4-6 ak si dobre spomínam) vrátane desktopu. Priebežná údržba je tak 5 minút týždenne. Momentálne tu mám starý dvojjadrový Core i5, dá sa upgradovať na novšiu generáciu i7 (štvorjadrový).

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
20.4.2016 12:41 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)

total offtipic ale strasne mi to nici nervy:)

http://jazykovaporadna.sme.sk/q/2212/

D.

Bedňa avatar 16.4.2016 21:42 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Odpovědět | Sbalit | Link | Blokovat | Admin
Kurňa som sa preklikol, chcel som hlasovať za "dobré" a klikol som "špatné", môže to niekto z adminov opraviť? Ďakujem.
KERNEL ULTRAS video channel >>>
JiK avatar 17.4.2016 20:37 JiK | skóre: 13 | blog: Jirkoviny | Virginia
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Odpovědět | Sbalit | Link | Blokovat | Admin
pokud okem poznas rozdil mezi 200 a 2000 Hz, jsi asi superman...
Jirka Cech
mirec avatar 17.4.2016 20:49 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)

Poznám, stačí mať biely text na čiernom pozadí. Ešte pri frekvencii 1000Hz vidím pri čítaní obraz rozsekaný na PWM intervaly. Blikanie samozrejme od tých 60Hz (80 v periférnom videní) nevnímam, ale pri pohybe očí to vadí tak isto ako mi vadia DLP projektory.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bystroushaak avatar 18.4.2016 00:23 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
pokud okem poznas rozdil mezi 200 a 2000 Hz, jsi asi superman...
Oko vidí podstatně větší frekvence v periferní části, než se běžně uvažuje pro část, na kterou ostříš. Já takhle běžně vidím blikat zářivky na 60Hz, kdysi jsme to zkoušeli i s displejem kalkulačky. 200Hz už se mi teda zdá taky hodně, ale nevylučoval bych to. Nemůže to být aliasing?
Bedňa avatar 18.4.2016 21:47 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Ono to nieje len tým, že ľudia majú schopnosť vnímať aj vyšie frekvencie. Dnes je bežné, že väčšina ľudí pracuje v osvetlenej miestnosti a frekvencia 60Hz oproti 200Hz nieje až tak ďaleko, takže vznikajú viditeľné interferencie takže vnikajú spojité vlny a ty to vnímaš ako blikanie, hoci na frevencií pár Hz.
KERNEL ULTRAS video channel >>>
Bystroushaak avatar 18.4.2016 22:03 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Ten závěr s tou 60Hz oproti 200Hz a spojitýma vlnama prosím ještě vysvětlit, protože to nechápu, jak spolu souvisí.
Bedňa avatar 18.4.2016 22:13 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Roztoč si koliečko s harebnými čiarami pod umelým osvetlením. Keď bude sedieť potočenie čiary s frekvenciou osvetlenia uvidíš stojaté čiary, to isté uvidíš aj u násobkov otáčok, len slabšie, ale vidieť je to stále dosť zreteľne.
KERNEL ULTRAS video channel >>>
Josef Kufner avatar 19.4.2016 09:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Jmenuje se to stroboskopický efekt.
Hello world ! Segmentation fault (core dumped)
Jendа avatar 18.4.2016 05:32 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Zmena frekvencie PWM podsvietenia na T420 (a podobných)
Já to poznám při pohybu, dělá to strobo na sítnici.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.