teejuht
1.
|
Sissejuhatus |
2.
|
Raua ühendamine |
3.
|
Serveri konfigureerimine |
4.
|
Terminaliks oleva PC konfigureerimine |
5.
|
Millist riistvara kasutada |
Järgnev jutt püüab anda edasi ühte konkreetset kogemust kuidas kasutada ühte arvutit serverina ja teist terminalina. Teise kohta võiks öelda ka klient, aga täisväärtuslik klient ta ei ole. Niisiis, need kaks arvutit on omavahel ühendatud nn. lihtsa nullmodemi juhtmega (mis see on selgub all pool).
Tulemusena saab kasutada mõlemat arvutit nagu ikka (minu puhul oli mõlemal linux peal aga võrgukaarte ei kasutatud) kusjuures terminali arvutil saab käivitada minicom'i või kermit'i ning peale mõnede asjakohaste käskude andmist ilmub micom'i või kermiti nö. aknasse serveri kiri:
Welcome to Linux 2.0.36
juta!login:
ja saab üle null modemi sisse logida ja asju toimetada serveri kettal ja serveri protsessori ja mäluga!
Kes äkki teab, siis tunne on sama nagu Tartu Ülikooli raamatukogu
koridori terminalide või Füüsikahoone terminalide taga
istudes. Poleks arvanud, et sellest suhtelisest aeglusest millega mc või
pine ette valgub või nii palju rõõmu tunda :)
PC tüüpi arvutitel on päris mitu mulku välismaailmaga suhtlemiseks ja linuxi kernel toetab tavaliselt ühel või teisel määral neid kõiki. Antud juhul kasutatakse mõlemas arvutis nn. teist serial porti. Öeldakse ka 25 pin'ist ehk laia serial porti. Füüsiliselt on see üks pistikupesa (tegelikult küll enamasti papa) arvuti taga hiire oma kõrval. Seal taga on tavaliselt sellised pesad:
Iga peasaga seostatakse katkestus (IRQ) ja IO (input/output) aadresside vahemik
- nn. serial hiire pesa ehk kitsas 9 pin'ine serial port - /dev/ttyS0,
ka /dev/cua0 (IRQ 4, IO: 03f8 - 03ff)
- nn. nullmodemi pesa ehk lai 25 pin'ine serial port - /dev/ttyS1,
ka /dev/cua1 (IRQ3, IO: 02f8 -02ff)
- nn. PS2 hiir 6 pin'ine ja /dev/psaux (IRQ 12)
- paraleelport ehk printeri pesa /dev/lpt0 (osa nullmodemeid käib
ka sinna aga mitte kõnekstulev)
Ja kui arvuti boodib, siis kernel annab enamasti ekraanile ka sellised read (ka käsk dmesg), mis näitab, et ta toetab asja:
tty00 at 0x03f8 (irq = 4) is
a 16550A
tty01 at 0x02f8 (irq = 3) is
a 16550A
Kui neid ei ole, siis vaja kernel kompileerida.
Loodetavasti on need pesad üles leitud ja mõlema arvuti kernelite kohta tähelepanekud tehtud.
Järgmise sammuna tuleb tütarlaps poodi saata ostma nullmodemi kontakte:
laiad 25 pin'ised mammad (aga veenudge ise mis teie olukorras on tarvis, vahest ka papad - kui arvuti on papa, siis juhtmeots peab olema mamma, rigth?)
Nendel pistikutel on jalgadel numbrid juures ning tuleb leida kolm juhtmekiudu
(ei pruugi olla varjestatud) millega ühendada kaks otsa selliselt:
1 arvuti
2 arvuti
|------|
|------|
|
2 -------------- 3 |
|
|
| |
|
3 -------------- 2 |
|
|
| |
|
|
| |
|
7 ------------- 7 |
|
|
| |
|------|
|------|
Jah, joonisel ei ole eksitud: selle kõnelaluse laia serialpordi otsad:
- ühe arvuti 2 teise 3' ga ja
- ühe 3 teise 2'ga ning
- ühe 7 teise 7'ga.
Idee on ühe 'send' ühendada teise 'receive' ga. 7 on nö. 'maa'.
NB! soovitav on üllatuste vältimiseks ärvutite toide võtta samast vargapesast.
Kui juhe on küljes, siis võiks muidugi igaks juhuks proovida kas ikka asi töötab mõne kindla (edasi läheb irooniliseks :) asjaga.
Mul on mingist ajast jäänud DOS'i boot floppy kus on ka Norton Commander peal. Norton Commanderi 'Serial Link' on sobiv vahend. Näiteks avastasin ma, et ühs arvutis vedeles võrgukaart (kuigi ma seda ei kavatsenud antud juhul kasutada) IRQ 3 peal ja kõige lihtsam oli too kaart lihtsalt mujuale tõsta (IRQ 5' le kaardi 'setup.exe'ga) ja sellepärast 'Serial Link' esimese hooga ei läinud tööle! Pärast küll.
Niisiis, kui olete nii kaugel, siis on aeg minna installeerima minicom'i ja kermitit ning konfigureemina serverit (mgetty kasutamine on õige valik).
Tuleks veel tähele panna, et see 3 kiuline juhe võimaldab nn. xon/xoff flow'd ja xon handshake't. Kus seda näidata tuleb välja allpool. Kiirused on 9600 B/s, 38400 B/s, 115200 B/s.
Server on teil tegelikult juba olemas, vaja ainult natuke sättida. Idee seisneb selles et kõikide programmide ema 'init' kasutab oma töös faili '/etc/initab'. Tavaliste terminalidega st. nendega mida saab 'Alt Fx' kombinatsiooniga vahetada on seotud initab'i read:
c1:1235:respawn:/sbin/agetty
38400 tty1 linux
c2:1235:respawn:/sbin/agetty
38400 tty2 linux
c3:1235:respawn:/sbin/agetty
38400 tty3 linux
c4:1235:respawn:/sbin/agetty
38400 tty4 linux
c5:1235:respawn:/sbin/agetty
38400 tty5 linux
c6:12345:respawn:/sbin/agetty
38400 tty6 linux
See, tähendab, iga nn. kohaliku virtual terminali (VT)juures millelt pole veel sisse logitud istub programm '/sbin/agetty' mis oskab sisselogimist korraldada (st. käivitada programmi login). Selles võite veenuda vaadates 'ps wax' iga protsesse tema käsurea peal on veel antud kiirus Baiti/s, VT nimi ja terminali tüüp. Selle asja juures on aga tähelepanuväärne see, et kui logiti sisse, tehti midagi ja logiti välja, siis käivitab init uue getty seda VT'd kuulama, Veenduge vaadates PID'e.
Meie puhul on vaja siia juurde pista selline rida ja selline programm, mis istub /dev/ttyS1 pordi taga ja ootab kuni keegi endast märku annab.
Programm mis sellega (ja paljude muude asjadega: fax, voice ..) hakkama saab on 'mgetty'. Tihti seda ei ole distributsiooniga kaasas vaid tuleb eraldi tõmmata aga mis seal ikka. Olles ta hankinud ja ära kompilleerinud ning installeerinud on teil olemas '/usr/local/sbin/mgetty'. Kompilleerimistest allpool.
ning rida võiks olla selline:
s2:2345:respawn:/usr/local/sbin/mgetty -s 38400 -r ttyS1 linux
-s 38400 on kiirus B/s (võiks ka olla 115200)
- r tähendab, et asi töötab nn. 'direct line' peal,
modemit ei püüta initsialiseerida
- ttyS1 on serial line nimi ilma /dev'ita
- linux on terminali tüüp (võiks ka olla vt100)
mina sain aru, et mgetty ei tahagi '/etc/gettydef' faili kuigi ta oskavat seda kasutada minul ta oli vahepeal olemas, siis aga nimetasin ümber ja käib edasi. Kes tahab proovigu aga peaks ka ilma käima:
VC# B9600 SANE CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S login: #VC
# 38400 fixed baud Dumb Terminal
entry
DT38400# B38400 CS8 CLOCAL
CRTSCTS # B38400 SANE -ISTRIP CLOCAL CRTSCTS #@S login:
# 19200 fixed baud Dumb Terminal
entry
DT19200# B19200 CS8 CLOCAL
# B19200 SANE -ISTRIP CLOCAL #@S login: #DT19200
# 9600 baud Dumb Terminal entry
DT9600# B9600 CS8 CLOCAL #
B9600 SANE -ISTRIP CLOCAL #@S login: #DT9600
# 38400 fixed-baud modem entry
F38400# B38400 CS8 # B38400
SANE -ISTRIP HUPCL #@S login: #F38400
# 19200 fixed-baud modem entry
F19200# B19200 CS8 # B19200
SANE -ISTRIP HUPCL #@S login: #F19200
# 9600 fixed-baud modem entry
F9600# B9600 CS8 # B9600 SANE
-ISTRIP HUPCL #@S login: #F9600
# 38400 autobauding Modem entry
with hard flow control
38400# B38400 CS8 CRTSCTS #
B38400 SANE -ISTRIP HUPCL CRTSCTS #@S login: #9600
9600# B9600 CS8 CRTSCTS # B9600 SANE -ISTRIP HUPCL CRTSCTS #@S login: #2400
2400# B2400 CS8 CRTSCTS # B2400 SANE -ISTRIP HUPCL CRTSCTS #@S login: #1200
1200# B1200 CS8 CRTSCTS # B1200 SANE -ISTRIP HUPCL CRTSCTS #@S login: #300
300# B300 CS8 CRTSCTS # B300
SANE -ISTRIP HUPCL CRTSCTS #@S login: #38400
Ja kui inittab on muudetud, siis on ilmselt abiks anda käsk 'init q' mis loeb uuesti läbi inittabi ja paneb serveri vastavalt käitama.
mgetty kompilleerimine
Minu mgetty oli selline (sunsite.unc.edu'st):
ja peale lahtipakkimist, FAQ'i lugemist sain aru, et tuleb teha 'cp policy.h-dist policy.h' kusjuures policy.h failis tuleks ära muuta üleval nimetatud asjad:
#define DEFAULT_PORTSPEED
38400
#define DATA_FLOW
FLOW_SOFT
seal on veel muidugi tohutult võimalusi, kusjuures 'man mgetty'
ja '/usr/local/etc/mgetty+sendfax/' on veel ühed 'infopesad'.
4. Terminaliks oleva PC konfigureerimine
Seal peab linuxi puhul töötama sarnane kernel nagu serveris ja IRQ peab olema vaba (ma võtsin katsetamise ajaks modemi välja kuna ta on ka nn. '/dev/cua1'.
Mina katsetasin kõigepealt kermit'iga ja seejärel minicom'iga.
kermit
Distributsiooniga seda ei paistnud kaasas olevat ja ma tõmbasin ta Internetist (ckermit'i nime all). Kompileerimine toimus intuatiivselt kaasaoleva jutu põhjal.
käsub olid sellised:
bash # kermit
C-kermit> set line /dev/ttyS1
C-kermit> set speed 38400
C-kermit> set flow xon/xoff
C-kermit> set handshake xon
C-kermit> connect
ja andes paar reavahetust (enne oli server ikka tööl) ilmuski too juta prompt ette.
muidugi saab kermitis ka helpi:
C-kermit> help
C-kermit> set speed ?
C-kermit> exit
Kusjuures töötavast sessioonist saab välja: Ctl - \ , C
(Muide kermitiga saab ka üle TCP/IP õiendada)
minicom
See oli distributsiooniga kaasas aga miks mitte ise tõmmata ja ära kompileerida,vähemalt saab uut dokumentatsiooni uuurida.
Seal on peale käivitamist vaja Ctl -A, Z' ga võtta ette help screen ja edasi 'O', et konfiguratsiooni muuta:
- Filenames ja paths:
Download directory: /home/oolberg
Upload directory: /home/oolberg
- Fileame transfer protocols:
name program
need name Up/Dn FullSrc IO-Red
A zmodem /usr/bin/sz --v Y
U N
Y
D zmodem /usr/bin/rz --v Y
D N
Y
- Serial ports setup:
serial device: /dev/ttyS1
lockfile: /var/lock
baud/pra/bits: 38400 8N1
hardware
flow control: No
software
flow control: Yes
- Save setup as dfl
- Exit
Kokkuvõtteks:
ma proovisin ka minicomiga faile kopeerida, õnnestus
1. logida ennast läbi minicom'i teisse masinasse sisse (muidu,
et saa ta tööle panna kauget 'rz'i)
2. sättida paika filenames ja paths (vt. ülevalt)
3. vaadata transfer protocols üle (vt. ülevalt)
4. Ctl - A, Z, S - send - > zmodem (kõige parem :)
5. sisestage faili nimi soovitavalt pika teega terminali PC kõvakettal
6. progress hakkab jooksma.
Märkusena olgu öeldud, et enne 4. punkti oleks hea panna paar
reavahetust ...
Serveri rollis olev arvuti võiks ikka olla normaalne aga terminaliks kõlbab põhimõtteliselt igasugune PC alatest 286'st.
Terminali arvutil pole sisselogimise seisukohast muud kohustust kui ennast üles bootida ja käivitada minicom või kermit. (Terminali arvuti ei pea ilmtingimata olema linux - võib olla suvaline OS millel on minicomi või kermiti taoline üle serial'i suhelda oskav rakendus - nt. telix). Ma ei tea, aga räägitakse, et linuxit ei saa installida alla 386 MHz, 20 MB HHD ja 4 MB mälu.
Mina kasutasin 64 MB RAM ja > 120 MHz arvuteid :)
Aga kõige põhilisem riistvara mida on ilmselt vaja ise kokku tinutada on null modemi juhe.
Muuseas, ühele tavaliselt PC'e ei saa sel moel üle kahe terminali külge ühendada, küll aga müüakse spetsiaalseid nn. Multiport kaarte (nt. BOCA).
Lõpetuseks saab kätte nullmodemiga ka kiirusi kuni 115200
B/s, selleks tuleb uuta vaid inittabi ja klienti (kermit, minicom). mgetty't
ei pea üle kompileerima.
ggg