Portál AbcLinuxu, 30. dubna 2025 23:59

Budiž funkční volume tlačítka :-)

6.11.2009 04:08 | Přečteno: 1571× | Operační Systémy | Výběrový blog | poslední úprava: 6.11.2009 14:54

Jedna z věcí, která mě již delší dobu na mém notebooku trápila byly nefunkční tlačítka pro ovládání hlasitosti zvuku (zesílení, zeslabení a mute). Teda né že by byly zcela nefunkční, ale pokud jsem je použil tak se jako by zasekly. Když jsem si toho všiml poprvé, doufal jsem že se jedná jen o nějaký malý BUG nejspíše v GNOME případně někde v X ovladači pro klávesnici. Čas plynul a tlačítka stále nefungovala. Zkusil jsem je pro jistotu i v jiné distribuci a tam nešla také. Ale ve Windows jely OK, takže jsem věděl že je něco shnilého v mém oblíbeném systému.

Upřímně řečeno jsem se tímto problémem nezabýval nějak příliš detailně, a ačkoliv to byl docela život znepříjemňující BUG, nesnažil jsem se vehementně jej odstranit. Teda aspoň ne hned. Dneska jsem tak večer ležel se svým noťáskem a poslouchal hudbu. No a došlo mi že možnost používat ta tlačítka mi opravdu chybí, tak jsem si řekl že to už konečně vyřeším.

Po chvilce zkoumání problému jsem zjistil, že hlavním problémem bude asi to, že při stisknutí některého z těch tří tlačítek, se začne generovat jen událost stisku ale už ne uvolnění. To jsem zjistil přes xev, očekával jsem že problém bude někde v X ovladači klávesnice. Naštěstí toho sem se nedržel dlouho a napadlo mě zjistit zda není problém ještě v nižší vrstvě. A to někde v jádře Linuxu. K detekci zda se generují signály uvolnění jsem použil utilitu showkey. A ta mi prozradila, že je problém už v samotném jádře, přesněji v ovladači pro klávesnici.

Když už jsem byl konečně schopen říct, co je na vině, nebylo obtížné najít další lidi s podobným problémem. Pak už jen byla otázka času než sem našel pro mě funkční řešení. Není podle mě sice ideální, ale funguje dostatečně. Řešení se skýtá v tom, že se pro dané tlačítka generuje automaticky signál uvolnění. Toto je potřeba udělat ve zdrojových kódech Linuxu. Přesněji v souboru atkbd.c. Jak už jsem psal podobný problém mělo více lidí. A tak není divu že daný soubor atkbd.c obsahoval spousty háčků pro různé notebooky atd. Což se samozřejmě vývojářům příliš nezamlouvalo a tak nalezli o něco lepší řešení, které krom čistšího kódu přináší hlavně i možnost udělat potřebné úpravy bez potřeby znovu kompilování jádra.

Řešení spočívá v tom, že skrz sysfs můžeme nastavit keycode kláves pro které chceme automaticky generovat uvolnění klávesy. Jedinou nevýhodou je zatím hlavně to, že tento způsob je (bude) dostupný až od verze jádra 2.6.32. Takže abych toho mohl využít rozhodl jsem se pro kompilaci jádra z git stromu. Pak jen stačilo najít správné hodnoty kláves a zadat je do onoho souboru v sysfs. U mě to vypadá tak že se při startu provádí následující příkaz:

 
echo 160,174,176 > /sys/devices/platform/i8042/serio0/force_release
 
Ten zajistí že mohu konečně pohodlně ovládat hlasitost svého notebooku :-)

       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

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

Vložit další komentář

6.11.2009 07:38 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Já mám IBM ThinkPad T43p a na něm Archlinux. Volume tlačítka jsem musel řešit přes obezličky typu hotkey-setup a acpi-fakekey. Pak přišlo jádro 2.6.31 a Gnome 2.28 a problémy jsou rázem pryč, bez jakékoliv obezličky. Vida!
Milan Lajtoš avatar 6.11.2009 10:59 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Starám sa o jednu T30-ku, kde je momentálne Ubuntu 9.10 (kernel 2.6.31, gnome 2.28), no ACPI eventy sa neposielajú. Naozaj ste nič nemenili?
“Every great achievement was once considered impossible.”
6.11.2009 11:43 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Vážně jsem nic neměnil, dokonce jsem všechny ty kravinky typu acpi_fakekey musel zrušit, protože s nimi to nefungovalo.
6.11.2009 07:49 sssssssss | skóre: 15 | blog: cotoje
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
UserFriendly
hmm
7.11.2009 11:30 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Jasěn, no mohl výrobce ntb dodat instalační cd s balíčky pro tucet distribucí, které by obsahovaly init skript, který by tohle udělal sám.
Only Sith deals in absolutes.
6.11.2009 08:22 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Jo, volume tlačítka. Bylo nebylo všechno fungovalo, zmáčkl jsem volume+, objevila se velká cedule s aktuální hlasitostí a zvuk se zesílil. Zmáčkl jsem volume-, objevila se cedule a zvuk se zeslabil.

Pak jsem jednoho dnes udělal apt-get upgrade a ejhle, volume- přestalo fungovat. Teda ne ta klávesa, na tu se nechá nastavit jiná akce. Jenom prostě už nevyskočí cedule ukazující aktuální hlasitost.

Jsou věci, který člověk nepochopí...
Quando omni flunkus moritati
vlastikroot avatar 6.11.2009 08:38 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Ještě že můj thinkpad má všechny tyhle kraviny rovnou v HW :-D Navíc se dá přes maskování těch tlačítek dostat ty stisky a zobrazit přes nějakou utilitku. A přes SW to regulovat jde taky. IMHO ideálně udělaný ACPI.
We will destroys the Christian's legion ... and the cross, will be inverted
kozzi avatar 6.11.2009 08:54 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
JJ, nb od IBM/Lenovo maji toto reseno skvele. Jeden thinkpad tady mam a nemuzu si stezovat.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
Nicky726 avatar 6.11.2009 09:15 Nicky726 | skóre: 56 | blog: Nicky726
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
<rejp>Ty používáš plurál majestátis?</rejp>
Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
kozzi avatar 6.11.2009 10:05 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
No to ani ne :D. Jen mam nejak spatne synchronizovane prsty :D.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
6.11.2009 12:04 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Aha! Hacker! :-D
6.11.2009 12:39 CET
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak super. A ted zkus jeste najit ten Bug ve tvym modulu pro cestinu. Docela by se hodil, protoze to fakt vypada, ze se snazis nas jazyk urazet a ponizovat:) Navodu, jak ten tvuj cestinskej bug vyresit, je opravdu hodne.
kozzi avatar 6.11.2009 13:11 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
nerekl bych, me prijde ze tento zapiske je vcelku ictelnej a tech "par" preklepu, me nijak netizi :D. "
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
rADOn avatar 6.11.2009 13:58 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Čeština není tvůj oblýbený jazyk?
"2^24 comments ought to be enough for anyone" -- CmdrTaco
kozzi avatar 6.11.2009 14:28 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Tak popravde preferuji spis jazyky jako C/C++, Python, Java... :D
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
7.11.2009 09:47 xurpha
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
čeština je sračka
6.11.2009 14:43 Václav Kramář | skóre: 31 | Nechanice
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Tak to jsi šťastný člověk. Některé z nás ty hrubky bijí do očí.
7.11.2009 09:46 xurpha
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
češtinu není třeba urážet, pač je to sračka!
7.11.2009 11:38 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
Odpovědět | Sbalit | Link | Blokovat | Admin
A neni mnohem jednodussi si nastavit takove akce na normalni klavesove zkratky? Ty budou fungovat vzdycky a bez problemu. Nechapu, proc nekdo chce k necemu vyuzivat tyto 'ACPI tlacitka', kdyz s nima jsou akorat problemy.
kozzi avatar 8.11.2009 11:50 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Budiž funkční volume tlačítka :-)
No mozna proto zxe jsou ktomu urcena :-D. Tak jako muzu si premapovat treba pismenko e m naopak a potom aspon nebudu psat misto jsem jsme :D
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"

Založit nové vláknoNahoru

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