Portál AbcLinuxu, 13. června 2024 01:04

Jaderné noviny 301

5. 4. 2005 | Robert Krátký
Články - Jaderné noviny 301  

Podpora PS/2 dotykových obrazovek Fujitsu LifeBook. Bootsplash pro 2.6.11-rc4. Nepovedený pokus o restrukturalizaci /sys. Přepsání ovladače pro PCI most. Rozpoznávání diskových oddílů.

Podpora PS/2 dotykových obrazovek Fujitsu LifeBook, 31 e-mailů

11. úno - 1. bře

Vojtěch Pavlík napsal:

Reimplementoval jsem ovladač dotykové obrazovky Lifebook pomocí libps2 a input, aby byl menší a lépe pasoval mezi ostatní jaderné ovladače.

Prosím o komentáře ke kódu a otestování funkčnosti.

P.S. Ovladač by měl registrovat dvě vstupní zařízení. Zatím to nedělá, protože v rámci psmouse to není zrovna prosté.

Kenan Esau měl radost, že se na podpoře pracuje, ale k samotnému patchi měl dost technických připomínek. Jednou z věcí, která se mu nelíbila, bylo to, že neexistuje způsob jak zjistit, jestli je nějaká dotyková obrazovka LifeBook vůbec součástí systému. To se Arjanu van de Venovi vůbec nelíbilo a navrhl pár způsobů, jak detekovat LifeBooky. Ale Kenan odpověděl: Ty dotykové obrazovky LifeBook se používají i v jiných noteboocích. Například v Panasonicu Toughbook CF28. Ale mohli bychom použít DMI ke zjištění, jestli jsme na LifeBooku b-série, a pak hardware inicializovat. Tím bychom dostali tak 95 % všech případů. Pro všechny ostatní případy bychom museli přidat nějaký přepínač, kterým by se podpora zapnula natvrdo. Vojtěch doplnil: Nebo jen další záznam pro Toughbook a další, které používají tento typ řadiče dotykových obrazovek, v DMI tabulce.

Později poslal Kenan vlastní aktualizovanou verzi patche, včetně dotazování DMI. Vojtěch v kódu našel několik specifických problémů, ale obecné výhrady proti Kenanově přístupu neměl.

Bootsplash pro 2.6.11-rc4, 20 e-mailů

18. úno - 1. bře

Pavel Machek napsal: Pokud byste někdo měl zájem, tak tohle je bootsplash pro 2.6.11-rc4 převzatý z jádra SUSE. Asi se jej pokusím upravit tak, aby fungoval s radeonfb. Nevíte někdo, proč se bootsplash šťourá ve vesafb? Michal Januszewski odpověděl:

Vesafb ve skutečnosti k ničemu potřeba není. Někdy v dobách kolem 2.6.7 jsem vydával verzi bootsplash, ze které byla závislost na vesafb odstraněna. Fungovalo to dobře s několika jinými fb ovladači.

Jestli si chceš ušetřit práci, vyzkoušej alternativní řešení nazývané fbsplash, které jsem navrhl poté, co mě omrzelo věčné opravování bootsplash. Fbsplash poskytuje téměř stejné možnosti, ale spousta kódu je přesunuta do uživatelského prostoru (už žádné dekodéry JPEG v jádře).

Greg KH s Michalem souhlasil a řekl, že jeho verze vypadá rozumně, je stabilní a možná dokonce zralá na začlenění. Pavel také souhlasil a dodal: Mým jediným požadavkem je, aby to fungovalo s radeonfb a podobnými nízkoúrovňovými ovladači (abych mohl zprovoznit suspend-to-ram). Michal odpověděl, že radeonfb by neměl pro fbsplash představovat žádný problém.

Nepovedený pokus o restrukturalizaci /sys, 9 e-mailů

19. úno - 25. úno

V reakci na dřívější diskuzi poslal Malcolm Rowe patch, který vytvářel symlink /sys/class/block směřující na /sys/block. Chris Wedgwood odpověděl: Neměli bychom spíš přesunout /sys/block do /sys/class/block a odtud vést symlink na /sys/block v naději, že se toho jednou úplně zbavíme? Greg KH reagoval: Až bude struct class_device podporovat děti, můžeme to udělat. Ale taková podpora ještě nebyla doplněna... Kay Sievers na jiném místě poukázal na to, že hotplug události budou mít i nadále cestu /block/*, takže takový symlink by nepřinesl nic než problémy. Po chvíli dohadování Greg uznal: Ok, zapomeň na symlink. A když jsme u toho, zapomeň i na to, že bychom se kdy dostali ze /sys/block/...

Přepsání ovladače pro PCI most, 14 e-mailů

23. úno - 28. úno

Adam Belay napsal:

Posledních pár týdnů jsem se zabýval reorganizováním PCI subsystému, aby lépe využíval ovladačový model. Konkrétně, kód detekce sběrnice teď používá standardní ovladač PCI. Ukázalo se, že to nebude nic snadného, protože PCI dotazovací kód je úzce svázán s mnoha dalšími PCI komponenty a je rozlezlý v oblastech specifických pro různé architektury. Doufám, že tyto změny umožní daleko čistší a funkčnější implementaci PCI.

Základní logika nového kódu vypadá následovně:

  1. Standardní ovladač se naváže na zařízení mostu [bridge device].
  2. "*probe" po zavolání nastaví hardware a alokuje "struct pci_bus".
  3. "struct pci_bus" je naplněno informacemi o zjištěném mostu.
  4. Ovladač pak zaregistruje "struct pci_bus" u PCI Bus Class [třída sběrnice].
  5. PCI Bus Class uvolní most pro sysfs.
  6. Pak detekuje hardware k mostu připojený.
  7. Každé nové zařízení PCI mostu je registrováno podle ovladačového modelu.
  8. Všechna zbývající PCI zařízení jsou registrována podle ovladačového modelu.

Kroky 7 a 8 umožňují lepší správu prostředků.

Greg KH k tomu řekl: Celé se mi to líbí :). Jestli chceš už teď poslat patche, které kód přeskupí, aby šlo v budoucnu snáze dosáhnout vyjmenovaných cílů, jen do toho. S radostí je přijmu. A Adam odpověděl: Brzy vydám aktualizovanou verzi. Pak začnu plánovat strategii pro začleňování do hlavního stromu.

Rozpoznávání diskových oddílů, 16 e-mailů

26. úno - 28. úno

Andries Brouwer napsal:

Dobře známá chyba v jádře způsobuje, že kernel hádá, jaké oddíly a jakého druhu má kterýkoliv disk, na který narazí. To není dobře, protože dochází ke zbytečnému I/O, což zpomaluje bootování; někdy docela výrazně - zvláště když se při I/O vyskytnou chyby. A také to není dobře proto, že občas to uhodne špatně.

Jinými slovy, potřebujeme příkaz "partition" pro uživatelské prostředí. "partition -t dos /dev/sda" načte DOSovskou tabulku oddílů. (A "partition /dev/sda" zkusí všechnu možnou heuristiku na to, aby uhádl, jaké dělení je použito.) Jsou dvě možnosti: (i) partition jádru řekne, aby provedlo načtení tabulky oddílů a (ii) partition použije k načtení tabulky oddílů partx a pěkně jeden po druhém jádru řekne o všech oddílech takto nalezených.

Protože jde o zásadní změnu, bude potřeba delší přechodné období. Takové období by mohlo začít jaderným bootovacím parametrem, který by jádru říkal, že u konkrétního disku, typu disků nebo všech disků si nemá tabulky oddílů všímat.

Tohle by mohl být úvod k patchi, který to dělá, ale není. Jen si o ten kód říkám.

Za všechno může ten malinký patch, který přikládám. Navrhl ho Uwe Bonnes, který narazil na USB zařízení bez tabulky oddílů, kde naše současná heuristika nezabránila načítání tabulky oddílů. Jádro pak oddíly typu 0 ignoruje. Je to jen první pomoc.

Řekl bych, že nikdo takové oddíly vážně nevyužívá, ale i tak by to mělo být chvíli v -mm, aby si lidi měli čas stěžovat.

Linus Torvalds se patche ujal a po chvíli diskuze řekl: Začlením to hned po 2.6.11 (není nutné si dělat starosti s tím, že to nebude v 2.6.11, protože pokud tomu rozumím, tak nejhorším problémem je teď jeden oddíl navíc, který není využitelný). Uwe Bonnes poznamenal: No, na systému se SUSE 9.2 se SUSE hotplug byl ten fantómový oddíl kupodivu rozpoznán jako ReiserFS a hotplug mechanismus, který se ten falešný ReiserFS oddíl pokoušel připojit, oopsnul... Linus uznal, že to je vážný případ, ale měl pocit, že ReiserFS si nevede moc dobře při ověřování. Spolu s Andriesem požádali lidi, aby všechny oopsy hlásili.


V originálu Kernel Traffic 301 vyšla navíc ještě tato témata:

Tento článek vychází ze seriálu Kernel Traffic (www.kerneltraffic.org) a je zveřejněn pod licencí GPL verze 2.

Související články

Jaderné noviny 298
Jaderné noviny 299
Jaderné noviny 300

Odkazy a zdroje

Kernel Traffic #301

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

Jaderné noviny – přehled za květen 2024
Jaderné noviny – přehled za duben 2024
Jaderné noviny – přehled za březen 2024
Jaderné noviny – přehled za únor 2024
Jaderné noviny – přehled za leden 2024

Diskuse k tomuto článku

5.4.2005 07:31 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše USB disk
Odpovědět | Sbalit | Link | Blokovat | Admin
Zdravim

Ta popisovana chyba s USB diskem je asi chyba wokenic. Oni totiz delaj fat filesystem primo na block device misto toho aby roztahli jednu partition pres cely block device a v nem udelali ten filesystem. vysledkem v linuxu je nekolik silene prekrizenych neznamych filesystemu.

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
5.4.2005 08:43 Pet
Rozbalit Rozbalit vše Re: USB disk
Ja myslim, ze to neni chyba. Pokud povazuji maly disk za "hard disk", tak tam dam master boot s partitionn table. Ale pokud jej povazuji za "floppy disk", a to je vyhodnejsi, protoze je maly a takto usetrim i trochu mista, tak tam dam primo filesystem.
5.4.2005 08:44 jkt
Rozbalit Rozbalit vše Re: USB disk
nebo na to muzes koukat jako na chybu linu (stejne jako lidi na lkml), protoze neni duvod, aby bylo preskoceni partitionovani celyho disku spatny. Jo a AFAIK ty disky takhle dodavaji primo nektery vyrobci.
5.4.2005 11:10 Jan Stanik
Rozbalit Rozbalit vše Re: USB disk
Tak, davaju, a potom s tym niekedy maju problemy samotne windows, niekedy dokonca takyto USB disk ani nedokazu preformatovat :-) Potom za mnou chodia ludia, ja to strkam do masiny, pisem fdisk /dev/sda a mazem a mazem. Tak neviem, co je lepsie, ale ked na USB kluci spravim ext3, facha uplne v poho, len, samozrejme, windows to nenajde :-)
5.4.2005 11:32 Ctirad Feřtr | skóre: 43 | Praha
Rozbalit Rozbalit vše Re: USB disk
Nejlepší je korektně podporovat obojí. PDAčka, foťáky a další embedded zařízení taky žádné partitiony nedělají.
5.4.2005 22:00 Michal Kubeček
Rozbalit Rozbalit vše Re: USB disk
Jak které. Můj Olympus C-4000 tam partition dělá.
5.4.2005 11:53 neldor
Rozbalit Rozbalit vše Re: USB disk
Neni to chyba woken, ale spis vyrobcu USB flash disku, a to jeste jen nekterych (ale je jich pomerne dost, co jsem videl). Proste misto aby tam vytvorilo normalni tabulku oddilu, tak flaknou fs rovnou na /dev/sda. Kernel nebo fdisk tam pak samozrejme vidi bordel, protoze se snazi cist tabulku oddilu, nicmene disk jde normalne primountovat, akorat je potreba mountovat ne /dev/sda1, ale /dev/sda (a mozna taky dat natvrdo typ fs).
5.4.2005 14:21 JohnnyDoe | skóre: 11 | blog: _
Rozbalit Rozbalit vše Re: USB disk
Jj, mam 256MB Apacer Handy Steno HT203, a trvalo mi asi hodinu nez sem prisel na to, ze je treba rucne mountovat /dev/sda, a ne /dev/sda1, 2, 3 a 4 o coz se pokousel hotplug + automount. Navic ten automount mountoval ty 4 partition nejak najednou nebo co, proste bordel, a kdyz sem se k tomu pokusil pristupovat, tak to neslo a hazelo to po nejaky dobe do warn "Device timeout" nebo tak neco... Ale ted to mam ve fstabu natvrdo a jsem spokojenej no ;)
5.4.2005 22:04 Michal Kubeček
Rozbalit Rozbalit vše Re: USB disk
A proč je to podle vás vůbec chyba? Je snad někde psáno, že nesmíte používat blokové zařízení jako celek, ale musíte si ho rozdělit? Rozdělování disku má smysl, pokud ho skutečně rozdělujete. Jestliže tam tak jako tak máte jednu partition přes (skoro) celý disk, jen se tím zbytečně připravujete o místo…

Jestli je něco chybou, je to skutečnost, že se systém snaží interpretovat první sektor (resp. jeho část) jako tabulku rozdělení disku, aniž by se ho o to kdokoli prosil. Tak je to ostatně vnímáno i podle článku.

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