Linux na Sparcu

30. 4. 2002
Doba čtení: 9 minut

Sdílet

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.

Disclaimer

Jak je již zvykem, preventivně předesílám, že následující informace a návody jsou většinou pravdivé a funkční, ale nikdo netvrdí, že cokoli z toho nejde vyřešit jinak, lépe a radostněji. Jsem přeci jenom taková malá blbá johanka, takže pokud máte někdo nějaké vylepšení, upřesnění etc., šup s tím do diskuse.

Abstract

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í :).

Motivace, volba distribuce

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í…:)).

Jak na něj

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.

  • Snad kdykoli, ale zejména při krizových situacích se dá zmáčknout Stop+A. Objeví se vám speciální promptík zvaný OpenBoot prompt, kde můžete zadat třeba „help“ :), „boot“, „boot cdrom/floppy/net“, „halt“, „eject floppy“ a pár dalších užitečných příkazů. To je asi jediný způsob, jak si popovídat se zahryzlým či jinak nekomunikativním Sunem (pochopitelně s výjimkou případů, kdy nefunguje klávesnice :)).
  • Disketa nejde vyndat standardním mechanickým způsobem, protože mechanika nemá žádný čudlík. Musíte buď napsat eject floppy (případně floppy-eject či nějakou podobnou odvozeninu), což lze buď normálně v shellu, nebo ve výše zmíněném OpenBoot promptu, a nebo ji vyšťourat záchrannou dírečkou (jak jistě umíte z CD-ROMek).
  • Myš se občas připojuje nikoli k počítači, ale ze strany ke klávesnici (ta mívá dírky z obou stran, což my leváci oceníme).
  • Co se týče vypínání/zapínání, občas existuje pouze soft poweřítko na klávesnici (pravý horní roh) a jinak nic.

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.

Kudy instalovat

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.
…100× 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á :)).

Balíčky, zdrojáčky…

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:

  • debianí balíček pro Sparc
  • cokoli z úplně normálních zdrojáků (cokoli asi ne, ale všechen víceméně standardní soft, který jsem instalovala pomocí známé trojky ./configure; make; make install;, se nainstaloval naprosto bez problému)
  • pokud si nainstalujete rpm, půjdou vám i rpm balíčky pro Sparc, ale budete muset ručně oveřovat dependence… ano, je to prasárna, ale v případě nutnosti je to pohodlnější, než si to kompilovat/kon­vertovat do debbalíčku :).

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…

Moduly

…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/a­liases 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? :)

Poděkování

BigAdminovi Mirkovi Spoustovi za to, že se z toho málem zbláznil se mnou

bitcoin_skoleni

Pavlovi Machkovi za to, že mi za ostříhání rozchodil síť a že za tohle povídání od něj asi dostanu zápočet :)

Milanovi Fučíkovi za to, že mi svou leností udělat to sám umožnil intimně se sblížit s tak vzrušující technologií :)

Autor článku