Welcome to Brutusware 1.6
                                                                #####
                                                               #######
                  @                                            ## # ##
 ######          @@#                                           #VVVVV#
   ##             #                                          ##  VVV  ##
   ##         @@@   ### ####   ###    ###  ##### ######     #          ##
   ##        @  @#   ###    ##  ##     ##    ###  ##       #            ##
   ##       @   @#   ##     ##  ##     ##      ###         #            ###
   ##          @@#   ##     ##  ##     ##      ###        QQ#           ##Q
   ##       # @@#    ##     ##  ##     ##     ## ##     QQQQQQ#       #QQQQQQ
   ##      ## @@# #  ##     ##  ###   ###    ##   ##    QQQQQQQ#     #QQQQQQQ
 ############  ###  ####   ####   #### ### ##### ######   QQQQQ#######QQQQQ

                                                   
Author: Ladislav Vaiz

You can visit Brutusware homepage.

 #include <std_disclaimer.h>

Co je to Brutusware?

Jedno až dvoudisketová minidistribuce Linuxu. Její původní cíl byl poskytnout majiteli operační systém pro připojení k internetu prostřednictvím ethernetové karty pokud možno nezávisle na tom, v jakém stupni rozkladu je okolní síť nebo lokální disk. Později přibylo i místo pro utility typu e2fsck, takže je použitelná i jako záchranná disketa.

Vybrané vlastnosti: TCP/IP networking, podpora FAT32, NTFS včetně automatického namountování při startu, ssh, v rámci možností podpora češtiny (fonty, klávesnice).

První a hlavní disketa je v klasickém formátu FAT12, neměl by být problém spustit loadlinem systém i na strojích, které z diskety nebootujou (bootromka, heslo v setupu). Image lze vypálit na bootovaci CD.

Pro nedočkavé DOWNLOAD

bw-images-1.6.tar.gz -image disket (boot a usr).
bw-nbdusr-1.6.tar.gz -image svazku usr. Pro mountování přes nbd nebo vypálení na cdrom.
bw-devel-1.6.tar.gz -vývojový balík, obsahuje prostředky pro modifikaci a znovuvytvoření distribuce.

Instalace

Nároky na železo:

Vhodné jsou:

Jádro

je verze 2.2.14, má podporu těchto vybraných vlastností:

Programy obsažené v distribuci

Binárky jsou většinou kompilovány s libc5, kde to nebylo příliš na úkor použitelnosti, jsou použity programy psané v assembleru z linuxassembly.org.

Na první disketě jsou programy:

Druhá disketa

je /usr, má ovšem nestandardní formát 1760kB. S kompatibilitou nebyly nikdy problémy, disketa šla přečíst i pod archaickým jádrem zhruba 1.2.13. Na některých distribucích chybí /dev/fd0u1760, naštěstí existuje program mknod (viz sekce Instalace).

Na /usr jsou: badblocks, chown, date, dosfsck, finger, hd, links, mc, mkdosfs, netstat, nslookup, rar, smbmount, sort, strace, stty, unarj, unzip, zgv

X-window system se serverem VGA16 byl z /usr diskety vyřazen.

Zajímavé funkce distribuce

Programy, které stojí za pár slov

clone

Naklonuje systém na dosouvou partišnu. Jako parametr se zadává pouze jméno zařízení, takže například "clone hda1". Pokud je partišna přimountována, musí jít odmountovat (nesmí být busy).

Objeví-li skript adresář /usr/boot, není ke klonování třeba bootovací disketa, potřebné soubory jsou brány z tohoto adresáře. Musí zde být ještě soubor bootsect, což je prvních 512 bytů z bootovací diskety.

Po zkopírování souborů se skript zeptá, jestli má do bootsektoru partišny vložit zavaděč. Pak stačí nastavit fdiskem partišnu jako bootovací a není pro zavedení systému třeba M$-DO$. POZOR! Ačkoli jsem skript skoušel na několika různých počítačích, nemohu vyloučit, že přepíše i nějakou důležitou část disku. Pokud máte rád(a) svá data, tak této možnosti nevyužívejte.

V každém případě se vytvoří soubor \AUTO.BAT, který zavede systém loadlinem.

nbdusr

Nejprve spustí soubor /etc/nbd. Ten by měl nastavit proměnné prostředí HOST_1 a PORT_1 (dále 2, 3 ... 8) na jméno (nebo IP) stroje, ze kterého chcete číst /usr. Pokud není uveden port, používá se 65469 (0xffbd). Neexistuje-li /etc/nbd, skript se na hostname a port zeptá.

Na serveru by na příslušném portu měl poslouchat nbd-server (viz stránka Pavla Machka. Doporučuji server startovat přes (x)inetd. Verze 0.14, kterou používám, vyžaduje drobnou úpravu. Je třeba zlikvidovat VŠECHNY příkazy, které zapisují ladicí výpisy na stdout nebo stderr. Ty totiž dostane klient a samozřejmě jim nerozumí. Mělo by stačit vyhledávat 'printf' a odstraňovat výpisy typu 'Opening file blabla.img'.

Binárce nbd-server přibyl parametr -a, který musí být následován parametrem udávajícím po kolika sekundách nečinnosti klienta se server ukončí. To je vhodné, pokud se klientský počítač ukončí tak, že se neuzavře spojení se serverem a program nbd-server tam visí v syscallu. Já používám timeout 21600 neboli 6 hodin.

Serveru zadáte jako parametr soubor, který je image souborového systému ext2. Já používám tento . Je vhodné exportovat read-only, protože z principu není možný zápis více klienty. (filesystém je vytvářený u klienta a chybí jakákoli synchronizace).

Jelikož neznám žádný způsob, jak korektně ukončit program nbd-client (zůstane ve volání ioctl() a statečně ignoruje všechny signály), řeším to silně prasecky. Prostě do /dev/nd0 zapíšu. Server ví, že je read-only a ukončí spojení s klientem, ten vypadne ze syscallu a všechno by mělo být v pořádku.

X-window systém :-)

Požitelná Xka jsou příliš velká. Dostat rozumně novou verzi na disketu je docela problém. Proto jsou pouze v balíku bw-nbdusr-x.y.tar.gz, který je určen pro připojení přes síť pomocí nbd nebo pro vypálení na cdrom (stačí read-only přístup).

"Xka" se spouští tradičně skriptem startx.. Program testuje existenci souboru /etc/XF86Config. Pokud existuje, jsou Xka prohlášeny za nakonfigurované a spustí se. V opačném případě program pokusí zdetekovat grafickou kartu. Pohledem do /proc/pci by měl odhalit S3 a Mach64. Při neúspěchu proběhne adresu e000:0000 v /proc/kcore a hledá řetězec 'trident', takže i tuto grafiku by měl najít. V opačném případě se na typ karty zeptá, zadáním prázdného řetězce bude použit VGA setver (640x480 při šestnácti barvách).

Následuje otázka na zařízení, ke kterému je připojena myš. Pokud máte nějakou nestandardní, budete muset použít ruční práci.

Pak naběhne Xserver a spustí se windowmanager fvwm2. V jeho nabídce je pouze xterm (u kterého zlobí barvamy) a netscape verze 3 (který jak je u Netskejpů zvykem) padá na SIGBUS.

Připojení na server, na kterém běží xdm (kdm, gdm), se provádí: X -query jmeno_serveru

telnet

By prohlášen za zbytečný a není součástí distribuce. Alespoň prvních dvou disket. Ve většině případů je stejně rozumnější použití ssh a na něco stačí nc.

talk

Program talk hlásil nějaké podezřelé chyby a především nefugoval, nehledě na to, že rozhodil terminál tak, že nepomohl ani reset. Takže má smůlu a skončil. Až najdu funkční verzi, jistě se objeví alespoň na /usr.

fdisk

Program fdisk rozhodně osud telnetu nečeká. Protože dostupné verze pro libc5 tvrdí, že typ pártišny 0x85 opravdu neznají, trochu jsem ořezal a upravil fdiska ze v současné době aktuální RedHeťácké distribuce verze 6.2. Myslím, že absence sun, sgi a aixlabelů za těch několik desítek kB opravdu nestojí, tím spíš, že tyto se zřejmě na IDE discích příliš objevovat nebudou.

mingetty

Pár slov si zaslouží i mingetty. Program by se spíš měl jmenovat mingettylogin, ale to by jen zabíralo místo na disketě. Slučuje v sobě důležité vlastnosti mingetty a loginu, postrádá některé zbytečnosti typu ptaní se na heslo.

setleds

Pokud má někdo vymakané nastavení NUMLOCKu přímo v jádře, čímž by se pár kilo zabrané setledsem ušetřilo, tak sem s tím!. Zkoušel jsem patchnout jádro, ale nějak mě neposlouchá.

hd

Projde tabulky rozdělení disku a vypíše informace o partišnách. Výstup programu je vhodné uschovat pro případ havárie disku (nejlépe na ten samý disk :-)). Stopy jsou číslovány 1..N, takže jsou kompatibilní s fdiskem. Tato základní funkce někdy zlobí u velkých (>8.4GB) disků. Další funkce jíž jdou bez problémů.

Parametr -s způsobí, že program projde první a dvě hlavy všech stop. Hledá známá magická čísla. Umí najít tabulku rozdělení, linux swap, ext2, FAT12 a 16 (32 jsem nezkoušel, nikde ji nemám). Samozřejmě, že magická čísla se mohou na disku nacházet i náhodně (například záloha MBR uschovaná lilem). I tak je program užitečný, když se rozsype disk a není uschována informace o partišnách. S trochou znalostí o původním rozdělení (alespoň s přibližnými velikostmi partišen) lze fdiskem rekonstruovat původní rozdělení.

Parametr -t zapne důkladné prohledávání disku, tj. prohledávají se všechny hlavy (zatím jsem se s partišnou začínající na hlavě 22 nesetkal). Důkladné porovnání může být až 100x pomalejší.

Vyhledávání magckých čísel může zlobit u disků s méně než osmi sektory na stopu. Takové disky, doufám, nejsou. I disketa má víc.

nslookdown

Mladší a méně vyvinutý bráška nslookupu. Hostname nebo ip adresa se zadává jako první parametr. Výpis programu je určen pro použití ve skriptu.

smbmount

Mountuje svazek z jiného počítače protokolem SMB (M$-Wokna 3.11/95/98/NT/2k). Verze je 2.0.6, používá se (na rozdíl od 2.0.5):
smbmount //jmeno_v_netbiosu/svazek /mnt/tmp -o username=uzivatel_na_serveru
Nezaměňovat s programem smbmnt!

Tipy pro stroje s malou pamětí

Na počítači s 8MB je velmi vhodné distribuci naklonovat na dosovou partišnu a spouštět LOADLINem. Tím uvolníme asi 2300 kB (rootový fs). Na pár sshček sice 8MB stačí, ale pro více programů by už začne mít jádro problémy (nemáme totiž swap).

Nechcete-li používat DOS, je možno použít ldlinux.sys. Je třeba do bootsektoru disku nahrát bootsektor diskety a to tak, aby se přepsal pouze zaváděcí program, nikoli data o partišně. To vyžaduje znalosti formátu bootsektoru. Časem jistě vznikne skript, který to provede.

Skript clone vytvoří také na disku soubor /var/swap, který se při startu připojí jako swapovací soubor.

Vývoj Brutuswaru

Úpravu stávající distribuce je vhodné provádět s archívem bw-devel-x.y.tar.gz. Jsou zde skripty mkroot a mkusr, ke kterým je komentářů netřeba. Se vzniknuvšími soubory bw.img a bwusr.img si jistě každý poradí.

POZOR! Skripty jsou hloupé a nekontrolují například, jestli je již disketa namountovaná! Klidně ji přepíší.

Ti, kdož budou chtít zkomplikovat i kernel, mají k dispozici adresář src/kernel, jehož obsah je též téměř jasný. Napovím, že některé soubory opravdu nejsou součástí jádra a zůstaly v adresáři mou leností.

Tipy

Známé chyby

Na notebooku s LCD displejem mi nechodilo rozlišení 80x30 (4). Posledních pět řádek nebylo vidět. Lze to napravit: rdev -v bzImage -1.

Midnight se už překresluje správně, ale ignoruje překladové tabulky, takže se v něm (a v programech z něj spuštěných) špatně zobrazují české znaky. Spouštěcí alias po ukončení mc znovu tabulky načte a čeština opět začne fungovat.

Midnight také špatně zobrazuje velikost souborů řádu desítek MB a větších. Nejvyšší řády odsekne, místo 64MB souboru vidíme jen 4MB.

Je-li připojené /usr přes nbd, pak se při shutdownu (ctrl+alt+del) těsně před rebootem objeví spousta chybových hlášek. To se ukončuje spojení se serverem. Ignorujte.

Použití skriptů v balíku bw-devel-x.y.tar.gz vyžaduje programy, které nejsou součástí Brutusware. Je třeba provádět vývoj na plnohodnotném linuxu. Já používám RedHat 6.0, problémy by neměly být ani s jinými distribucemi.

Licence

Program je šířen pod GPL 2.0 nebo novější. Pokud nějaký program náhodou není GPL, tak za to rozhodně nemohu. Další řeči, jako že "This program is distributed in the hope that it will be useful" již čtenář jistě zná nazpaměť a proto si je odpustím.

Snad jen pokud se Vám distribuce líbí, řekněte to všem kolem, včetně těch, co neznáte, pokud se Vám na ní něco nelíbí, řekněte to mě.

La'd"a Vaiz, ok1zia zavináč nagano tečka cz

P.S. Za veškeré přkelepy a hrupky se omlouvám.