- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 07/98

Caldera Netware Server 4.10 Beta (část 1)

Milan Šorm, 8. července 1998

Už několik let sleduji hodně podrobně pokusy vytvořit více či méně dobrý emulátor služeb serveru Novell NetWare pro Linux. Doposud jsem vyzkoušel český lwared i německý mars-nwe, které dokáží poměrně obstojně emulovat bindery databázi a služby NetWaru 3.1x. Nedávno (resp. v červnu) uvolnila Caldera beta verzi svého Caldera NetWare Serveru (CNS), který umí NDS, print server a má být po uživatelské stránce plně kompatibilní s NetWarem 4.10. Za tímto účelem Caldera zaplatila Novellu licence na NDS, jádro NetWaru 4 apod.

Volně šířitelnou variantu CNS pro tři uživatele si může každý sám nainstalovat jak do Caldera OpenLinuxu, tak i do jakékoliv jiné distribuce Linuxu. V tom druhém případě však můžete čekat menší či větší problémy. Současná betaverze je provozovatelná až do 1. října t.r., kdy jí vyprší platnost. To už by ale dávno (Caldera slibuje 24. červenec) měla existovat ostrá verze. Více licencí než 3 si prý bude možno dokupovat od Caldery na CD v obvyklých baleních po 5, 10, 25 a více licencích. O cenách Caldera zatím nepíše nic.

Já jsem se rozhodl nainstalovat CNS na svůj RedHat 5.0 na Pentiu Pro s 64 MB paměti, abych dosáhl odpovídající rychlosti jako s originálním NW serverem (a mohl srovnávat). Původně jsem hodlal použít jádro 2.0.35pre3, ale na stránkách Caldery jsem byl ujištěn, že budu muset jádro opatchovat a patche jsou maximálně pro 2.0.34.

Můj záměr ponechat pro Calderu jen 60 MB se záhy vymstil a bylo nutné zhruba 100 MB (včetně místa pro překlad jádra). A během instalace také neprobíhalo nic hladce, protože jsem si nejprve nevšiml dodávaného souboru INSTALL a zkoušel to rozchodit naslepo. To se mi silně nevyplatilo (nijak jsem např. nepoznal, které patche vlastně potřebuji). Později jsem sáhl po výše uvedeném souboru, ale stále to nebyla procházka růžovým sadem.

První fází bylo přizpůsobit systém (RedHat) Caldeře, tzn. nainstalovat některá RPMka a provést několik zásahů. Tzn. nainstalovat balíček lisa-3.0-8.i386.rpm, SysVinit-scripts-1.02-5.i386.rpm a ipx-1.0-8.i386.rpm, všechno samozřejmě s --nodeps --noscripts --force, protože závislosti v Caldeře jsou značně odlišné oproti RedHatu. Všechny balíčky se dají sehnat na ftp://ftp.caldera.com.

Další fází bylo nainstalovat RPM balíček ncurses-4.1-1.i386.rpm, bez kterého se server odmítl instalovat. To však šlo až tehdy, když jsem zřídil symbolický link /usr/share/termcap ukazující na /usr/lib/termcap. Pak jsem musel zpětně upravit věci v /etc/inittab, /etc/rc.d/ a /etc/sysconfig/, protože nyní odmítaly naopak pracovat originální RedHatí věci. Nebylo to zase tak složité. Podstatný rozdíl byl ten, že balíčkům Caldery se v RedHatu musí na začátek jejich *.init skriptů vložit řádek SUBSYS=název, samozřejmě místo název se napíše název skriptu.

Nyní se dá přikročit k nainstalování balíčků s vlastním serverem, tedy netware-4.10b-20.i386.rpm, netware-sysvol-4.10b-15.i386.rpm a RPM balík pserver-4.10.1-5.i386.rpm. To jde celkem bez problémů, pokud se vám podařilo připodobnit RedHat ke Caldeře pomocí předchozích kroků. Tato část instalace vás vyzve k modifikaci souboru /usr/src/linux/include/sem.h, kde je nutné změnit konstantu SEMMSL z původních 32 na 256. Do konfigurace překladu jádra je nutné zaznamenat podpora pro IPX protokol, která ovšem může být z modulů (tj. <M> The IPX Protocol). Většina souborů CNS je umístěna (po instalaci) v adresáři /opt/netware, /var/opt/netware a /etc/opt/netware.

Soubor /etc/rc.d/init.d/netware, což je hlavní spouštěcí skript pro CNS, je nutné rozšířit o řádky SUBSYS=netware, PROBABLY=goodfin, NETWORKING=yes a SVIlock=/var/lock/subsys/netware. Podobné změny je třeba udělat i v souborech ipx a ipxripd tamtéž. Opět jde o přizpůsobení RedHatu Caldeře.

Nyní přichází na řadu opatchování jádra, které zase neproběhne tak hladce, jak člověk očekává. Vychází se z čistého jádra 2.0.34 (např. ze serveru ftp://ftp.kernel.org nebo od Caldery). Nejprve se aplikuje ipx-patch, který se najde na Caldera FTP site a jmenuje se linux-2.0.34-ipx.patch (obvyklým postupem patch -p0 <linux-*-ipx.patch v adresáři /usr/src). Potom se někam mimo jádro rozbalí soubor streams-1.30.98.tar.gz, ve kterém se spustí ./install.sh 33 (protože streams umí jen jádra po 2.0.33, avšak jede i s 2.0.34 jak jsem si podle návodu vyzkoušel). Tento skriptík aplikuje patch do jádra, neudělá však všechno potřebné. Dalším krokem je nastavit pro překlad jádra podporu Streams (úplně poslední položka menu) a to podporu do modulů (<M>). Po provedení make dep ;make clean je potom nutné přejít do adresáře drivers/streams/LiS/util/linux a přeložit podpůrné programy příkazem make all install. Tyto programy se nainstalují do /usr/sbin. Teď už je možné jádro přeložit, přeložit moduly a obojí nainstalovat obvyklým způsobem. Do výsledného adresáře /lib/modules/2.0.34/misc pak přidáme i moduly z /opt/netware/lib/*.o - moduly užívané CNS, ale nejsou k nim zdrojové texty.

Teď je nutné udělat ze systému anglický systém podobný Caldeře, aby byl CNS schopen zjistit expiration time. To se udělá nastavením LC_ALL=C před spuštěním nwserver v /etc/rc.d/init.d/netware a uděláním symbolického linku z /usr/share/zoneinfo na /usr/lib/zoneinfo. Musí také existovat locale/C v locales, protože jinak se přes hlášení o expiraci nedostanete.

V README streamů je popsán ještě způsob jejich otestování (zajímavé, ale značně nesrozumitelné) a doporučení umístit do /etc/rc.d/rc.local řádek cat /dev/runq &. Jak jsem však zjistil, toto stejně neslouží k ničemu jinému než k vypisování nesmyslů (zdánlivých) na konzolu. Podstatně důležitější je vytvoření dalších speciálních souborů do /dev, což se udělá přeložením make makenodes v drivers/streams/LiS/head/linux a následným ./makenodes tamtéž.

Dále je nutné nastavit IPX subsystém v souboru /etc/sysconfig/ipx podle souboru INSTALL, jde hlavně o číslo IPX sítě apod. Podobně je nutné ještě nastavit parametry v /etc/sysconfig/daemons/ipx a ipxripd a nwclient tamtéž. Do souboru /etc/opt/netware/nwconfig se zapíše jméno serveru.

Než provedeme reboot je ještě vhodné vytvořit do /opt/netware/lib symbolický link ke knihovně libc.so.5. Potom už můžeme provést reset a sledovat výpisy na obrazovce. Chybové výpisy CNS se objevují na VT10 (přístupná přes Alt F10) a v souboru /var/log/netware/ncpslog.

A tady narážím na problém, že mi běží sapd démon i routequeue, ale nwserver mi běžet nehodlá. Vypisuje mi hlášení o Virtual process identifier table a nepracuje. Uvidíme, co mi na toto hlášení poradí v konferenci o CNS a v příštím čísle Linuxových novin se s vámi podělím o zkušenosti z provozu. *


- předchozí článek - následující článek - obsah - úvodní stránka -