Muokataan sivua Sarjaterminaali
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 1: | Rivi 1: | ||
Sarjaterminaali on melko unohdettu laite PC-maailmassa, mutta siitä voi olla hyötyä erikoisemmissa tilanteissa, kuten selvittäessä ongelmia [[X]]:n tai [[kernel|ytimen]] kanssa. | |||
==Johdanto== | ==Johdanto== | ||
===Mikä on | ===Mikä on sarjaterminaali?=== | ||
Sarjaterminaali on fyysinen laite, jossa on näyttö ja näppäimistö, ja se kytkeytyy tietokoneeseen sarjaliitännällä. Nykyään tutumpi käsite lienee terminaali-ikkuna X Window Systemin alla, kuten esimerkiksi [[xterm]]. Sarjaterminaali toimii kuten terminaali-ikkuna: se näyttää tekstiä ja sen kautta voi syöttää tekstiä. Perinteiset sarjaterminaalit eli päätteet eivät ole tietokoneita siinä mielessä, että niissä ei ajeta varsinaisia ohjelmia. Ne toimivat vain käyttöliittymänä oikeaan (keskus)tietokoneeseen. Tietokoneella voidaan emuloida sarjaterminaalia sopivalla ohjelmistolla, esimerkiksi DOSissa pyörivällä Telix:llä tai Windowsin HyperTerminalilla. | |||
===Mitä hyötyä sarjaterminaalista voisi nykyään olla?=== | |||
Jos koneen konsoli lakkaa jostain syystä vastaamasta, esimerkiksi X (graafinen ympäristö) tai koko näytöllä pyörinyt peli kaatuu, näppäimistö ei enää reagoi tai näyttö on täynnä sotkua, sarjaterminaali antaa mahdollisuuden mennä toista kautta koneelle korjaamaan tilanne. Tämän voisi tehdä myös verkon kautta mikäli käytössä on toinen kone ja verkon kautta kirjautuminen on mahdollista (kts. [[ssh]]). | |||
Tilanne on toinen, jos itse [[kernel|ydin]] kaatuu. Kaatuessaan ydin jotain tapahtuneesta ja nämä tiedot olisi tietysti hyvä saada muistiin, mutta koska ydin on jo nurin, ei niiden tallentaminen yleensä onnistu muuten kuin kynällä paperille. Toisaalta lähes aina myös X on ollut käynnissä, joten ilmoitukset eivät edes näy. Kernel voi tulostaa ilmoituksensa myös sarjaporttiin, jolloin ne näkyvät sarjaterminaalissa. Jos sarjaterminaali onkin tavallinen PC, voi terminaaliemulaattorista tallentaa näkymän suoraan tiedostoon. | |||
Paitsi, että ydin voi tulostaa esimerkiksi käynnistymistekstinsä sarjaterminaaliin, myös käynnistyslataimet [[Lilo]] ja [[Grub]] osaavat tarvittaessa käyttää sitä. Monet palvelimiksi tarkoitetut ei-PC koneet tukevat sarjaterminaalia jo käynnistyksen alusta (BIOSista) lähtien. | |||
==Sarjaterminaalin asentaminen== | |||
Paitsi, että ydin voi tulostaa esimerkiksi käynnistymistekstinsä | |||
== | |||
===Ensimmäinen yhteys=== | ===Ensimmäinen yhteys=== | ||
Oletetaan, että | Oletetaan, että sarjaterminaalin virkaa toimittaa vanha PC-kone. Rautavaatimuksina on sarjaportit molemmissa tietokoneissa ja nollamodeemikaapeli. Nollamodeemikaapelin rakennusohjeet löytyvät mm. [http://www.iki.fi/pq/nullmodem.html täältä]. Täysin kytketty kaapeli ei ole välttämätön, GND, TxD ja RxD kytkennöillä eli kolmella johtimella pärjää. | ||
Sarjaterminaalina toimivaan tietokoneeseen tarvitaan käyttöjärjestelmä ja terminaaliemulaattori, joka osaa jutella suoraan sarjaporttiin, esimerkiksi DOS ja Telix. Linux-koneessa, jota kutsutaan lopputekstin ajan palvelimeksi, on tarvittavat ohjelmistot luultavasti jo asennettu. | |||
Kaapeli kiinni ja koneet käyntiin. Käytetään vaikkapa [[agetty]]ä | Kaapeli kiinni ja koneet käyntiin. Käytetään vaikkapa [[agetty]]ä hoitamaan kirjautumiskehote sarjaterminaalille. Jotta saadaan hieno kehote, luodaan palvelimelle tiedosto <tt>/etc/issue.serial</tt> ja kirjoitetaan siihen: | ||
This is \n (\s \m \r) \t | This is \n (\s \m \r) \t | ||
Connected on \l at \b bps | Connected on \l at \b bps | ||
Rivi 32: | Rivi 27: | ||
*<tt>-L</tt> Ei käytetä kantosignaalia, kuten modeemien kanssa, vaan yhteys on aina auki | *<tt>-L</tt> Ei käytetä kantosignaalia, kuten modeemien kanssa, vaan yhteys on aina auki | ||
*<tt>-f /etc/issue.serial</tt> Käytetään edellä kirjoitettua kehotetta. | *<tt>-f /etc/issue.serial</tt> Käytetään edellä kirjoitettua kehotetta. | ||
*<tt>9600</tt> Yhteyden | *<tt>9600</tt> Yhteyden nopeus bittiä sekunnissa (bps). Mahdollisia lukemia ovat mm. 115200, 57600, 38400, 19200, 9600 ja 4800. | ||
*<tt>tts/0</tt> Sarjaportin laitetiedoston nimi ilman | *<tt>tts/0</tt> Sarjaportin laitetiedoston nimi ilman /dev/ -alkua. Esimerkki voisi olla myös ttyS0. | ||
*<tt>ansi</tt> Sarjaporttiin kytketyn | *<tt>ansi</tt> Sarjaporttiin kytketyn terminaalin tyyppi. ansi tarkoittaa, että sarjaterminaali käyttää ANSI-komentoja. | ||
Seuraavaksi | Seuraavaksi sarjaterminaalikoneessa käynnistetään Telix sen asetuksiin asetetaan sama yhteyden nopeus kuin edellä, 8 databittiä, parity none ja stop-bittejä 1. Vuonohjaus pitää olla XON/XOFF (tästä lisää lopuksi) ja terminaaliemulaation tyypiksi pitää laittaa samainen ansi. Enterin painalluksella ruudulle pitäisi valua sisäänkirjautumiskehote. Sisäänkirjautuminen ei tosin onnistu, ellei agettyä ajeta pääkäyttäjän oikeuksin. | ||
Jos | Jos terminaalin ruudulle tulee sotkua, pitää yhteysasetukset tarkistaa. Todennäköisesti yhteyden nopeus ei täsmää. | ||
==Kirjautumiskehote pysyväksi== | |||
Edelläkuvatulla tavalla sarjaterminaalin kautta voi kirjautua kerran, sen jälkeen agetty pitää käynnistää uudelleen. Sama koskee myös virtuaalikonsoliin kirjautumista, joten hoidetaan ongelma samalla tavalla. | |||
Editoidaan tiedostoa /etc/inittab, joka on yksi järjestelmän kriittisimpiä asetustiedostoja. Sieltä löytyy liuta rivejä tyyliin: | |||
c1:12345:respawn:/sbin/agetty 38400 tty1 linux | c1:12345:respawn:/sbin/agetty 38400 tty1 linux | ||
Ne | Ne antavat login-kehotteet virtuaalikonsoleihin. Lisätään perään rivi: | ||
s1:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 tts/0 ansi | |||
Agettyn parametrit ovat samat kuin edellisessä kappaleessa sävelletyt. Tallennetaan ja käsketään | s1:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 tts/0 ansi | ||
telinit q | Agettyn parametrit ovat samat kuin edellisessä kappaleessa sävelletyt. Tallennetaan ja käsketään init:ä lukemaan inittab: | ||
Lisäksi | |||
telinit q | |||
Nyt init pitää huolen | Lisäksi /etc/ioctl.save tiedosto pitää poistaa, kun sarjaterminaalia asennetaan ensimmäistä kertaa. | ||
Nyt init pitää huolen, että sarjaportissa pyörii aina agetty tai joku muu prosessi, jos sieltä on kirjauduttu sisään. Jos sarjaterminaalilta haluaa kirjautua sisään roottina, pitää kyseinen sarjaportti lisätä /etc/securetty tiedostoon. | |||
Jotain kuitenkin vielä puuttuu. | |||
Kernelin viestit | |||
console=ttyS0,9600n8 console=tty0 | Kernelin viestit eivät vielä tule sarjaterminaaliin. Kerneliin pitää olla käännettynä "serial console" tai "console on serial port" tuki. Lisäksi kernelille pitää antaa seuraavat parametrit: | ||
Niillä kerrotaan | |||
console=ttyS0,9600n8 console=tty0 | |||
Vuonohjaus tarkoittaa toimintaa tilanteessa, jossa lähettäjä lähettää dataa nopeammin kuin vastaanottaja ehtii käsitellä. Ilman vuonohjausta dataa hukkuisi. Vuonohjaus voidaan tehdä ohjelmallisesti, jolloin datavirran seassa liikkuu XOFF | Niillä kerrotaan kernelille, että sarjaportissa ttyS0 on sarjaterminaali, ja pitää käyttää nopeutta 9600 bps, parity none ja 8 databittiä. Lisäksi on olemassa toinenkin konsoli, tty0, joka sattuu olemaan ensimmäinen virtuaalikonsoli. Kernelin viestit tulevat siis molempiin. | ||
Lisätietoja | |||
Toinen tapa on käyttää erillisiä johtimia vuonohjaukseen. Näitä RS-232 sarjaportista löytyy kaksi paria: CTS/RTS ja DSR/DTR. | Vuonohjaus | ||
Vuonohjaus tarkoittaa toimintaa tilanteessa, jossa lähettäjä lähettää dataa nopeammin kuin vastaanottaja ehtii käsitellä. Ilman vuonohjausta dataa hukkuisi. Vuonohjaus voidaan tehdä ohjelmallisesti, jolloin datavirran seassa liikkuu XOFF ja XON komentomerkkejä, joilla vastaanottaja pyytää lähettäjää odottamaan ja jatkamaan lähetystä. | |||
Toinen tapa on käyttää erillisiä johtimia vuonohjaukseen. Näitä RS-232 sarjaportista löytyy kaksi paria: CTS/RTS ja DSR/DTR. | |||