Milé děti,
toto pojednání je určeno hlavně pro ty, kteří se ocitnou v podobné situaci jako já - nějakého Suna se Sparcem už někdy viděli, možná se na něj i nalogovali, ale to je asi tak všechno, a nyní se jim pracovně či soukromě dostalo do ruky nějaké to Sparčátko, na kterém by rádi zprovoznili Linux. A kdo má pevné nervy, možná si tam nakonec zvládne dát i vlastní jádro :). V souladu s účelem článku jsem se pokusila jej přehledně rozčlenit, abyste v případě zoufalství rychle našli, co hledáte. Celý proces jsem prováděla na postarší špinavé Ultře 1, předpokládám, ze na jiných Sparcích bude postup podobný a čekají vás stejná příjemná i nepříjemná překvapení :).
Na Sparc sice patří Solaris, ale můžete mít své důvody, proč ho
nechcete
- zabere moc místa, nechce se vám s tím spravovat, chcete mít všechno
kompatibilní a hezky linuxově přátelské, a tak zvolíte tučnáka (můžete
i čertíka, ale já dostala příkazem tučňáka, všude kolem byli tučňáci
apod.).
Dříve byly na Sparcy portovány Redhaty, se kterými se pracovalo celkem
dobře,
nyní je však už RedHat nepodporuje (poslední byla tuším verze 6.2)
a i oficiálních rpm-ek pomalu ubývá, takže máme po žížalkách. Zbývají
tedy
Debian, SuSE, Mandrake a Slackware (možná ještě něco jiného, nevím).
Vzhledem k tomu, že Slackware jsem v životě neviděla a kdybych na
Sparče dala
nějakou obrázkovou distribuci, nemohla bych se svým nejbližším přátelům
podívat
do očí (prosím nekamenujte mě), zvolila jsem Debiana (v neposlední řadě
to bylo
také ze sentimentálních důvodů, neboť Debian byl před lety můj
první...:)).
Dovolte mi malou odbočku - Sparcy totiž mají pár zajímavých featur, o kterých je dobré vědět :). Kdo už jste s nějakým trochu více pracoval, můžete to klidně přeskočit.
Nicméně i Sparcovní porty Linuxu mají další zajímavé odlišnosti. Lilo se jmenuje Silo :) a narozdíl od Lila se např. po editaci silo.conf vetšinou nemusí nic pouštět, on si to schroustá sám. Existují ovšem výjimky, při drsnějších úpravách, jako je např. přesun jádra na jinou partition, se po úpravě silo.conf musí pustit silo, jinak vůbec nenabootujete. Konečným závěrem tedy je, že ho klidně pouštějte pokaždé, jak jste zvyklí z normálního Linuxu, a předejdete tím nepříjemnostem, na druhou stranu, když na to zapomenete, vetšinou se nic nestane :).
Dalším rozdílem je, že path k image nepíšete v silo.conf coby /boot/..., ale coby číslo/image, kde číslo je číslo partition, v jejímž rootu máte image či odkaz na něj - takže pokud máte úplně normální disk, kde se jako / mountuje třeba /dev/sda4 (no dobře, úplně normální to není, ale já to tak mám :)), uděláte si v rootu odkaz na image a do sila napíšete image=4/image, máte-li jako já speciální bootovací partition sda1, která se mountuje do /boot, musíte si prostě dát bacha, protože kernel se loaduje před mountováním, a do silo.conf napsat uz přímo image=1/image (a přímo do /boot dát zase vhodný link). Pozor, /dev/sda1/image vám chodit nebude.
Teď už k instalaci výše zmíněného Debianu. Začít můžeme nabootováním z diskety, CD, nebo ze sítě, pokračovat potom buď sítí, nebo CD. Rozhodla jsem se pro instalaci skrzeva CD (začátek) a ftp (pokračování), protože s floppy byly problémy (nevím, jestli to bylo starou a špinavou mechanikou mého Sparčete, nebo obecně známou neschopností některých verzí Sila povídat si s disketou, každopádně možné je oboje :)) a boot skrz net jsem zatím nikdy nedělala, krom toho to asi není možné provozovat všude, proto jsem si raději vysmažila CD. Důležitý je hlavně ten začátek, takže pokud nemáte síť a v instalaci z CD budete i pokračovat, téměř nic z následujícího popisu se pro vás nemění (akorát si těch cédéček musíte opéct víc, mně stačilo první).
Odbočka: cédéčko můžete kdykoliv použít jako záchranné, když se vám něco nezdaří, prostě ho vložte do mechaniky, zmáčněte Stop+A, napište boot cdrom, a až se vás Silo zeptá, co jste dělali v létě, napište "linux root=/dev/.." (kde máte root partition, snad víte, nebo vyzkoušíte sda[1..n] či jiné možnosti, které vaše architektura nabízí, samozřejmě to platí hlavně pro případ, kdy se dostanete k cizímu počítači a nevíte, co jeho útroby obsahují).
Motto: Uz nikdy se nebudu pokoušet instalovat testing Debian na
Sparca.
...100x opsat.
Ne že by s Woodym bylo něco v nepořádku, broken byl použitý image. Ale než jsem na to přišla..:). Říkala jsem si, že když bude za chvilku stabilní a doma na chroustalce (= úplně normální PC) nám chodí, snad to půjde i tady. Nicméně už jen shánění imagů bylo složitější, protože se neválely úplně všude, a když už, tak samozřejmě s absolutely no warranty, což bylo také náležitě opodstatněné. Pokud byste se však přece jenom chtěli pokoušet o testing verzi, dostala jsem v konferenci radu, ze asi nejpoužitelnější image (disketové - s tím nemám žádnou plodnou zkušenost, ale vy to zkusit můžete, a malý isoimagík, kterým začnete a zbytek doděláte po síti) najdete tady, a vzhledem k tomu, ze provozovatel stránky je opravdu ten nejdrsnější maník z celé konference, dá se předpokládat, že nebude-li chodit tohle, nebude chodit asi nic. Každopádně opravdu spolehlivá fullcédéčková instalace Woodyho na Sparca zatím asi neexistuje (i když se to asi docela rychle mění, takže už možná kecám :)).
Stable
Nicméně já už na experimentování neměla nervy, a tak jsem se vrátila ke stabilní bramboře. Image normálně seženete na ftp.debian.org nebo na nějakém mirroru (n-1 z n matfyzáků doporučuje sunsite.ms.mff.cuni.cz :)). Instalace proběhla celkem bez problémů, prostě tam vrazíte cédéčko, napíšete v OpenBootu boot cdrom a pak uz vesele fdiskujete, odpovídáte na otázky, instalujete atd., no prostě jak jste zvyklí. Když se vám po nainstalování základu podaří nabootovat, máte už téměř vyhráno, nastrkáte si tam balíčky, jaké chcete, odkud chcete, nakonfigurujete všechno dle libosti apod. Tady by průměrné BFUčko skončilo, ale my jsme samozřejmě velcí drsní adminové ;) a chceme tam přinejmenším nějaký pěkný nový 2.4kový kernel. Silnější povahy nechť tedy pokračují ve čtení (ty, které zbyly, některé se totiž už možná zastavily na začátku, pokusily se o instalaci testing distribuce z nějakého pofidérního cédéčka a nyní mlátí hlavou o zeď, jak jsem asi před týdnem činila já :)).
Opět malá odbočka: jak se záhy dozvíte, při vyšších požadavcích na systém se někdy nevyhnete nutnosti instalovat i něco jiného než debianí balíčky. Konkrétně tedy předem, co a jak lze nainstalovat:
Kernel se kompiluje z úplně normálních kernelích zdrojáků.
Kompilujeme si kernel
Předpokládám, že jste linuxový kernel na nějaké normální architektuře
už někdy
kompilovali, a zaměřím se proto jen na rozdíly (o úchylkách Sila jsem
se již
zmínila). Začátek je stejný, stáhnete, rozbalíte, přiměřeně
nakonfigurujete.
První rozdíl: nepíše se make bzImage, ale make vmlinux.
Teď vám to chcípne dost brzo, protože normální gcc na to nestačí,
potřebujete
64bitové. A zde je kámen úrazu, jediný použitelný kompilátor je egcs64,
ten je
však starý zatuchlý a nikdo ho už několik let nevyvíjí, protože se
místo toho
čeká na nové gcc, které to všechno taky bude umět. Kdyz si
nainstalujete
(normálně z debianí distribuce) dotyčné egcs64, můžete se opět pokusit
o kompilaci kernelu, dojdete o kousek dal, a pak vám to zase chcípne na
internal compiler error. A co ted milý Watsone? (Watson neví, Pavel
Machek
dodatečně radí kompilovat bez optimalizací, to jsem nezkoušela, protože
poradil
moc pozdě, ale třeba to zafunguje.). Jinak si buď můžete napsat vlastní
64bitový kompilátor (a to nechcete), nebo si tento opatchovat (a to asi
taky
nechcete), nebo hledat, kdo už to udělal za vás :).
Udělali to RedHati, kteří se sice nyní už o Sparca nestarají, ale
jejich
poslední rpmková verze egcs64 je kupodivu jediná, kterou jsem našla a
je
skutečně schopna 2.4kový kernel zkompilovat (tím neříkám, že neexistuje
nějaká
jiná verze opatchovaná zase někým jiným, potěšilo by mě samozřejmě,
kdyby byla
debianí, ale v tu chvíli jsem byla ráda, ze mám alespoň něco). Takže si
nainstalujete rpm, pokud jste to již neudělali, někde, třeba na
rpmfind.net, najdete egcs64 pro Sparc
z RedHatí distribuce (já našla tohle
a chodí), ověříte si ručně dependence (máte radost?) a pak dáte rpm
-ivh
--nodeps. A budete koukat, on se vám ten kernel konečně zkompiluje! :)
Takže si
makenete ještě moduly, modules_install, zkopírujete přiměřené věci na
přiměřená
místa, upravíte silo.conf a myslíte si, že už máte vyhráno, ale...
...nenatáhnou se vám moduly, protože pro nový kernel potřebujete nové
modutils. Pěkný zdroj packagů pro kernel 2.4 na bramboře najdete tady, přímo
sparcoidní
archiv je
tady
(a když už tam budete, můžete si rovnou stáhnout i iptables).
Do
/etc/modutils/aliases napíšete alias pro svou síťovku (třeba já tam mám
alias
eth0 sunlance, takže místo sunlace dosaďte jméno modulu své síťovky),
pak
spustíte update-modutils a po rebootu by se vám mělo všechno pěkně
natáhnout.
A to už by mohlo stačit, ne? :)
Hneď na úvod musím oznámiť, že nie som Linux guru, ale obyčajná lama aká rastie všade okolo. Záhadným spôsobom sa mi nedávno podarilo nainštalovať Debian/Linux na dosť exotický hardware - Sun SPARCstation4. Tento článok popisuje niektoré pozoruhodné okamihy tohoto mystéria.
Linux je pre UltraSPARC architektúru portovaný už niekoľko rokov (približne od roku 1994). Rok nato vydal RedHat distribúciu pre túto architektúru. Touto prácou sa zaoberá (nielen) združenie UltraSPARC Linux. Medzi distribúcie portované na architektúru UltraSPARC patria Debian 3.0, Mandrake 7.0, SuSe 7.3, RockLinux 1.7, RedHat 6.2, Slackware (SPLACK) 7.1, Gentoo a Caldera 2.2. Jadro je vydávané v štyroch binárnych obrazoch, 32 a 64bitové a každé ešte s podporou alebo bez podpory SMP.
Pre zavedenie sa namiesto LILO používa SILO, ktoré väčšinou nie je potrebné po úprave konfiguračného súboru spúšťať. Pre zavádzanie pomocou TFTP sa používa TILO. Pre 32bitové aplikácie a jadrá stačí gcc, podľa báji a povestí kolujúcich po nete by od verzie 3 malo byť schopné skompilovať aj 64bitové jadro. Ak tak nie je (mne to chvíľu išlo na Gentoo), stále môžete použiť egcs64.
Pre nekompatibilitu architektúr nie sú aplikácie z architektúry Intel (little-endian) prenositeľné pod SPARC (big-endian) a musia sa kompilovať. Pre uľahčenie práce na kritickom hardware je časť portovania venovaná spúšťaniu knižníc zo SunOS.
Železom, určeným pre budúci desktop, sa stala pracovná stanica triedy SPARCstation4, model sun4m. K dispozícii bolo 6 staníc tohto typu, avšak len dve z nich získali poctu stať sa budúcim Linux-boxom. Dôvod je jednoduchý: k dispozícii boli len dva monitory s 13W3 konektorom pre framebuffer stanice. A desktop sa robí trochu moc zložito bez monitoru a ešte horšie sa potom na ňom pracuje. Nádoba, do ktorej sú SPARC-y sun4m montované, sa volá pizza-box. Keď si povieme, čo všetko taká workstation obsahuje, zistíme, že to úplne stačí:
základná doska s SBUS zbernicou
Keďže do pizza-boxu sa dá namontovať viac typov SPARCstation, ktoré môžu byť vybavené aj vstavanou CD-ROM mechanikou, disketovou mechanikou, ďalšími diskami, ostala asi 1/3 priestoru prázdna. Pokiaľ som si dobre všimol, základná doska SS4 je vybavená dvoma rozhraniami pre pripojenie ďalších SCSI zariadení (z dokumentácie nie je jasné, aké ďalšie adaptéry sú potrebné, a pochybujem, že sa dajú bežne kúpiť v hypermarkete).
Ak ste niekedy mali dočinenia so starším dlho nepoužívaným zariadením, viete, že pred pripojením napájania je potrebné dôkladne všetko vyčistiť (prach, pavučiny, osie hniezda). Ja som použil namiesto vysávača svoje vlastné pľúca (dopované nikotínom). Ak je vo vašom Sune dlho nepoužívaná CD-ROM mechanika, najlepšie je ju rozmontovať (do rozumnej hĺbky; skrutky, ktoré vám potom zostanú navyše, určite niekde použijete) a vyčistiť každú časť.
Za starých dobrých čias sa na diskoch nachádzal Solaris v.2.5. Verím, že existuje cesta, ako použiť pre zavedenie inštalačného obrazu do pamäte existujúci systém, ale to naráža na určité obmedzenia:
(Pozn. red: Big Admin Spousta by to určitě zvlád ;) --Johanka)
Preto zostáva jedinou možnosťou zaviesť inštalačný obraz z iného média, buď z CD-ROM, alebo zo siete, prípadne z disketovej jednotky. Namiesto CMOS/BIOS ROM známych z PC existuje v oldies mašinách takzvaný PROM command monitor.
Namiesto farebného BIOSu, kde si vystačíte s kurzorovými klávesami a Enter-om, v PROM sa zvykne vsetko krásne linux/unixovsky písať. Stanice (hlavne staršie) vyrábané firmami Sun, SGI, IBM používajú niektorý klon PROM monitoru. Sun používa openBoot. Aby bolo jasné, openBoot je firmware, teda softvér, ktorý je napálený v EPROM alebo v podobnom čipe a zavádza sa pri zapnutí počítača. Elegantnou vecou openBootu je virtuálny filesystem, v ktorom sú v štruktúre podobnej adresárom zapísané zariadenia pripojené alebo obsiahnuté v SBUS zbernici. Príkazy sú krátke a prehľadné, príkaz help, prípadne help meno_sekcie vám poskytne viac informácií. Kombináciou Stop-A zastavíte prebiehajúci proces (napríklad autoboot).
V PROM monitore fungujú klasické príkazy cd, ls a pod, ktorými môžete prechádzať hardvér v stanici:
ok ok cd /SBUS
ok ls
ffd50f08 power-management@3,a000000
ffd4ac54 SUNW,tcx@2,800000
ffd48ff8 ledma@4,8400010
ffd48f6c SUNW,bpp@4,c800000
ffd45e78 espdma@4,8400000
ok cd ..Bootovanie v openBoot sa nastavuje pomocou premenných alebo priamych príkazov:
ok boot disk
ok boot cdrom
ok boot net
ok printenv
ok setenv autoboot true
ok setenv boot-device net diskČastokrát sa stáva, že openBoot odmietne bootovať z CD-ROM alebo z disketovej jednotky, pričom médium je úplne bez chyby a na iných strojoch funguje. Neviem, ako to robia skutoční hardvéroví kúzelníci, ja som zariadenia na zbernici zobúdzal pomocou openBoot príkazmi ako cd alebo ls. Potom sa podarilo nabootovať CD alebo net. Botoovať z diskety som neskúšal, pretože:
(Pozn. red.: a já se před dvěma lety divila, proč mi to z diskety nebootuje :) --Johanka)
Tieto nedostatky nám však neprekážajú, pretože máme k dispozícii alternatívne metódy.
Bootovať z CD dokáže (dúfam) každý, preto uvediem len niekoľko krátkych poznámok:
ok probe-scsi-allMali by ste začuť s ničím nezameniteľný zvuk štartujúceho Migu spolu s výpisom informácií o všetkých SCSI zariadeniach (ten by ste mali pre zmenu vidieť).
V mojom prípade som externú CD-ROM mechaniku k dispozícii mal a prirodzene som z nej aj inštaloval. Bootovanie z openBoot:
ok boot cdromPre bootovanie zo siete potrebujeme poznať ethernetovú adresu sieťovej karty, MAC adresu. Tá sa zobrazuje v každom slušnom PROM monitore hneď na začiatku. SPARC stanice majú zabudovanú podporu bootovania po sieti pomocou ARP//RARP paketov. Ak ste si nevšimli MAC adresu pri štarte stanice, nevadí, napíšte do openBoot príkaz
ok .enet-addr
8:0:20:7d:aa:6bPre bootovanie SS4 po sieti sa používajú tri daemony:
Konfiguračný súbor DHCP serveru sa nachádza v /etc/dhcp. Pre nabootovanie stanice stačí takýto krátky záznam:
# nano -w
/etc/dhcp/dhcpd.conf;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.180 192.168.0.182;
option routers 192.168.0.1;
}
host horus {
filename "debian-sun4cdm.img";
hardware ethernet 08:00:20:7d:aa:6b;
fixed-address horus;
}Potom je potrebné vytvoriť záznam v /etc/hosts:
# nano /etc/hosts
127.0.0.1 localhost
192.168.0.171 kali
192.168.0.180 indigo
#192.168.0.181 ultra
192.168.0.181 horusa reštartovať/spustiť službu:
# /etc/init.d/dhcp restartDlho mi bootovanie zo siete nešlo, aj keď som všetko urobil podľa manuálu. OpenBoot neustále vypisoval hlášku Timeout wainting for ARP/RARP packet. Chyba bola v tom, že som RARP server vôbec nepoužil. Server beží na jadre 2.4.24, kde nie je podpora RARP zahrnutá, ale používa sa externý program rarpd. Ten sa konfiguruje súborom /etc/ethers.
# nano -w /etc/ethers
08:00:20:7D:AA:6B
192.168.0.181Tento súbor zaisťuje sekundárny preklad MAC adresy na IP adresu. Prečo, to sa mi nepodarilo zistiť a ani som sa potom o to moc nezaujímal, keď to začalo fungovať, ako má. Som ten typ človeka s mottom: Kým to funguje, tak sa v tom nevŕtaj.
V starších jadrách je potrebné podporu RARP zapnúť v jadre, prípadne skompilovať ju ako modul. Ak sa kompilovať nechystáte, skúste použiť lsmod rarp.
Po nakonfigurovaní /etc/ethers spustíme rarp daemon:
# /etc/init.d/rarpd startTFTP (Trivial Transfer Protocol) zabezpečí prenos img súboru s linuxovým obrazom do inštalovanej stanice. Tu je tiež jedna zvláštna špecialitka: SPARC stanice musia mať img súbor nazvaný v tvare hex-IP.architektúra. To sa dá urobiť aj na Xcalc, ale dá sa to zistiť aj metódou pokus-omyl. Stačí čítať logy. Opíšem postup, ktorý som použil ja:
# nano /etc/conf.d/in.tftp
INTFTPD_PATH="/tftpboot" #adresár s obrazmi
INTFTPD_OPTS="-l -v -s ${INTFTPD_PATH}"
# chmod -cR 777 /tftpbootaby sa dal adresár aj obrazy URČITE prečítať aj napriek Murphymu. Do tohoto adresára si stiahnite obrazy pre tftpboot:
Obidva, aj keď sú odlíšené architektúrou, obsahujú aj 32, aj 64bitové jadro. Tým si zabezpečujú vzájomnú prenositeľnosť.
# mv
/tftpboot/tftpboot.img /tftpboot/debian-sun4cdm.img
# /etc/init.d/in.tftpd startPotom v openboot stanice napíšte
ok boot net
Boot device: /iommu/sbus/ledma@4,8400010/le@4,8c00000 File and args:A ... Nič sa nedeje! Pozrieme si systémový log:
# cat /var/log/syslog|more
..
Apr 14 13:59:13 kali in.tftpd[25586]: RRQ from 192.168.0.181 filename
9EC1CEB5.SUN4M
..Systém sa nám snaží povedať, že TFTP klient (SS4) požaduje súbor 9EC1CEB5.SUN4M, ktorý prirodzene nemáme, čo musíme okamžite korigovať.
# cp
/tftpboot/debian-sun4cdm.img /tftpboot/9EC1CEB5.SUN4M
# chmod -c 777 /tftpboot/9EC1CEB5.SUN4M
# /etc/init.d/in.tftpd restart
# nano /etc/dhcp/dhcpd.conf
..
host horus {
# filename "debian-sun4cdm.img";
# nie je isté, či má nejaký význam,
# prenos image zabezpečuje RARP a TFTP
hardware ethernet 08:00:20:7d:aa:6b;
fixed-address horus; }
#/etc/init.d/dhcp restartOpäť v openBoot zadáme boot net. Tentoraz vypíše niečo, čo nás zohreje pri srdiečku:
ok boot net
Boot device: /iommu/sbus/ledma@4,8400010/le@4,8c00000 File and args:
41130Práve sa do pamäte stanice zavádza linuxový obraz a privíta nás modrá obrazovka inštalátoru.
Počas inštalačného procesu je potrebné vytvoriť partície, minimálne pre koreňový priečinok a pre swap. Niektorým Sunom takáto geometria nestačí a pre kosher chovanie je potrebné vytvoriť tretiu partíciu typu Whole disk (celý disk). V programe fdisk (súčasť inštalátora) odporúčam postupovať takto:
Mali by sme získať takúto partition table:
/dev/sda1 Linux swap swap 80 MB
/dev/sda2 Linux native / 902 MB
/dev/sda3 Whole disk
Tým, že túto tretiu virtuálnu partíciu vytvoríte, nič nepokazíte a aspoň kvôli tomu nebudete musieť opakovať inštaláciu, ak systém z disku nenabootuje. Mne sa to stalo, preto to odporúčam. Navyše partíciu typu Whole disk používa aj Solaris, čím sa stáva nevyhnutnosťou na mašinách, kde z nostalgie rastie aj Solaris.
Čo sa týka veľkosti partícií, swap v našom prípade by mal mať aspoň 160 MB, keďže máme malý disk, radšej dáme 80 MB. Môžete vymeniť disk v SS4 za väčší, ale potom vám openBoot nenatiahne image do pamäte, pretože staršie verzie tohoto PROM monitoru nebootujú (aspoň na SS4) z diskov väčších ako 1 GB a na pridávanie ďalších zariadení nie sú vytvorené predpoklady (na strane SS4, nie u mňa).
Pokračujte ďalej inštalačným programom systémom kurzorové klávesy + Enter. Po jeho ukončení budete vyzvaní k reštartu a potom by mal disk nabootovať nový systém.
Nabudúce si ukážeme upgrade systému na testing z ftp serveru a
nainštalujeme a nakonfigurujeme XFree86 (s jedným-dvoma prekvapeniami)
+ KDE 3.1.5.
tento skript vykoná
* * * * * http://www.krab.cz/posli-mi-info.php
každou minutu
5 * * * * http://www.krab.cz/posli-mi-info.php
každou hodinu, přesně pět minut po celé
7 5 * * * http://www.krab.cz/posli-mi-info.php
v 5:07 každý den
0 2 * * 0 http://www.krab.cz/posli-mi-info.php
v 2:00 každou neděli
0 2 * 3 1 http://www.krab.cz/posli-mi-info.php
v 2:00 každé pondělí v březnu
0 2 4 3 1 http://www.krab.cz/posli-mi-info.php
v 2:00 každé pondělí 4.března (když ten rok nebude 4.března pondělí tak
se nevykoná nic)
Pořadí čísel (hvězdiček)
1. minuta ( 0 - 59 )
2. hodina (0-23, 0 je půlnoc)
3. den v měsíci (1-31)
4. měsíc (1-12)
5. den v týdnu (0 - neděle, 1 - pondělí... 6 - sobota)