Portál AbcLinuxu, 26. dubna 2024 08:11

Jaderné noviny – 2. 2. 2011: Hrobník 1.0, ovladač wacom

14. 2. 2011 | Jirka Bourek
Články - Jaderné noviny – 2. 2. 2011: Hrobník 1.0, ovladač wacom  

Aktuální verze jádra: 2.6.38-rc3. Citáty týdne: Andrew Morton, Richard Hughes. Hrobník 1.0. Kconfiglib. Vylepšení ovladače wacom.

Obsah

Aktuální verze jádra: 2.6.38-rc3

link

Současné vývojové jádro je 2.6.38-rc3, vydané 1. února. Nic opravdu zvláštního a s radostí můžu říct, že všechny požadavky na přetažení byly krásné opravy chyb a regresí. Většině z vás za to děkuji. Jako vždy všechny detaily vizte v kompletním changelogu.

Stabilní aktualizace: během tohoto týdne nevyšly žádné aktualizace stabilních jader. Jádro 2.6.35.11 je revidováno; vydáno by mohlo být už 3. února.

Citáty týdne: Andrew Morton, Richard Hughes

link

Kdykoliv, když uděláš funkci, jejíž jméno obsahuje „check“, je to dobré znamení, že jsi něco udělal špatně.

-- Andrew Morton

V GNOME 3.0 používáme takové výchozí nastavení, že se počítač uspí, když uživatel zaklapne víko; neposkytujeme žádné možnosti výběru, kterými by se to dalo změnit. Tak to chtějí návrháři UI GNOME 3.0 a je to pravděpodobně krok správným směrem. Opravdu nemůžeme dál obcházet chyby v jádře extra prvky v UI.

-- Richard Hughes

Acked-by [kým-schváleno] normálně nedělám. Je to můj způsob, jak se vyhnout obviněním, když všechno vybuchne.

-- Andrew Morton

Hrobník 1.0

link

napsal Jonathan Corbet, 1. února 2011

Jak chápe každý, kdo kdy čekal na dokončení překladu „allyesconfig“ jádra – nebo konfiguraci od distributora – v jádře je spousta kódu. Ve většině případů se perfektní jádro vytváří tak, že se z něj kód vyhazuje do té doby, dokud není rozumně velké. Jenom výjimečně se tedy překládá větší část kódu ve stromě.

Výběr překládaných kusů kódu umožňuje mechanismus konfigurace jádra. Část tohoto mechanismu je zabudována do systému překladu; umožňuje úplně přeskočit soubory se zdrojovými kódy, pokud neobsahují nic zajímavého. Druhá polovina je nicméně implementována symboly preprocesoru a podmíněným překladem. Vývojářům jádra se používání #ifdef nedoporučuje, ale v kódu je i tak dost podmíněných bloků.

Někdy je logika, která vede k začlenění nebo nezačlenění specifického bloku, složitá a vůbec ne přehledná. V jádře je mnoho konfiguračních voleb a ty mohou komplikovanými způsoby záviset jedna na druhé. Výsledkem je, že mrtvý kód – kód, který nebude nikdy přeložen bez ohledu na konfiguraci – může roky unikat pozornosti. Mrtvý kód přidává do stromu zdrojových kódů šum a protože ho nikdo nepoužívá, je u něj vyšší pravděpodobnost, že bude obsahovat chyby. Když je potom znovu povolen nebo zkopírován jinam, chyby se překvapivými způsoby šíří celým stromem.

Bylo by tedy dobré mít možnost identifikovat mrtvý kód a ze stromu ho vyhodit. Nově vydaný nástroj undertaker [hrobník] je navržen k mnoha typům statické analýzy včetně identifikace mrtvého kódu. Vývojáři ho mohou spustit sami a hledat mrtvé bloky ve specifických souborech; také je k dispozici webové rozhraní, které každému umožňuje procházet strom a hledat mrtvé sekce. To by mělo vést k patchům, které odtáhnou mrtvoly pryč a strom pročistí, což je jedině dobře.

Kconfiglib

link

napsal Jonathan Corbet, 2. února 2011

Systém konfigurace jádra je sám o sobě komplexní kus kódu; mnoho lidi, kteří nemají problém s vývojem jaderného kódu, si často hledá důvody, proč se vyhnout konfiguračnímu subsystému. Je ale užitečné mít možnost pracovat s komplikovanými datovými strukturami, které představuje konfigurace jádra. Ulf Magnusson nedávno zaslal knihovnu – Kconfiglib, která to, jak doufá, zjednoduší.

Kconfiglib je knihovna napsaná v Pythonu, která je schopna nahrát, analyzovat a vypsat jaderné konfigurace; s opatrností bylo zajištěno, aby vytvořená konfigurace byla stejná jako ta, která vypadne z existujícího konfiguračního systému jádra. S Kconfiglib je jednoduché napsat jednoduché nástroje jako „allnoconfig“; je také možné pokládat otázky ohledně dané konfigurace. Jeden možný nástroj by například mohl zodpovědět otázku „proč nemůžu zapnout CONFIG_FOO“ - to by rozhodně bylo užitečné.

Systém překladu jádra v současnosti na Pythonu nezávisí; přidat do něj tuto závislost by snadno mohlo narazit na opozici. Kconfiglib by si ale mohl najít roli při vytváření doplňkových nástrojů, které nejsou zapotřebí pro konfiguraci a překlad jádra tak, jak se to vždycky dělalo. Zvědaví se mohou podívat na dostupnou sadu příkladů.

Vylepšení ovladače wacom

link

napsal Jonathan Corbet, 1. února 2011

Tablety wacom si často vybírají ti, kdo potřebují přesné a flexibilní vstupní zařízení; podle všeho je mají ve zvláštní oblibě umělci. Jako myš mohou tyto tablety hlásit pozici a pohyb, ale také mohou pro systém představovat více vstupních zařízení (například jedno za každý typ pera) a hlásit proměnné jako sklon pera, tlak a další. Podpora těchto zařízení v Linuxu nicméně zatím nebyla tak dobrá, jak by se nám líbilo, ale – jak řekl Peter Hutterer během své přednášky na minikonferenci linux.conf.au Libre Graphics – rychle se zlepšuje. Jak se to stalo je klasickým příkladem, jak vyvíjet (nebo jak nevyvíjet) jaderné ovladače.

Peter je správce pro většinu vstupních grafických ovladačů. Jak říká, přepsal v tomto subsystému většinu kódu, takže za chyby, které tam jsou, je odpovědný on. Většinu vstupních zařízení lze snadno vyřešit pomocí abstrakce evdev, ale ovladač Wacom je výjimka. Věci, které jsou pro tyto tablety unikátní (více vstupních „zařízení“, každé spojené s jedním perem, tlak, náklon, rotace os a relativně velké rozlišení), vyžadují pro podporu zvláštní ovladač. Uživatelé těchto tabletů tedy potřebují na systému ovladač linuxwacom.

U tohoto ovladače panují jisté zmatky, protože existuje víc verzí, přičemž všechny lze nalézt na SourceForge. Jednu verzi (0.8.8) vytvořil sám Wacom; je to klasický ovladač od výrobce, řekl Peter, se vším, co z toho obvykle vyplývá pro vývojový proces a kvalitu kódu samotného. Ovladač se dodává jako tar archiv obsahující divokou sadu permutací verzí jader a X.org; je tam bordel. Je to ale bordel Wacomu a firma odolává všem snahám ho pročistit.

Peter toho měl právě dost roku 2009, kdy se rozhodl, že ovladač forkne. Jeho verze je nyní v mnoha distribucích výchozí a je jediná, která podporuje novější verze X serveru. Peter se díval do repozitářů a před forkem v nich bylo 78 commitů, všechny od Wacom. Po forku jich je tam 788, 65 % od Red Hatu a 12 % od Wacomu. Když ovladači přestal dominovat výrobce, tempo vývoje se rozhodně zrychlilo.

Překvapující je, že původní ovladač Wacom stále vyvíjí a to přes fakt, že nepodporuje současné X servery a distribuce ho nedodávají. Původní mailová konference stále funguje, ale Peter varoval, že se tam nikdo nemá ptát na nový ovladač. Jak řekl, vývoj jádra má probíhat v mailové konferenci linux-kernel. Také nemá moc cenu mluvit s ním o problémech se starým ovladačem; Wacom nadále trvá na tom, že nad tímto kódem budou mít kontrolu oni.

Většina práce, kterou Peter udělal, směřovala k pročištění ovladače, což znamenalo zahodit některé vlastnosti. Některé z nich zmizet musely – původní ovladač se například pokouší sledovat rozlišení obrazovky, do kterého mu nic není. Podpora „twinview“ pro dva monitory je také pryč. V některých případech mezi odstranění věci patří i vlastnosti, které uživatelé chtějí; jejich podpora bude nakonec obnovena, až to bude možné udělat správně. Někdy, říká Peter, se věci nejprve musí zhoršit, než se zlepší.

Zmizel i konfigurační nástroj wacomcpl. Peter řekl, že to byl jeden z nejhorších kusů kódu, jaký kdy viděl.

Peter svoji přednášku pojal jako zprávu o stavu ovladače pro grafiky, ale také je žádal o odezvu. Svůj přístup k vývoji popsal slovy pokud server nespadne, funguje to. Jinými slovy on sám grafikem není, takže nemá nějaké hluboké vědomosti o tom, jak se tento hardware používá; k tomu potřebuje odezvu od komunity uživatelů, která by mu měla říct, na co se má zaměřit a kde věci nefungují tak, jak by měly.

Umělci, kteří používají tablety Wacom, by tedy měli zajistit, aby jejich potřeby vešly ve známost; vývojář odpovědný za ovladač je připraven naslouchat.

Větší otevřenost vývojového procesu ovladače zrychlila tempo vývoje a zlepšuje kvalitu kódu. Pokud vydrží obvyklý vzor, nebude to trvat dlouho a tyto bezkonkurenční tablety budou v Linuxu fungovat.

Odkazy a zdroje

Kernel coverage at LWN.net: February 2, 2011

Další články z této rubriky

Jaderné noviny – přehled za březen 2024
Jaderné noviny – přehled za únor 2024
Jaderné noviny – přehled za leden 2024
Jaderné noviny – přehled za prosinec 2023
Jaderné noviny – přehled za listopad 2023

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