Portál AbcLinuxu, 6. května 2025 17:50

Jaderné noviny 233

9. 10. 2003 | Robert Krátký
Články - Jaderné noviny 233  

Zdokonalování detekce CPU. Aktualizace libata.

Zdokonalování detekce CPU, 49 e-mailů

Adrian Bunk oznámil:

Následující patch se snaží implementovat lepší výběr i386 CPU.

Když ve 2.4 zvolíte např. M486, znamená to, že dostanete kernel, který běží na 486 a výše.

Ve 2.6 znamená zvolení M486, že bude podporováno pouze 486.

Nápověda u volby X86_GENERIC říká, že to generuje základní kernel, ale implementace je taková, že podporuje CPU zvoleného M* a výše.

Potřebujeme dvě různé věci:

  1. instalační kernel v distribuci, který podporuje všechna CPU, která podporuje distribuce (počínaje řekněme 386)
  2. systémový administrátor může např. potřebovat kernel, který podporuje jak Pentium-III, tak Pentium 4, ale nepotřebuje podporu pro 386

Implementace ve 2.4 by téměř vyhovovala bodu 2 a kdyby bylo X86_GENERIC ve 2.6 implementováno tak, jak to tvrdí nápověda, vyhovovalo by to i bodu 1.

Následující patch proti 2.6.0-test4-mm5 zavádí novou implementaci, která vám umožní zvolit všechna CPU, které chcete podporovat, takže by měl vyhovovat oběma potřebám.

Změny:

Adrian dále položil několik konkrétních dotazů pár vývojářům ohledně věcí, kterými si nebyl jist.

K podpoře 386 poznamenal Jan-Benedict Glaw: Žádná z velkých distribucí nepodporuje i386. Vlastně se to tam dostalo v nějaké vadné záplatě libstdc++, které si dlouho nikdo nevšiml. Pro podporu i386 musí být zakompilován emulátor pro další i486. Chtěl jsem zkusit portovat debianní patch do 2.6, ale nepovedlo se :->. Budu-li ít trochu času, dokončím to. Než budete mít tenhle i486 emulátor pro i386, nemá samotná podpora i386 v kernelu smysl...

Ale Adrian řekl, že se to netýká přímo tématu jeho oznámení, totiž, že "instalační kernel by měl podporovat všechna CPU, která podporuje daná distribuce". Jan-Benedict napsal, že to chápe, pouze chtěl připojit okrajovou poznámku.

Robert Schwebel na původní zprávu odpověděl: Díval ses na to, jak rmk provádí výběr CPU v ARMu? Vyvinul sofistikované schéma, protože existuje mnoho úplně odlišných CPU implementací používajících několik jader. Mohlo by pomoci udělat schémata uniformnější než jsou teď.

Adrian řekl, že na makefily ARMu se nedíval, ale teď to udělá. A poděkoval Robertovi za radu. Robert se také zeptal, jak výběr CPU řeší lidi kolem PPC, a Tom Rini odpověděl: Neumožňujeme jednomu kernelu fungovat na něčem mimo 'rodinu', ani kernelům neumožňujeme (kromě MULTIPLATFORM), aby fungovaly na více než jednom druhu desky (možná to spravíme v 2.7). Můžeš si vybrat z 8xx (řada MPC8xx), 8260 (MPC826x/MPC827x, což by mělo být zařazeno do klasických) a 6xx/7xx/74xx (aka 'klasické' PPC, 40x a 44x).

Aktualizace libata, 16 e-mailů

Jeff Garzik oznámil:

Jen pár menších aktualizací. Tou hlavní je to, že softwarový ATA reset je nyní považován za spolehlivý, takže je nastaven jako výchozí. Metoda resetu sběrnice 'spuštění diagnostiky zařízení' byla ponechána a může být snadno povolena přepínačem.

libata se také přesunulo na (trošku) nové místo: ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/libata/

Poslední libata patche pro 2.4.x a 2.6.x byly nahrány na tuto adresu a budoucí patche se tam budou také objevovat.

Tento víkend přijdou další aktualizace, včetně oprav chyb od Dellu a RedHatu, a také lepší podpora MMIO. A možná speciální překvapení :).

J.A. Magallon se zeptal, jestli někde není nějaká dokumentace pro uživatele, aby mohl sepsat položky pro konfigurátor kernelu. Jeff odpověděl:

2.5 patch by měl mít Configure.help záznamy. Veškerá pomoc s psaním dokumentace bude i přesto velmi ceněná :). Doufám, že dám dohromady daleko více než suchou referenci k API v Documentation/Docbook/libata.tmpl, takže všechny dodatečné informace by tam pravděpodobně měly být zaznamenány.

Žádná dokumentace pro uživatele, ale nestyď se ptát mě. Tady je krátký přehled:

ata_piix, ata_via -- nízkoúrovňové moduly ovladače libata -- modul se sdíleným kódem pro zmíněné

kt20031004_233.xml

modprobe ata_piix nebo ata_via způsobí, že se SATA zařízení objeví na nové SCSI sběrnici. Každý SATA port je reprezentován samostatnou SCSI sběrnicí.

V současné době se ve 2.4 a 2.6 jak ATA, tak ATAPI zařízení ukazují jako SCSI zařízení. Ale v 2.7 ATA zařízení (tj. harddisky) nepůjdou přes SCSI vrstvu. ATAPI zařízení budou i v 2.7 používat něco z kódu SCSI vrstvy.

Dobře otestováno je zatím pouze Intel ICH5 SATA. VIA SATA bylo právě přidáno a pro Intel PATA podpora existuje, ale doporučujeme používat drivers/ide.

Současné -ac a -pac kernely dávají #if-0 k ICH5 SATA pci id z drivers/ide/pci/piix.c a preferují, aby se o to staralo libata. To není jen kvůli testování libata, ale také proto, že: drivers/ide zamrzne na mnoha ICH5 SATA hostitelích, když jsou v "nativním režimu"[1].

[1] nativním režim znamená, že PCI IDE zařízení je nakonfigurováno tak, aby získávalo všechny zdroje z PCI IO prostoru a používalo PCI přerušení. Druhou stranou mince je starý režim, který používá staré IDE porty 0x1f0/0x170 a staré ISA IRQ 14/15.

Hugo Mills se zeptal: Plánuješ v libata podporu pro SiI3112? Současné SiI3112 ovladače v kernelu na mém hardwaru nechtějí fungovat :(.

Jeff odpověděl: Ano! Nemělo by trvat dlouho přidat také podporu pro Silicon Image SATA. Je to jen o tom najít si čas to udělat ;-). Doufám, že ho budu mít v příštím nebo přespříštím týdnu...

Tento článek vychází ze seriálu Kernel Traffic (http://kt.zork.net) a je zveřejněn pod licencí GPL verze 2.

Související články

Jaderné noviny 232
Jaderné noviny 231
Jaderné noviny 230

Odkazy a zdroje

Kernel Traffic 233

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

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

Diskuse k tomuto článku

13.10.2003 03:14 petra
Rozbalit Rozbalit vše sis nejede
Odpovědět | Sbalit | Link | Blokovat | Admin
mam jeden dotaz: jadra verze 2.4.21 a 2.4.22 mi nenabootujou (2.4.20 slape). moje relevantni cast lspci:
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 5596 Pentium Chipset
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 (rev 01)
00:01.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 09)

mam za to, ze se v 2.4.21 objevila jakasi 'nativni podpora' neceho kolem sis :-)
nemam to treba hlasit jako bug?
(problem je, ze ty hlasky z toho ukonceni behu bych musela tezce opisovat z obrazovky) :-)
13.10.2003 12:51 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: sis nejede
Zdravim,

Je to deterministicka chyba? Jakoze pokud vezmes konfigurak, ktery jel v 2.4.20, patchnes jadro, provedes make clean;make dep;make ... tak to nejede? Neni to jen zbytek neceho z minuleho prekladu? Obecne se doporucuje make mrproper po patchnuti jadra, to zrusi vse (ale i vcetne .config)

Jinak: jak v 2.4.21 tak 2.4.22 byly provedeny zmeny prave pro SiS 5513, viz. Changelogy. Pokud je to skutecne chyba, tak by bylo fakt nejlepsi ty retezce opisovat :-) Nebo pouzit digitalniho fotaku... Muzes sem poslat co to presne pise? Jinak upravy (vetsinou updaty...) provadel Alan Cox, tak je tez moznost reportnout mu to soukrome.

Good Luck,
-djz

"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
14.10.2003 22:52 petra
Rozbalit Rozbalit vše Re: sis nejede
myslim, ze deterministicka ta chyba je :-)
- jadro bylo primo z kernel.org - zadny patche, standardni postup kompilace.
configu jsem zkousela vic - config pro bare.i ze slackware 9.0 pro nove 2.4.21 (viz ChangeLog.txt) a potom config pro bare.i ze slack 9.1 pro 2.4.22 - ciste a potom i ruzne prenastavovane ...
kompilace:

make clean
make dep
make bzImage
make modules
make modules_install
atd. - instalace ...

vysledek vzdy stejny.
je treba mozne, ze se az u tech nativnich driveru projevila nejaka hw chyba?
casem sem dam ty vypisy (az se dostanu k tomu je opsat :-( - nemam digital :-)).
dekuju ;-)

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