4.3.2004

CYGWIN A PCB

Filed under: Linux — nax @ 03:48

Projekt ronja mě začíná pohlcovat čím dál tím víc. Tak třeba dnes když jsem dorazil domů, tak jsem si přečetl nové příspěvky v diskusi k ronje na stránkách czfree a zrovna Ondra Tesař se tam kapku rozčílil na Clocka, autora to ronji, protože software, který Clock vybral pro nakreslení schémat a návrh tišťáků je sice opensource a zadarmo, ale na druhou stranu existuje jen nějaký velmi starý port na windows. Abych mluvil konkrétně, tak se jedná o pcb: printed circuit board editor.

Jelikož Ondra Tesař bydlí jen 2 zastávky tramvaje ode mne a už nějaký ten funkční spoj postavil, rozhodl jsem se, že bych mohl rozchodit ten program pod windowsama (dnes jsem nebyl odpoledne doma, ale u své přítelkyně, která na notebooku má Windows XP). Moje jednoznačná volba padla na cygwin což je projekt zabývající se portováním základních systémových utilit z unixů do windows a už je tak daleko, že si spustíte bash a sice je to pořád vlastně onen příkazový řádek z windows, ale jinak má všechny vlastnosti unixu a dokonce když napíšete kouzelné startx, tak se pustí X server a můžete pouštět i jednoduché grafické aplikace.

Cygwin vlastně emuluje unix na windowsech a dělá to tak dobře, že se portovanými překladači daří i přeložit spoustu věcí po woknama. Už dřív jsem se na tom notesu pokoušel nainstalovat cygwin a to hlavně proto, abych mohl vzdáleně používat grafické aplikace nainstalované u mě doma. Ono totiž stačí aby na počítači běžel X server a vzhledem k architektuře je jedno (tedy po příslušném povolení bezpečnostních záležitostí) je jedno jestli grafická aplikace je puštěna z lokálního počítače nebo na nějakém jiném. Na lokálním X serveru se pak vlastně provádí jen zobrazování toho co přijde přes síť (nebo lépe řečeno přes soket) a samotná aplikace pak může běžet na úplně jiném stroji. Pokud jste na vzdálený počítač připojeni sshčkem, tak není nic jednodušího než při puštění specifikovat přepínač -X a pak automaticky po přihlášení nastaví proměnná prostředí DISPLAY na jméno_počítače_u_kterého_sedíte:0.0 a veškeré připojení v rámci sezení se tunelují přes ssh.

Sám takhle docela často pouštím nějaké grafické aplikace na serveru a nechám si je zobrazovat na svém desktopu. Ale zpět k cygwinu. Tak tedy měl jsem nainstalovanou většinu důležitých balíků, ale tehdy když jsem to instaloval poprvé jsem se hned nechal odradit tím, že po puštění se mi sice vypsala výzva, ale nereagovalo to na žádné mě známé příkazy. Když jsem si nechal vypsat proměnou PATH, tak bylo všechno jasné. Nevím proč, ale zůstali v ní windowsí naprosto bezcenné cesty. Do cygwin/cygwin.bat jsem proto přidal cesty do bin (mohou se uvádět rovnou v unixovém tvaru tak, že root tvoří adresář, který jste zvolili při instalaci.

Jenže tím problémy neskončili. X server nešel pustit. Jen to zařvalo, že nenašel soubor X a že si mám zkontrolovat jestli ho mám v cestě. Nakonec jsem to vyřešil symlinkem vytvořeným z bashe, který reálně vytvoří lnk soubor (ale zkoušel jsem ho vytvořit windowsí cestou, ale nefungovalo to). Udělal jsem to takhle:

$ ln -s /usr/X11R6/bin/XWin.exe /usr/X11R6/bin/X

Pak už to reagovalo na příkaz startx normálně (ještě mi přišlo docela dobré nechat správu oken přímo na windowsech což uděláte tak, že do skriptu startx proměnnou následovně:
defaultserverargs=”-multiwindow”

No a teď jsem se pustil do kompilace toho PCB. Nejdříve jsem neměl nainstalované žádné nástroje ze sekce devel, takže věřte, že bez těhle věcí to asi nepůjde:
autoconf, automake, flux, make, m4, gcc a možná ještě něco. Nejdřív jsem vůbec netušil, že je třeba nainstalovat ten flux a tak to při linkování vždy spadlo s chybou, že nemůže zreferencovat symbol _yywrap. Nakonec po instalaci tetexu (používá se pro překlad dokumentace do ps fajlů) se kompletní kompilace (klasická posloupnost kroků ./configure; make; make install) povedla (stálo mne to asi 4 hodiny času) a pak jsem to i pustil v těch Xech.

ProblĂŠm ale je, Ĺže teď ta instalace cygwinu mĂĄ přes 500MB 🙁

Napadlo mne jiné alternativní řešení jak tenhle program zpřístupnit windows only lidem: prostě upravit nějakou CD bootable distribuci linuxu, tak aby v ní byl ten pcb. Nejdříve mne napadl Knopix, ale zřejmě to nejdříve zkusím rozběhnout na LNX-BBC což je výborná minidistribuce (zaměřená na rescue), která se vejde na jedno miniCD velikosti vizitky (takže já ho nosím mezi doklady).

Ale o tom jak upravím tu distribuci zase někdy jindy. Teď už bych měl asi jít spát, vzhledem k času, který na mě ukazuje xclock.

Comments are closed.

Powered by WordPress