Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - František Ryšánek

Stran: 1 ... 63 64 [65] 66 67 ... 84
961
Bazar / Re:Poptávka po malé desce s integrovaným CPU
« kdy: 12. 12. 2018, 22:57:28 »
Atom D525 je dost vykopávka, 45nm a in-order jádra. Oproti dnešním 22nm-14nm ATOMům s out-of-order jádry je to vykopávka žravá a pomalá. Ale taky dost kompatibilní, včetně tradiční intelovy in-house grafiky (model co ještě podporuje Windows XP).

Tzn. máte nějaký důvod, držet se staršího hardwaru?

962
Hardware / Re:Externí disk nefunguje
« kdy: 11. 12. 2018, 09:42:35 »
Jestli se v tom divném hardwaru chcete ještě trochu povrtat, tak by mě případně zajímalo:
lsusb -vt
lsusb -vv
cat /proc/interrupts (nejlíp v průběhu kopírování 2x za sebou po nějaké době, třeba 10 s)

A spustit v terminálu "top" a třeba v něm ještě stisknout "1" aby ukázal jednotlivá CPU jádra (pokud to v distru není default) a velké "H" aby ukázal jednotlivá vlákna. Koukat na to v průběhu toho přehrávání. Bylo by zábavné, pokud by tu zátěž vykazoval třeba ksoftirqd, nebo naopak přehrávač videa.

Ten disk na sebe zatím nevykecal, co je uvnitř. => dále by bylo zajímavé, pokud to lze bez ztráty záruky, pouzdro lousknout a podívat se, co je uvnitř. Jestli je tam ještě rozebiratelný SATA konektor, nebo už je USB zapečené přímo na plošáku elektroniky disku (jak psal MasoxCZ). Náklonnost k SATA diskům značky Seagate totiž s původním tazatelem sdílím - a pokud by šlo osvobodit sata disk z neblahého originálního USB rámečku, tak je to taky cesta kupředu.

Osobní zkušenost: relativně levné "pseudoznačkové" USB/SATA bridge a šuplíky z Alzáče, CZC, Krupu apod. poslední dobou obvykle fungují zcela bez zaváhání (i v Linuxu). Zároveň souhlasím, že je zdravé, mít se na pozoru před superlevnými USB cetkami, které se prodávají jenom proto, že poštovné zpátky do reklamace je dražší, než nový kus.

Ohledně "uzavřených a designově vadných" výrobků slavných značek... ať si každý sám svobodně zvolí, zda chce podporovat kurvítkáře v jejich obchodní strategii. Nemohu popřít, že jakákoli svobodná skládačka v dnešní době představuje "známku punku" - takže pokud ta skládačka bude trochu estetická, tak jedině palec nahoru. Ostatně záleží na Vás, jak moc chcete vyčnívat :-)

963
Nikoho z místních štammgastů nepřekvapí, pokud tady utrousím, že podle mého 27" je na full HD 1920x1080 přesně ta správná úhlopříčka.
Vlasů mi ubývá a moje oči už nejsou co bejvaly.
Pokud máte nějaké oblíbené starší aplikace, které neumí škálovat GUI (ikonky, popisky v menu) tak se nestyďte používat hrubší rastr. U nás v práci se tenhle formát v posledních cca 2 letech dost rozmohl.

A souhlasím, že je velmi dobrý nápad, pokud máte možnost, tak si přímo Váš kýžený displej někde prohlédnout. Ony totiž různé displeje mají různé rozložení barevných segmentů (tzv. subpixelů) v rámci každého obrazového bodu, a některé v hrubém rozlišení tahají za oči víc než jiné. (Například TV displeje zrovna na tenhle aspekt optimalizovány nejsou.)

964
Hardware / Re:Externí disk nefunguje
« kdy: 10. 12. 2018, 08:57:31 »
Taktak... držet se otevřených rozhraní - včetně rozhraní SATA mezi diskem a šuplíkem, a včetně USB Mass Storage (nejlépe s podporou UAS, SAT nebo s nějakým proprietárním transportem ATA over USB s podporou v Linuxu).

On to není jenom Seagate, kdo dělá externí USB disky naschvál divné - Western Digital je totéž v bledě modrém. Smažete z disku původní obsah a je z něj cihla, apod. A šetřej na doraz na čipsetu USB Mass Storage řadiče.

Externích šuplíků nebo konvertorů USB/SATA je spousta, a když máte trochu přehled o "solidních neznačkách" na našem trhu, tak většinou při výběru chybu neuděláte. Recenze na velkých e-shopech bývají docela dobré vodítko i u méně známých "paznaček". Ono to vede taky k tomu, nekupovat horké novinky, což není špatný přístup v obecné rovině, a není to špatný přístup s ohledem na Linux. A nebudu se rozepisovat o sexy štíhlém pouzdře vs. chlazení.

Hehe BTW.

965
Hardware / Re:Write once, read many storage
« kdy: 07. 12. 2018, 11:44:36 »
Ke všem správným poznámkám předřečníků si troufnu pípnout, že je poměrně blbost řešit toto v blokovém zařízení, na kterém byste chtěl provozovat nějaký standardní filesystém (který by nevěděl o to, že to zařízení je WORM) protože normální FS potřebuje občas nějaké bloky i přepsat. Navíc granularita zápisu by byla 1 blok (512B nebo tak něco kolem).

=> podle mého hledáte když už, tak zařízení "sekvenční", appendovatelné nejlépe po bajtech. Tzn. něco řádkovou tiskárnu s nekonečným traktorovým papírem, ale v elektronické podobě. Sériová linka se zapojeným pouze TX (Jenda) je ten správný princip.

Celé to ale správně zazdil pan Jirsák požadavkem na blockchain a časová razítka...

Uff ještě že mě toto neživí.

966
Hardware / Re:Write once, read many storage
« kdy: 06. 12. 2018, 21:19:01 »
Myslím že P a Uuuu oba trefili hřebík na hlavičku.

Jinak samozřejmě existují i proprietární řešení:
https://www.innodisk.com/en/technology/Security/write-protect

967
Support není špatnej způsob, jak se dostat někam do trochu profi IT prostředí - a dál se uvidí.
Samotná ta práce prezentuje spoustu témat a motivací k dalšímu sebevzdělávání.
Bohužel k dalšímu odbornému postupu = specializaci může být žádoucí, přestat být ochotná děvečka pro všecko :-(

968
Původnímu tazateli: ta deska má klasický MiniDIN 6-kolík PS/2 konektor. Takže si sežeňte klávesnici a myš s PS/2 konektorem a nejlíp ještě rozbočku (Y-cable) která sloučí 2x Mini-DIN do 1x Mini-DIN. On sice v návodu není pinout, ze kterého by plynulo, že má deska v Mini-DINu skutečně zapojeny všechny piny pro PS/2 i myš, ale dodnes je slušná šance, že ano (výjimky jsou naštěstí vzácné). Na pinech KBCLK+KBDATA umí deska autodetekovat i přímo připojenou myš (bez rozbočky), ale v tom případě nemáte klávesnici.  Každopádně na PS2 nefunguje hot-plug, musíte mít na PS2 všechno definitivně připojené před zapnutím počítače (tuším +5VSB může být v okamžiku připojení PS/2 věcí už přivedeno, ale neuděláte chybu, pokud bude počítač v tu chvíli vytažený ze zdi, on se dá počítač PS/2 klávesnicí taky probouzet apod.)

Jo a na pasivní redukce USB->PS2 bych u dnešních klávesnic a myší už moc nespoléhal, šváb v klávesnici/myši musel umět oba režimy (USB i PS2) a po přivedení napájení poznat, čím se motherboard snaží bavit.

Neznám čipsety AMD ani BIOSy co dává AsRock. Intel někdy od Broadwellu už vůbec nemá v čipsetu EHCI řadič (typický pro USB 2.0, s class-based podporou ve Win7 od přírody), jenom XHCI (typický pro USB 3.0). Odhadem to Intel provedl jako jedno dílčí opatření směrem k řízené záhubě Win7. Pokud AMD tento trend okopírovalo, tak si možná nepomůžete, pokud v BIOSu zakážete XHCI řadič (což je v návodu zmíněno). Pozor, nehraje roli, že máte zvenčí dostupné elektrické porty schopné provozu USB 2.0 (což jsou obvykle i všechny "modré" konektory, protože USB 2.0 tam má své tradiční nezávislé signálové linky). USB 2.0 zařízení lze připojit i na XHCI, buď skrz přídavný hub čip na motherboardu, nebo i přímo na čipset (hub je integrovaný) - prostě jenom vůči hostiteskému CPU už není ve stromě PCI zařízení vidět EHCI, všechno se to obsluhuje skrz XHCI.

No a jakmile Windowsy jednou nainstalujete, tak máte vyhráno. I pokud byste to provedl blafákem s přepnutím USB řadiče do EHCI režimu (pokud to čipset umožňuje), tzn. nemáte PS/2 KB/MS, tak už drivery pro XHCI doinstalujete v nouzi přes vzdálenou plochu.

Mimochodem, nejsem AMDčkař, driver pro grafiku do Win7 máte?

969
Software / Re:Vysvětlení pojmu InitramFS
« kdy: 24. 11. 2018, 00:12:57 »
Ravise a RDa už se toho ujali, takže teď budu trochu nosit dříví do lesa...

a nasledne spusti /sbin/init, ktory pusta init scripty?

/sbin/init býval původně kdysi dávno jenom jeden - ten co se spouštěl z přímo mountnutého definitivního kořenového svazku. A máte pravdu, že spuštění initu (procesu s PID=1) skutečně následuje vzápětí po mountnutí rootu.

/sbin/init je především spustitelný program. Díky kernelové autodetekci, o jaký typ spustitelného programu se jedná, nemusí jít nutně o ELFový binár, může to být stejně tak nějaký skript, třeba shellový. Pokud se jedná o skript, správný interpreter se natáhne podle konvence #!/cesta/k/interpreteru na prvním řádku skriptu. Ten "hash a vykřičník" jsou skutečně vypečená finta, a právě na ně se jádro chytá. Pokud se nepletu, tak initial ramdisky takový skript pojmenovaný /sbin/init dříve obsahovaly. Jinak když si zkusíte poskládat bootovatelné "distro" skutečně od nuly, tak první školní příklad je ten, že na budoucí kořenový svazek nakopírujete všechny potřebné knihovny, především libc, a minimální sadu systémových prográmků, především shell, a jméno /sbin/init dáte symlinku na /bin/sh nebo tak něco. (Jasně - nebo na Váš skript.)

V situaci, kdy se mountne na / napřed dočasný initramfs, a až pak finální root, je samozřejmě otázkou, jestli bude /sbin/init jeden, nebo dva... V jednom odkazu co jsem vložil do té předchozí tapety je bootování skrz initrd popsáno včetně toho, že k remountu na finální kořenový svazek se používá syscall pivot_root()... čili někde kolem se zřejmě taky přepřáhne dočasný "init z initial ramdisku" na finální init. Pokud to máte takto zařízeno standardním způsobem. Alternativně by asi šlo, aby ten lehký init nebo init skript, co nastartoval z initrd, spustil "finální velký init" nějak explicitně. Vlastně by na to stačil jediný exec() a finální init by převzal i charakteristický PID=1. Nebo by ten velký init mohl nakonec startovat už přímo z initial RAMdiku? Teoreticky ano, ale tušímže to žádná mainstreamová distribuce takto nedělá... Chcete-li vědět, jak je to doopravdy, klidně se ponořte do zdrojáků své distribuce :-)

Koukám tady v Debianu 9 na /sbin/init jednak na finálním rootu (diskový oddíl),
jednak v initial RAMdisku. V obou "svazcích" skutečně takový soubor existuje.
Na disku se jedná o symlink na systemd, uvnitř initrd se jedná zřejmě o hardlink
(jeden z mnoha) na multifukční ELFový binár busyboxu. Takže nejen Gentoo má v initrd zapečený poloplnohodnotný busybox ;-)

Jo a pokud jde o to, co "init" vlastně dělá: ten skript nebo minimální "přípravátor" v initial RAMdisku skutečně hlavně provede pár skriptů (nějaké ty přípravné práce). Pokud jde o "finální velký init", tak tradiční sysv init volal napřed rc.sysinit, pak snad rc.local, a pak všechny startovací skripty různých služeb/démonů, kteří v systému běží. Systemd má konfiguraci trochu jinou a taky o jeho celkové koncepci by se dalo dlouze debatovat, ale v podstatě se opět jedná především o "service manager".

Len bohuzial, stale nerozumiem pojmu 'predom priraveny obraz zavadzacieho systemu na disk'. Stale som nejako v tom, ze ovladace, moduli su priamo v jadre... Preto odpadava nutnosti instalovat ovladace oproti win... A aj ked nahravam nejake moduli do jadra, napr. conntrack modul, nenahravam ho do initramfs...

Smíchal jste několik rovin :-)

Linux má skutečně pro spoustu hardwaru "ovladače" v tom smyslu, že jsou přítomny v upstream vanilkovém stromě zdrojových kódů (textů, programů v jazyce C) a Linus a jeho pobočníci tyto ovladače dlouhodobě oprašují/udržují kompatibilní s "kernel core" tzn. se základem jádra.

Prvním krokem při kompilaci jádra ze zdrojáků je to, že vlezete např. do "make menuconfig", kde u jednotlivých ovladačů zvolíte, zda se mají přilinkovat k hlavnímu bináru jádra (tzv. "monoliticky") nebo zda se mají slinkovat do podoby externích souborů s příponou .ko, těm se říká "jaderné moduly". Je to obdoba dynamických knihoven v user space. Třetí možnost v menuconfigu je, ovladač z buildu zcela vynechat.

Bývaly kdysi dávno doby, kdy hotové binární jádro (výsledek kompilace) tvořil jediný monolit. Ovladače ke kompilaci se daly jenom povolit/zakázat. Pokud povolit, tak to automaticky znamenalo přilinkování do zmíněného monolitu. V zájmu modularity binárních distribucí (bez potřeby kompilovat jádro pro každý stroj zvlášť) byly poměrně záhy zavedeny "moduly": malé úlomky, které se k monolitu daly za jízdy podle potřeby připojovat (a odpojovat).

Základní binární "monolit" jádra je na disku uložen v /boot/vmlinuz-blablabla-verze. Odtud ho při startu sosá bootloader. Moduly .ko na disku spinkají uložené v /lib/modules/verze/... . Do obrazu initial RAMdisku se nakopírují pouze moduly, které jsou před mountnutím finálního rootu potřeba - což nejsou zdaleka všechny. V dnešních univerzálních desktopových distribucích bývá "distribuční" kernel zkompilovaný prakticky se všemi dostupnými ovladači v modulární podobě (.ko) takže příslušný podadresář v /lib/modules/verze je pěkně košatý a nafouklý. Natáhnout modul z disku do jádra (tzn. vlastně ho "spustit") je možno rukama z příkazového řádku příkazem insmod nebo modprobe. Modprobe je schopen automaticky dotahat všechny moduly, na kterých požadovaný modul závisí (systém má k dispozici mapu vzájemných závislostí). Dalšími příkazy z téhle rodiny jsou lsmod a rmmod.

Pod linuxem soubor .ko je něco jako pod Windows soubor .sys. V obou případech se jedná o kus binárního kódu, který lze zavést do běžícího kernelu, a modul/ovladač se definovaným způsobem uvnitř kernelu přihlásí / zapojí do práce. Že se pod Windows soubory .SYS distribuují pohromadě s popisným souborem .INF a podpisem .CAT, a na rozdíl od Linuxu nejsou příliš jemně verzované, to je v zásadě malá nuance, která souvisí s modelem vývoje softwaru (každý operační systém ho má postavený trochu jinak, zcela jistě Linux vs. Windows).

Co je to ovladač: je to malé bago spustitelného kódu, s nějakou standardizovanou "hlavičkou" / datovou strukturou s předepsanými údaji a odkazy na výkonné funkce modulu. Je to vlastně kolekce volatelných funkcí. Některé ty funkce jsou "zveřejněné", tvoří rozhraní modulu vůči zbytku jádra - jiné jsou "privátní", modul je používá pouze interně. Pokud někdy uslyšíte o "tabulce symbolů", tak se jedná o jména funkcí a proměnných uvnitř modulu (především těch veřejných). Velikou tabulku symbolů obsahuje také hlavní monolit jádra. Vzájemné vypořádání symbolů poskytovaných a požadovaných mezi monolitem a moduly navzájem je náplní práce kernelového dynamického linkeru... (Velmi podobně to funguje u user space programů a dynamických knihoven. Ovšem zatímco user-space program při nevyřešených zavislostech zhavaruje, kernelový linker jenom odmítne natáhnout modul, pro který nemohl vyřešit všechny závislosti.)

Na úrovni zdrojových kódů je "ovladač" opět kolekce funkcí - ve zdrojákách. K vytvoření jednoho binárního kernelového modulu může být potřeba jeden nebo více zdrojáků = textových souborů s příponou .c. Předpis pro sestavení modulu z jednoho či více zdrojáků je obsažen v tzv. Makefile. Přesněji zrovna v kernelu se jedná o celý rozsáhlý strom dílčích souborů Makefile a Kconfig (oba jsou to textové soubory) - granularitu skladby (linkování modulů) lze detailně ovlivnit konfigurací kernelu.
Obvykle je granularita kernelových modulů volená tak, že jeden modul = jeden ovladač, pro specifický hardware. Ale klidně může jeden modul obsahovat ovladačů několik. Kromě toho ne všechny moduly obsahují drivery pro hardware, často modul opouzdřuje nějakou čistě softwarovou fičuru v systému. Třeba nějaké dílčí "porovnávací pravidlo" pro netfilter.
Přesto pojmy "modul" a "ovladač" v obecné mluvě často dost splývají.

Ovladače od třetích stran mají v Linuxu těžký život, hlavně kvůli jemnému verzování kernelů. To souvisí s průběžným inkrementárním vývojem a releasováním linuxového kernelu jakožto softwaru. Pod Windows obvykle stačí, aby byl driver kompatibilní s poměrně hrubým základním číslem verze kernelu (cca na úrovni verzí Windows). Pod Windows dokonce existují mechanismy (styl programování), jak zařídit, že může být binárka ovladače kompatibilní s více verzemi Windows.
Zato pod Linuxem je prakticky vynuceno, že zavést do jádra lze pouze modul zkompilovaný proti téže třímístné verzi kernelu (resp. včetně "patchlevel ocásku verze", který si můžete sami definovat při kompilaci), ba dokonce lze zapnout verzování až na úrovni "sériového čísla buildu". Dnešní distribuce toto mají běžně v distibučním kernelu zapnuto, já to ve svých custom kernelech vypínám, abych při ladění modulů nemusel po rekompilaci hlavního kernelu rekompilovat bez pardonu taky všechny externí (out of tree) ovladače.

Ovladač, od kterého máte k dispozici kompletní zdrojáky, můžete poměrně snadno přikopírovat a zaháčkovat do vanilkového stromu, který jste si stáhl na lokální disk - a zkompilovat "in tree". Existuje ale také oficiálně podporovaný postup, jak svůj custom ovladač zkompilovat "out of tree", pouze s odkazem na hlavní strom někde jinde na disku (a jeho verzování). Rozdíl je nakonec vlastně jenom v cestě k adresáři, kde se zdrojáky "vašeho" modulu nacházejí. Čili toto platí pro "ovladače třetích stran", pokud jsou k dispozici kompletní zdrojáky.

Jiná je situace u ovladačů třetích stran, které obsahují "binární blob". Překlad mnoha tradičních programovacích jazyků do binárního executable kódu se děje ve dvou krocích: kompilace a linkování. První krok vyrobí z jednotlivého zdrojového souboru (např. .c) "polotovar" zvaný "objektový soubor" (.o nebo třeba .obj). Ve druhém kroku se několik objektových souborů slinkuje do potřebného finálního formátu: to může být user-space executable binárka, nebo statická či dynamická knihovna, nebo třeba kernelový modul. Výrobci hardwaru mají i pod Linuxem sklon, nedávat volně k dispozici zdrojové kódy ovladačů. Nechtějí podporovat konkurenci apod. Takže dodávají nějakou interní knihovnu ovladače v podobě "objektového polotovaru". A to je právě ten ohavný binární blob. On obsahuje tabulku symbolů, takže jeho funkce lze volat - ale zároveň je to černá skříňka, do jejíž vnitřní logiky nikdo nevidí. A může se stát, že ten blob byl zkompilovaný proti starší verzi kernelu (jde o deklarace structů a prototypy funkcí, ale taky o věci hlouběji pod kapotou), takže když ho jenom obalíte do open-source "košilky" a tu zkompilujete proti kýženému novějšímu kernelu, tak to vypadá navenek OK, ale ten blob může za provozu způsobovat chyby. Což je vedle ideologického imperativu dost dobrý praktický důvod, proč se binárním blobům v ovladačích bránit. A že se Linux (Linus) brání zuby nehty.

Končím - chtěl jsem něco vysvětlit a spíš do toho jenom dál a dál zabředávám...

970
Sítě / Re:LTE pásma 1,8 GHz vs. 3,7 GHz
« kdy: 23. 11. 2018, 21:13:13 »
Mu-mimo 8x8 umí technologie od Cambium Networks i v 5ghz včetně TDD a funkcni GPS synchronizace...

Err... Cambium Networks - v pásmu 5 GHz jistě, ale tipnu si, že se jedná spíš o "wifi-newifi" s media-access mechanismem TDMA, nikoli o "LTE TDD" (terminus technicus).


Omyl Cambium nepoužívá TDMA to co vy zmiňujete se snaží používat Ubiquiti. To wifi-newifi. Se zbytkem s vámi souhlasím.

Namátkou jsem si vybral tenhle spec sheet, linknutý odsud. Ano píše se tam TDD. Ale taky 802.11ac wave 2. Takže máte pravdu, že to skutečně není "wifi-newifi". Je to docela normální 802.11ac. Ta specifikace firmy Cambium se k "media access mechanismu" nijak dál nevyjadřuje - a jak už jsem zmínil, v obecném smyslu TDD je i standardní half-duplexní CSMA-CA. Frekvenční kanál je jenom jeden, a účastníci se střídají ve vysílání.

971
Software / Re:Vysvětlení pojmu InitramFS
« kdy: 22. 11. 2018, 18:40:44 »
...taky si přisadím, do téhle přátelské debaty nad draním peří:

Boot linuxu začíná zhruba tím, že bootloader loadne do RAMky jádro a spustí ho (skočí na nějakou startovní adresu). Tohle natažení jádra do RAMky se děje sice z disku, ale ještě pomocí služeb BIOSu - tzn. "ovladačem diskového řadiče" je vlastně podpora tohoto hardwaru zabudovaná v BIOSu. Proto to funguje jednak z onboard IDE/SATA řadičů, jednak z USB flashek (i pro boot z těchto zařízení musí být podpora v BIOSu), jednak z přídavných karet, třeba SCSI/SAS apod., které si nesou ssebou svůj vlastní modul do BIOSu (tzv. "option ROM"). Podpora disků v BIOSu je primitivní, není příliš výkonná = není vhodná pro trvalý běh OS, ale pro natažení kernelu postačí.

Start jádra podle mého cca končí tím, že se jádro pokusí "mountnout kořenový svazek" (root) - což činí už prostřednicvím svých vlastních ovladačů pro diskové řadiče, které se budou za běhu naostro používat.
Tzn. ovladač diskového řadiče, potřebný pro kořenový svazek, musel nastartovat někde mezi odskokem z bootloaderu a mountem rootu - v době, kdy ještě nejsou přimountované žádné svazky a neběží žádné user-space procesy.
Jinými slovy, ovladač pro diskový řadič, skrz který se má jádro dostat ke kořenovému svazku, musí být v kernelu zakompilovaný monoliticky. Jako modul uložený na kořenovém svazku v /lib/modules by byl jádru platný jak žábě gumovky, protože brejle se bez brejlí těžko hledají, jak praví Mach a Šebestová.

Problém obecně je, že různých modelů čipů diskových řadičů je spousta. Na domácím počítači Vám to tak třeba nepřipadá, protože přece bootujete vždycky z nějakého SATA zařízení na onboard SATA řadiči, který je v dnešní době nejspíš od Intelu (ano rejpu naschvál do tábora AMD). Ten jeden-dva ovladače by snad kernel monoliticky pobral? Představte si, že byly doby, kdy PC čipsety vyrábělo třeba 5 a více firem. A základní legacy IDE sice bylo nějak kompatibilní, ale s příchodem SATA vzala kompatibilita do značné míry zasvé (čest výjimkám, kde se SATA řadič uměl tvářit jako prastaré generické IDE). Kromě toho Linux je dodnes doména spíš serverů, a v tomhle prostředí je kupodivu spousta nepochopitelných fajnšmekrů, kteří chtějí bootovat ze SCSI, různých RAIDů, FibreChannel SANů apod. Takže prostě těch ovladačů jsou ve zdrojákách jádra k dispozici obecně desítky. Binární bootovatelný image jádra bez diskových ovladačů může mít třeba nízké jednotky MB, s dvaceti základními ovladači jste snadno na dvoj- až trojnásobku. (V dnešní době pořád legrace, ale prosím abstrahujme od toho.)

Chci říct, že je docela velká a rozumná motivace, nemít monoliticky v kernelu všecky diskové ovladače, kolik jich jenom pánbůh stvořil.

A přesně proto vznikl "initial RAMdisk". Kernel nemountuje přímo finální kořenový svazek. Přibyl mezikrok, kdy kernel napřed mountne dočasný root FS právě z RAMdisku. Potřebuje tedy ovladač pouze pro RAMdisk - jistě triviální. A potřebný ovladač pro skutečný diskový řadič už si dotáhne z RAMdisku. Následně může skript běžící z initial RAMdisku remountnout root na finální fyzický oddíl a spustit plnohodnotný $INIT (dosaďte si každý svou pohanskou modlu). A pokračuje plnohodnotný user-space boot.

Aby byl initial RAMdisk k dispozici a zabydlený dřív, než se mountnou fyzické disky, musí se o jeho vytvoření postarat bootloader (Grub, LILO, Syslinux, PXElinux, ISOlinux, RedBoot, Uboot...). Proto v konfiguraci bootloaderu vidíte tradičně dva řádky těsně za sebou: kernel, a initrd.

Kdysi dávno, snad v minulém století, neměl jsem rád initrd. Připadal mi neprůhledný a nepřehledný. Byl jsem radši, když kernel mountoval rovnou konečný root device. Takhle "přímo" totiž kdysi první distra startovala zcela normálně. Abych toho dosáhl, kompiloval jsem si svůj vlastní kernel, ve kterém jsem potřebný ovladač pro můj konkrétní diskový řadič zakompiloval monoliticky.

Už mnoho let je tomu, co jsem si zvykl na "neprůhlednost" initial RAMdisku, naučil jsem se těch pár zaklínadel, pochopil jsem základní principy fungování a odhadl mantinely... a nakonec mi vyhovuje boot skrz initrd. Distro mi tu vypolstrovanou samotku hezky nastele a navoní, takže když nedělám vylomeniny, je ta nevědomost nakonec docela pohodlná. Znám zhruba obrysy, jak to funguje, a pod kapotu už koukat nepotřebuju.

Prvotní podobu initrd připraví instalátor (ať už standardní CDčkový apod., nebo třeba debootstrap) a jednou z jeho základních povinností je, aby už v této počáteční podobě initrd byl přítomen driver pro diskový řadič, ze kterého tento konkrétní stroj bude bootovat. Tzn. ani v initial RAMdisku nejsou *všechny* ovladače, ale jenom ten, který je pro daný počítač potřeba. Případně pokud jste hraví, máte svobodu přidat si do initrd všechny ovladače (nejen diskové), které tam chcete mít - třeba protože chcete, aby Linux z tohoto disku byl ochoten nastartovat v mnoha různých počítačích. Jsou na to skripty, třeba v Debianu update-initramfs a jeho konfigurace v /etc/initramfs-tools . Přídavné moduly vyjmenujete v souboru "modules" v tomto adresáři. Existuje také standardní možnost (už v instalátoru), nacpat do do initrd *všechny* ovladače - asi pro lidi, kteří nešetří každým gigabajtem RAMky (a nevadí jim, čekat při startu pár desítek sekund navíc na bootloader).

Pro jistotu podotýkám, že do initrd nemusíte cpát ani všechny moduly, které opravdu potřebujete na daném HW. Třeba modul pro zvukovou kartu nebo síťovky si jádro může natáhnout už z fyzického disku v normální fázi user-space bootu. Schválně se na standardně nainstalovaném linuxu podívejte přes lsmod, co všecko je nataženo jako modul, a pak porovnejte s obsahem /lib/modules v initial RAMdisku (viz níže).

V initrd jsou nějaké další věci... třeba zmíněný Plymouth, který se snaží o bezešvý high-res graphics vzhled od bootloaderu až do Xwindows, nebo hlouběji pod kapotou "udev", protože už velmi základní systémové programy v user space, startující z initial ramdisku, potřebují nějaký minimální obsah adresáře /dev/ (přístup na systémová zařízení). V initrd míval konkrétně udev jenom jakýsi "preloader", plný udevd startoval až po mountnutí finálního rootu.

Popravdě, Linux, po remountnutí rootu z ramdisku na ostrý diskový oddíl, initial RAMdisk dealokuje a uvolní paměť. Dokonce je to ještě trochu složitější (kdo chce, ať si počte). Prostě initial RAMdisk se za normálních okolností zřejmě nedožije ani konce kompletního user-space bootu :-) Je potřeba jenom pro rané fáze user-space bootu a když splní svou úlohu, tak po něm už pes neštěkne.

Jak už psali ostatní, jednou vytvořený obraz initrd leží v souboru pod /boot/ a při běžném rebootu do něj distro nijak nezasahuje, neukládá se do něj žádný "stav". Mění se pouze při změně konfigurace věcí v initrd.

Co je to vlastně za formát / souborový systém? Osobně jsem v nějaké své volné tvorbě kdysi používal obrazy RAMdisku ve formátu ext2 nebo minix, kernel si s nimi dodnes automaticky poradí (pokud má pro tyto fs ovladače). Takový obraz se dá klasicky mountnout ze souboru s argumentem "-o loop". Ovšem moderní distra tuším dodnes (už dlouhá desetiletí) používají initrd ve formátu .cpio.gz. V podstatě soubory poskládané za sebou a sbalené gzipem (nebo čím vlastně), při bootu z toho kernel tuším udělá nastojato tmpfs. Chcete-li si prohlédnout adresářovou strukturu initial RAMdisku, zkopírujte si ho někam bokem (nebo na něj udělejte symlink) a přidejte mu příponu ".cpio.gz". V této podobě do něj ochotně vleze "mc" a můžete se v něm brouzdat v read-only režimu.

To že každá verze image kernelu v /boot/ má k sobě svou vlastní verzi image initrd je dáno tím, že v daném imagi initrd jsou obsažené pouze moduly=drivery pro kýženou verzi kernelu. Opět kvůli tomu, aby nebylo třeba loadovat při bootu spoustu balastu (/lib/modules s verzemi modulů pro všechny kernely instalované na fyzickém disku v daném systému).

Závěrem nostalgická vzpomínka: v dobách, kdy se hra pro DOS vešla na disketu, ale počítače už měly třeba 4 MB RAM, kterou hry běžně celou neupotřebily, zato hra občas padla zpátky do DOSu, nebo bylo třeba kvůli loadnutí uložené pozice hru restartovat (civilizace?), dávalo velmi dobrý smysl, mít nakonfigurovanou buď velikou cache v RAMce, nebo právě RAMdisk (a hru do něj nakopírovat). Restart her v RAMdisku byl okamžitý :-) Tuším jsem to párkrát použil i v dobách, kdy 100MB HDD měl přenosovou rychlost asi 600 kBps...

972
Sítě / Re:LTE pásma 1,8 GHz vs. 3,7 GHz
« kdy: 21. 11. 2018, 16:47:28 »
Mu-mimo 8x8 umí technologie od Cambium Networks i v 5ghz včetně TDD a funkcni GPS synchronizace...

Err... Cambium Networks - v pásmu 5 GHz jistě, ale tipnu si, že se jedná spíš o "wifi-newifi" s media-access mechanismem TDMA, nikoli o "LTE TDD" (terminus technicus). Všechno dosavadní LTE tady u nás (telefony) ve všech pásmech jede LTE FDD, jenom pásmo 3.7 GHz je zmiňováno právě v souvislosti s LTE TDD (přitom ale má být "technologicky neutrální" - to jsem z toho daněk). Jinak samotný pojem Time Domain Duplex pasuje asi i na klasické 802.11 wifi s CSMA-CA :-)

Není mi jasné, k čemu je u 5GHz TDMA "newifi" základnovky synchronizace přes GPS. Multicell MIMO to podle mého neumí, a nějakých 100 ppm by měl udržet i poměrně obyčejný "šutr"...

Multi User MIMO asi opravdu není nic šokujícího. Poslední generace LTE základnovek by mohly pomalu umět Full Dimension MIMO, což zní jako užitečný upgrade. A pokud správně chápu, o Multi-Cell Coordinated Multipoint (CoMP) se zatím jenom řeční, žádný 3GPP release ho zatím neobsahuje?

LTE je mobilní síť 4.generace. Ohledně sítí 5.generace mám pocit, že mají chodit na desítkách GHz (několik pásem) a síť bude stavěná úplně jinak než u 4G a starších: mraky maličkých vysílačů rozmístěných v ulicích, protože bez přímé viditelnosti ani ránu.

973
Server / Re:Struktura databáze pro sklad
« kdy: 20. 11. 2018, 22:54:07 »
Tyjo, když tady čtu ty bezvadné popisy co je třeba modelovat/podchytit a proč, začíná mi dávat smysl spousta zákoutí, která vidím v modulu skladů v i6. Fakt toho i6 neumí málo. Bohužel jedna konkrétní a v dané aplikaci zřejmě důležitá věc, která v i6 prakticky chybí (pokud moje chabé znalosti nelžou) jsou "sestavy s BOMem" = agregátní skladová položka skládající se s více detailních skladových položek. Alespoň v té i6 co provozujeme pro "šoupání krabic" to zjevně není. Přicházíme do styku s některými dodavateli, kteří jedou na SAPu a jejich systém tuhle věc patrně umí.

Na i6 mi přijde kouzelné, že je uživatelské rozhraní hodně blízko surovému datovému modelu, prostě bohaté formuláře nad tabulkami. Lokální klient zrovna neoplývá blbovzdornými wizardy "next - next - finish". Naopak: máte veliký formulář a často o integritních omezeních "workflow" nevíte, dokud nějaké neporušíte :-) = vyskočí chybová hláška. Jasně, práva konkrétního uživatele se dají sešněrovat, aby nemohl napáchat škodu. Míru svobody lze nakonfigurovat per uživatel. Což se hodí, když je třeba řešit nějaký přehmat: musí pomoct někdo, kdo má vyšší práva / větší svobodu. Obvykle je na výběr, zda řetízek několika kroků vrátit zpátky přibližně do situace "vůbec se to nestalo" (smazat nově vytvořené záznamy od určitého bodu) vs. provést komplementární krok opačným směrem (třeba klasické storno) s tím, že v systému zůstane "hrobeček", podrobný záznam, co se dělo. Je na uživatelské organizaci, aby si stanovila interní pravidla podle svých potřeb. V různých modulech/tabulkách/atributech je správný postup různý. Samozřejmě ta relativní svoboda předpokládá, že s ní dotyčný musí umět uvážlivě pracovat.

Jinak rozlišení "produkt necertifikovaný vs. přesně tatáž věc s certifikátem": podle mého není nic jednoduššího. Prostě budou mít každý svůj objednací kód, navzájem odlišný třeba jenom v jednom písmenku. Dvě různé "skladové karty". Tzn. je to spíš věc tvorby objednacích kódů a taky věc pečlivého značení zboží na skladě. Totiž tvorba objednacích kódů je dost věda a je to problém spíš "lidský" z oblasti řízení, systematizace a pořádku, než z oblasti IT implementace.

A že šéf skladu by měl být pedant, to je další věc. Pokud jsou skladníci lemplové, tak to žádný IT systém do pořádku nedá... Pořádek je do značné míry věc sebekázně, pečlivé práce. Softwarový systém tomu jenom dodá určité pohodlí. A pokud má mít pedantský šéf skladu šanci udržet si pořádek, nesmí mu do skladu lézt každý kdo jde okolo... Pokud je pro to v organizaci podpora, tak to může fungovat. I bez drastické hmotné odpovědnosti.

974
Hardware / Re:Výběr vhodné micro ATX skříně pro PC
« kdy: 20. 11. 2018, 07:31:06 »
Ohledně CPU a GPU: chválím zdravý rozum ohledně spotřeby. Tou skříní jste si zjevně udělal radost. Když se Vám po pár měsících bude zdát, že je uvnitř čím dál větší horko a ventilátory točí čím dál víc, připravte si vysavač a mrkněte na filtry.

975
Hardware / Re:Výběr vhodné micro ATX skříně pro PC
« kdy: 19. 11. 2018, 21:20:31 »
Jestli to je nebo není dobrý výběr, to záleží na Vašich požadavcích, a subjektivním vkusu. Zdá se, že je pro Vás svoboda volby utrpením - tohle znám :-)

Pokud se týče technických hledisek: co za procesor do toho vlastně chcete namontovat?

Stran: 1 ... 63 64 [65] 66 67 ... 84