Portál AbcLinuxu, 5. května 2025 09:23
takze souhlasis s tim, ze tu mame vsichni anonymne pomlouvat kazdy clanek/zpravicku?Kvalitní matroš, kde se to shání?
Zkuste hádat…
Date: Tue, 1 Apr 2014 10:41:04 -0400
Ano, tohle mě osobně neskutečně vytáčí. Naše konfigurační prostředí je tou naprosto nejhorší částí jádra a není to kvůli tomu, že by Kconfig byl složitý jazyk. Je to kvůli tomu, že odrazuje lidi od sestavování vlastního jádra a testování, jelikož je nesmírně složité odpovídat na naše otázky a vypadá to, že vyzýváme lidi k zapínání funkcí, které jsou zbytečné a jen dělají sestavování pomalejším a obtížnějším.Svatá pravda. I když mě na konfiguraci kernelu nejvíc vadí to, že je to debilní klikaču. Už delší dobu toužím po nástroji, který by dokázal konfigurovat jádro na základě pevně daných (statických) požadavků a nikoliv prolézáním nějakého idiotského menu. Pak by bylo možné tyto požadavky sestavovat například z různých software balíků, které dnes v lepším případě poskytují nástroj pro kontrolu zda je kernel připravený pro použití daného software.
make menuconfig
tak trochu mimo téma tohoto vlákna?
protoze nekde v a -> k -> l neni zapnuta volba KLM. Coz samozrejme nikde nezjistim, protoze to jaksi nikde neni napsany.Zvýrazním tu část předchozího příspěvku, kterou jste zjevně minul: ale taky tam jsou vypsane zavislosti.... Stačilo to zkusit.
Ehm ... ja bych rek, ze vedet, ze volba XYZ ma byt nekde v a-> b -> c ... je mi platny ja mrtvymu zimnik, kdyz tam ta polozka neni ... protoze nekde v a -> k -> l neni zapnuta volba KLM. Coz samozrejme nikde nezjistim, protoze to jaksi nikde neni napsany. Ano, muzu zacit zkoumat konfiguracni zdrojak, ja vim ... ... Osobne naprosto nechapu, proc nemuzou byt zobrazeny jednoduse volby vsechny ... a pokud zaskrtnu neco, co je na necem zavisly, tak ocekavam hlaseni, ze je treba taky povolit ... a dotaz, zda to pro me ma konfigurator udelat. A samo, jako bonus nejaky upozorneni pri ukladani, zda je nebo neni konfigurace z pohledu tehle zavislosti validni.No mně osobně vždy pomohlo projít soubory
Kconfig
a dohledat si to tam, i když je pravda, že možnost zobrazit skryté volby v omezeném měřítku (například jen ty platné pro danou platformu) by se občas hodila. Ale jinak mi stávající rozhraní pro konfiguraci jádra vyhovuje, i když je pravda, že je to nejspíš z toho důvodu, že to dělám dost často a už mi to ani nepřijde (pamatuju ještě doby, kdy nebyla podpora modulů a vlastní konfigurace jádra byla na PC nutnost).
Osobně považuju za mnohem horší stav, kdy jádro nejde přeložit, protože nějaký kód něco potřebuje, ale nemá to nastavené v KConfigu
, nicméně to je něco, s čím se u "normálních" verzí jádra (tj. vanilla a distribučních) naštěstí nesetkáte.
Akurat by tie aplikacie nestihali so zmenami kernelu, kde sa pravidelne premonavavaju tie volby.Zajímavé je, že teď mnohé stíhají poskytovat nástroje na kontrolu, zda je kernel správně nastavený. Netvrdím, že by se to obešlo bez problémů nebo že je to úplně jednoduché. To bych nad tím nepřemýšlel a prostě bych si to napsal a začal to tlačit alespoň v tom Gentoo jako součást balíků.
A po druhe, baliky ako iptables by si zadali poziadavky, napr. na podporu vsetkych protokolov a cielov a funkcii v netfilteri/firewalle v kerneli (ci ako sa to teraz vola). A pritom na konkretnom pocitaci moze admin potrebovat len malo mnozinu. Kernel moze byt zamerne nakonfigurovany len na urcite funkcie, aby aplikacie nedostali vsetko co potrebuju (ked im to admin nechce dat). Takze zase by sa tento system musel nejako dat obist.Nesouhlasím, že je dobrý nápad aby iptables bezpodmínečně záviselo na všech volbách. Nicméně píšeš o problémech, jejichž možná řešení jsem již nastínil.
Takze zase by sa tento system musel nejako dat obist.I na toto už jsem odpověděl, viz druhá věta třetího odstavce.
Jinak problém těch balíků je ale v tom, že ti stejně zbyde hromada voleb, na kterých žádný userspace balík nezávisí nebo je k dispozici víc variant.Popravdě řečeno nepatřím mezi ty, kteří chtějí nastavovat každou poslední volbu jádra. Od toho je rozumné výchozí nastavení, případně volba některého dobře postaveného profilu dle účelu stroje plus těch pár změn, co potřebuju udělat. Už jsem dokonce uvažoval, že kvůli debilitě konfigurace jádra budu používat jádro z nějaké binární distribuce, abych se celému tomu martyriu vyhnul. Osobně bych si kvůli různým experimentům zapnul pár voleb týkajících se sítí a zbytek ať se klidně řídí hardware, balíčky, profilem a výchozí konfigurací.
No já jsem na svým domácím počítači vždycky použil .config ze starýho jádra a rychle nastavil nové volby. Je to sice trochu prasárna, ale funguje.Ano, to dělám, a výsledky jsou nevalné a nepředvídatelné.
A i kdyby, tak konfigurace jádra od nuly jednou za rok není zas tak hrozná (projet všechny volby zabere tak jedno odpoledne).Možná jsi génius, ale já osobně nejsem schopný takto vyrobit deterministickou konfiguraci a typicky na první pokus ani plně funkční konfiguraci. Celý ten proces mě natolik zdržuje ještě dlouho po prvotní konfiguraci jádra, že se do nějaké důsledné optimalizace radši ani nepouštím. Věřím tomu, že to mnohé odradí i od celého procesu a vím o lidech, kteří na Gentoo používají distribuční jádro z jiné distribuce.
Nechtěl bych být ten, co bude spravovat databázi například nových USB donglůOny jsou v jádře off by default? A i kdyby, nedá se jejich databáze nějak více či méně deterministicky vyrobit ze zdrojáků jádra?
men to tak fachciNo já jsem na svým domácím počítači vždycky použil .config ze starýho jádra a rychle nastavil nové volby. Je to sice trochu prasárna, ale funguje.Ano, to dělám, a výsledky jsou nevalné a nepředvídatelné.
make oldconfig
no usb mass-storage snad zadnou databazi nepotrebuje jak konkurencni widle jestli myslis usb.ids, to bylo v usbutils a ted je to v hwidsNechtěl bych být ten, co bude spravovat databázi například nových USB donglůOny jsou v jádře off by default? A i kdyby, nedá se jejich databáze nějak více či méně deterministicky vyrobit ze zdrojáků jádra?
Celý ten proces mě natolik zdržuje ještě dlouho po prvotní konfiguraci jádra, že se do nějaké důsledné optimalizace radši ani nepouštím.Tak to já mám taky tunu bordelu, ale některý defaultní věci mě vyloženě štvou (obvykle "M" vs. "Y" nebo tuna nepotřebných driverů zařízení).
Věřím tomu, že to mnohé odradí i od celého procesu a vím o lidech, kteří na Gentoo používají distribuční jádro z jiné distribuce.Na Gentoo? Tak to mě docela překvapilo :-O
Ony jsou v jádře off by default?No právě když už ruční kompilace, tak všechno, co nemám doma vypnout nebo připravit na kompilaci jako modul.
Na Gentoo? Tak to mě docela překvapilo :-OJe z části i tím, že na konfiguraci jádra neexistuje žádná rozumná automatizace, teda pokud nepočítáš genkernel s mrproper a bez ruční konfigurace, ale ani to zřejmě nedává výsledky srovnatelné s distribučními jádry. Jinak nevidím jediný důvod, proč štelovat jádro do posledního detailu, pokud se to dělá takhle blbě a přitom mi to vůbec nic nepřinese.. Tam bych naopak čekal lidi, co to budou štelovat i třeba za cenu úpravy zdrojáků
.
No právě když už ruční kompilace, tak všechno, co nemám doma vypnout nebo připravit na kompilaci jako modul.Ony jsou nějaké USB srágorky ve výchozí konfiguraci zakompilované?
Ony jsou nějaké USB srágorky ve výchozí konfiguraci zakompilované?Ano, v i386_defconfig mám dost zbytečných věcí defaultně zaplých. Jsou tam i usb zařízení, ale přímo DVB-T tam nejsou, protože celý drivers/media je defaultně vyplý. Pokud se zapne, tak se například kompilují všechny tunery a frontendy.
Problém je, že se nelze dohodnout, co je důležité a co ne.V kontextu toho, co jsem psal výše to problém právě není. Výsledkem konfigurace jádra by totiž byla kombinace výchozího nastavení, změn specifických pro hardware a uživatelsky definovaných změn. Pokaždé když dokážeš vyjmenovat dvě nebo tři věci, které bys potřeboval mít zakompilované, lze je bez problémů zapsat do těch uživatelsky definovaných změn, pokud už nejsou součástí hardware profilu.
Aha já ty věci totiž vyjmenovat nedokážu, prostě když konfiguruju jádro, tak si čtu a říkám si: "to by se mi hodilo, tohle a možná tohle...", tedy pro uspokojivou konfiguraci stejně musím prolízt celý jádro. Funguje to tedy jako hledání novinek . Ale asi by to šlo udělat nějakým obecným diffem pro všechny verze a pak vytříděním novinek. Takže moje představa, co by mohl/měl ten systém splňovat (warning subjektivní, nepřesné a napřeskáčku
):
No nic tak jsem se trochu rozepsal . Pokud by to chtěl někdo zkusit, tak hodně štěstí, ja na to nemám čas. Ale rád mu pošlu všechny budoucí .configy
(tedy pokud mi to bude fungovat na slacku přes ssh konzoli třeba).
Aha já ty věci totiž vyjmenovat nedokážu, prostě když konfiguruju jádro, tak si čtu a říkám si: "to by se mi hodilo, tohle a možná tohle...", tedy pro uspokojivou konfiguraci stejně musím prolízt celý jádro. Funguje to tedy jako hledání novinekTaky jsem si vyzkoušel LFS a ještě to neznamená, že ho považuju za ideální způsob přípravy linuxové instalace. Tohle mi přijde daleko horší než LFS..
Kompatibilita se starým způsobem konfigurace (moc kritická vlastnost, aby byla zahozena)Triviální, stačí dále používat
.config
a z pohledu ostatních nástrojů se nic nemění.
Minimální závislosti na dalším softwaru než kernel, ideálně přímo přes skripty kernelu (tedy limitně nulová závislost na pythonu, perlu, Xek apod.)Osobně považuju za nepodstatné. Všechny konfigurace jádra dělám z plně funkčního systému.
Databáze voleb všech starých verzí a jejich změna na nové (pamatuju si, jak se dělaly velké přesuny USB driverů)Nevidím jako potřebné. Není problém udělat třeba hardware konfiguraci variantní pro více různých verzí, stačí uvádět všechny alternativy.
Detekce hardware (stačí lshw?, lsusb tuším nefunguje vždy - vyžaduje nějakou usb debug vrstvu)Nepovažuju za nutné. Může být řešeno samostatným software s exportem do daného formátu.
Chci povolit celý USB subsystém enablováním jednoho USB driveru (má se po opětném disablování celý subsystém vypnout? co když to tak chtít nebudu)V systému, který jsem popisoval žádné opětovné disablování neexistuje. Existují jen pravidla ze kterých se vytvoří celá konfigurace.
Chci vidět na čem závisí tenhle driver (to umí i nconfig i když dost blbě)Nesmysl. Systém, který jsem popisoval není ani prohlížeč závislostí ani interaktivní editor konfigurace. Ty už existují.
Hlášení všech kolizí a nekompatibilitTo by měla být samozřejmost, ale to zvládne samostatný nástroj. Není už takový k dispozici?
Databáze známých problémů, jinak pomocí globálního nastavení OS nenabootuje a možná bude nutno ručně prolézat volbyNa to by měl teoreticky stačit samostatný nástroj, ale integrace je možná.
Nějak vyřešit podporu 10+ starých MB (třeba moje k7s5a měla (nejen) apic=off problémy a poprvé jsem to nevěděl a musel jsem rekompilovat).Jasně. A jako vedlejší efekt vyřešit všechny problémy světa. Tady opravdu doufám, že si děláš prdel.
Databáze uživatelského nastavení pro věci, co nelze detekovat, odhadnout (?), nejsou v online databázTaké okrajové sračky má smysl řešit teprve kdyby byl nějaký nástroj k dispozici.
Co offline konfigurace?Konfigurace pokud vím už offline probíhá.
No nic tak jsem se trochu rozepsalPředevším mám podle některých poznámek obavu, že jsi popisoval něco zcela jiného než co jsem popisoval. Nesliboval jsem že budu něco takového zkoušet, ale pokud ano, tvým představám to zcela jistě odpovídat nebude..
Tak ideální způsob instalace linuxu je obvykle použití distribučního jádra.To pro mě v Gentoo bohužel neplatí, ledaže bys měl namysli distribuční jádro z jiné distribuce. Ale i tak se ti může stát, že nepovolili nějakou pro tebe důležitou volbu a právě proto jsem se vůbec začal zabývat možností zlaté střední cesty mezi použitím hotového jádra a sraním se s každou jednotlivou volbou, kdy bych si nastavil (a udržoval!) jenom ty volby, které chci skutečně změnit.
Ty navrhuješ, že přidáš něco jako use flagy a seznam závislostí do balíčkovacího systému a to tak, že to bude řídit konfiguraci kernelu a bude to statické.Právě. Díváme se na problémy i možná řešení úplně jinak. Navíc si stále nejsem jistý, zda jsi mému návrhu porozuměl, když máš pořád potřebu kritizovat neúplnost toho řešení. Vzhledem k tomu, že poslední (a tím v podstatě hlavní) instancí konfigurace by byl uživatelský konfigurační soubor, považuju řešení za úplné. Účelem nebylo mít nástroj, který udělá konfiguraci za tebe, ale který ti s konfigurací maximálně pomůže a především je jeho činnost opakovatelná, což se o procházení menuconfigu říct nedá. Můžeš se na to dívat i jinak. Do začátku by mi bohatě stačil třeba pythoní modul na konfiguraci jádra, který by uměl akce typu zapni modul i se závislostmi a já bych si za použití browseru voleb jádra a dokumentace k různým programům a software posbíral hrubý seznam toho, co chci povolit a průběžně ho doplňoval. Volání ve skriptu bych si rozdělil podle toho, zda jsou pro konkrétní hardware, software nebo vlastní volba, která do ničeho nezapadá. Ale nejspíš by mě štvalo to takhle pořád upravovat, takže bych si samotné volby brzo vytáhnul do samostatných souborů v nějaké deklarativní syntaxi. V případě úspěchu u dalších uživatelů by pak šlo části odpovídající konkrétnímu hardware a software zveřejňovat na Gentoo Wiki, případně by se mohly začlenit některé soubory do balíčků a automaticky by se nad nimi spouštěla kontrola, zda jsou splněné, popřípadě by mohl genkernel umět příští konfiguraci jádra upravit tak, aby je splnil. Hledat v tom cokoliv složitějšího je podle mě omyl.
což se o procházení menuconfigu říct nedáOn ještě někdo používá menuconfig a ne nconfig? :-O
by uměl akce typu zapni modul i se závislostmi a já bych si za použití browseru voleb jádra a dokumentace k různým programům a software posbíral hrubý seznam toho, co chci povolit a průběžně ho doplňoval.Ovšem je otázka, zda by se v tom uživatel neztratil. Ty závislosti nejsou jednoznačně definované (=depends on ...). Sice si zapneš usb dvb-t dongle, kterej ti zakompiluje usb a v4l subsystém, ale i tak to nebude fungovat, protože nebudeš mít vybranej usb řadič. To může u něčeho jako "pci řadič → usb řadič → i2c řadič → i2c čip" nastat skoro na všech úrovních.
readv()/writew()
writev()
Jan Kara
Kára
Na filesystemu prd zalezi, a na tom, jestli je nebo neni soubor ulozen sekvencne taky.Jasně, protože soubor rozházený po celém disku se čte/zapisuje úplně stejně, jako když leží na jednom místě.
Jinak pritomnost mnoha paralelnich ctecu/zapisovaci nad disky ... se resi uz leta ... dostatecnycm mnoztvim RAM. Mam tu trebas cca 200GB databazi ... na stroji se 128GB RAM.OK, a když nemám dat 200 GB, ale několik TB? Takové úložiště vyjde dneska na pár korun, ale stroj s víc než 32 GB RAM už ne.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.