---
title: Бүлэг 27. Цуваа холбоонууд
part: хэсэг IV. Сүлжээний Холболт
prev: books/handbook/partiv
next: books/handbook/ppp-and-slip
showBookMenu: true
weight: 32
params:
  path: "/books/handbook/serialcomms/"
---

[[serialcomms]]
= Цуваа холбоонууд
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumoffset: 27
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/serialcomms/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[serial-synopsis]]
== Ерөнхий агуулга

UNIX(R) нь цуваа холбоонуудад зориулсан дэмжлэгтэй үргэлж байсаар ирсэн. Тухайлбал хамгийн анхны UNIX(R) машинууд хэрэглэгчийн оролт болон гаралтын хувьд цуваа шугамууд дээр тулгуурладаг байсан. Дундаж терминал нь секундэд 10 тэмдэгт дамжих цуваа хэвлэгч болон гараас тогтдог байсан тэр үеэс хойш юмс асар их өөрчлөгдсөөр ирсэн юм. Энэ бүлэг нь FreeBSD дээр цуваа холбоонуудыг ашиглах зарим аргуудаас дурдах болно.

Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:

* FreeBSD системд терминалуудыг хэрхэн холбох талаар.
* Алсын хостууд уруу хэрхэн модемоор залгаж холбогдох талаар.
* Алсын хэрэглэгчдийг модемоор FreeBSD систем уруу нэвтрэхийг хэрхэн зөвшөөрөх талаар.
* Цуваа консолоос FreeBSD системийг хэрхэн ачаалах талаар.

Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:

* crossref:kernelconfig[kernelconfig,Шинэ цөмийг хэрхэн тохируулан суулгах] талаар мэдэх.
* crossref:basics[basics,UNIX(R) зөвшөөрлүүд болон процессуудыг] ойлгох.
* FreeBSD дээр ашиглагддаг цуваа тоног төхөөрөмжийн техникийн гарын авлагад хандаж болохоор байх.

[[serial]]
== Танилцуулга

[[serial-terminology]]
=== Ухагдахуунууд

bps::
Bits per Second bps буюу секундэд дамжуулах бит - өгөгдөл дамжих хурд

DTE::
Data Terminal Equipment DTE буюу Өгөгдлийн Терминал Төхөөрөмж - жишээ нь таны компьютер

DCE::
Data Communications Equipment DCE буюу Өгөгдлийн Холбоонуудын Төхөөрөмж - таны модем

RS-232::
Тоног төхөөрөмжийн цуваа холбоонуудад зориулсан андагч стандарт. Одоо TIA-232 гэгддэг.

Холбоонуудын өгөгдлийн хурдны талаар ярихдаа энэ хэсэг "baud" гэсэн ухагдахууныг ашигладаггүй. Baud нь тодорхой хугацаанд хийгдсэн цахилгааны төлвийн шилжилтүүдийн тоог хэлдэг бол bps нь хэрэглэгдэх _зөв_ ойлголт юм.

[[serial-cables-ports]]
=== Кабелиуд болон Портууд

FreeBSD систем уруу модем эсвэл терминалыг холбохын тулд танд компьютер дээр чинь цуваа порт болон өөрийн цуваа төхөөрөмж уруу холбох зөв кабель хэрэгтэй болно. Хэрэв та өөрийн тоног төхөөрөмжтэй болон шаардагдах кабельтай аль хэдийн танил болсон бол энэ хэсгийг айлгүйгээр орхиж болно.

[[term-cables]]
==== Кабелиуд

Хэд хэдэн өөр өөр төрлийн цуваа кабелиуд байдаг. Бидний зорилгод нийцэх хоёр хамгийн нийтлэг төрөл бол null-модем болон стандарт RS-232 кабелиуд юм. Таны тоног төхөөрөмжийн баримт шаардлагатай кабелийн төрлийг тайлбарлах ёстой.

[[term-cables-null]]
===== Null-модем кабелиуд

Null-модем кабель нь "Signal Ground" буюу Газар дохио зэрэг зарим дохионуудыг шууд нэвтрүүлдэг боловч зарим дохионуудыг шилжүүлдэг. Жишээ нь нэг талын "Transmitted Data" буюу Дамжигдсан Өгөгдөл зүү нь нөгөө талын "Received Data" буюу Хүлээн авсан Өгөгдөл зүү уруу ордог.

null-модем кабелийг терминалуудтай ажиллахаар болгож болно. Энэ хүснэгт нь RS-232C <<serialcomms-signal-names,дохионуудын нэрс>> болон DB-25 холбогч дээрх зүүний тоонуудыг харуулж байна. Мөн стандарт нь шууд холбогдох 1-р зүүг 1-р зүү _Protective Ground_ буюу Хамгаалалтын Газар шугам уруу дууддаг боловч энэ нь ихэвчлэн орхигддог. Зарим терминалууд 2, 3 болон 7-р зүүнүүдийг зөвхөн ашиглахад зүгээр ажилладаг бол бусдууд нь доор дурдсан жишээнүүдээс өөр тохиргоонуудыг шаарддаг.

.DB-25-аас DB-25 Null-Модем кабель
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Дохио
<| Зүү #
| 
<| Зүү #
<| Дохио

|SG
|7
|холбогдох
|7
|SG

|TD
|2
|холбогдох
|3
|RD

|RD
|3
|холбогдох
|2
|TD

|RTS
|4
|холбогдох
|5
|CTS

|CTS
|5
|холбогдох
|4
|RTS

|DTR
|20
|холбогдох
|6
|DSR

|DTR
|20
|холбогдох
|8
|DCD

|DSR
|6
|холбогдох
|20
|DTR

|DCD
|8
|холбогдох
|20
|DTR
|===

Дараагийн хоёр хүснэгт нийтлэг байдаг өөр хоёр схемийг үзүүлэв.

.DB-9-өөс DB-9 Null-Модем кабель
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Дохио
<| Зүү #
| 
<| Зүү #
<| Дохио

|RD
|2
|холбогдох
|3
|TD

|TD
|3
|холбогдох
|2
|RD

|DTR
|4
|холбогдох
|6
|DSR

|DTR
|4
|холбогдох
|1
|DCD

|SG
|5
|холбогдох
|5
|SG

|DSR
|6
|холбогдох
|4
|DTR

|DCD
|1
|холбогдох
|4
|DTR

|RTS
|7
|холбогдох
|8
|CTS

|CTS
|8
|холбогдох
|7
|RTS
|===

.DB-9-өөс DB-25 Null-Модем кабель
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Дохио
<| Зүү #
| 
<| Зүү #
<| Дохио

|RD
|2
|холбогдох
|2
|TD

|TD
|3
|холбогдох
|3
|RD

|DTR
|4
|холбогдох
|6
|DSR

|DTR
|4
|холбогдох
|8
|DCD

|SG
|5
|холбогдох
|7
|SG

|DSR
|6
|холбогдох
|20
|DTR

|DCD
|1
|холбогдох
|20
|DTR

|RTS
|7
|холбогдох
|5
|CTS

|CTS
|8
|холбогдох
|4
|RTS
|===

[NOTE]
====
Нэг талд байгаа нэг зүү нь нөгөө талын хос зүү уруу холбогдох бол тэдгээрийн холбогч дээр хос зүүний хооронд нэг богино утсаар болон урт утсаар нөгөө ганц зүү уруу холбон ихэвчлэн шийдсэн байдаг.
====

Дээрх дизайнууд нь хамгийн нийтлэг юм шиг санагддаг. Өөр хувилбарууд дээр SG нь SG уруу, TD нь RD уруу, RTS болон CTS нь DCD уруу, DTR нь DSR уруу болон эсрэгээр холбогддог.

[[term-cables-std]]
===== Стандарт RS-232C кабелиуд

Стандарт цуваа кабель нь RS-232C дохионуудыг бүгдийг нь шууд нэвтрүүлдэг. Өөрөөр хэлбэл кабелийн нэг талын "Transmitted Data" буюу Дамжигдсан Өгөгдөл зүү нь нөгөө талын "Transmitted Data" буюу Дамжигдсан Өгөгдөл зүү уруу ордог. Энэ нь модемийг таны FreeBSD систем уруу болон зарим нэг тохирох терминалиуд уруу холбоход хэрэглэгдэх кабелийн төрөл юм.

[[term-ports]]
==== Портууд

Цуваа портууд нь өгөгдлийг FreeBSD хост компьютер болон терминалын хооронд дамжуулах төхөөрөмжүүд юм. Энэ хэсэг нь ямар төрлийн портууд байдаг болон FreeBSD дээр тэдгээрт хэрхэн ханддагийг тайлбарлах болно.

[[term-portkinds]]
===== Портуудын төрлүүд

Хэд хэдэн төрлийн портууд байдаг. Та кабелийг худалдаж авах юм уу эсвэл хийхээсээ өмнө энэ нь таны терминал болон FreeBSD систем дээрх портуудад таарах эсэхийг шалгах хэрэгтэй.

Ихэнх терминалууд DB-25 портуудтай байдаг. Персонал компьютерууд нь DB-25 эсвэл DB-9 портуудтай байдаг. PC дээрээ олон порттой цуваа карттай бол RJ-12 эсвэл RJ-45 портууд байж болох юм.

Тоног төхөөрөмжтэй цуг ирсэн баримтаас ашиглах портын төрлийн тодорхойлолтыг үзнэ үү. Портыг нүдээрээ харж шалгах нь бас үр дүнгээ өгдөг.

[[term-portnames]]
===== Портын нэрс

FreeBSD дээр цуваа порт бүрт [.filename]#/dev# сан дахь оруулгаар та ханддаг. Хоёр өөр төрлийн оруулга байдаг:

* Call-in буюу дуудагдах портууд нь [.filename]#/dev/ttyuN# гэгддэг бөгөөд _N_ нь тэгээс эхлэх портын дугаар юм. Ерөнхийдөө дуудагдах портыг терминалуудад зориулж ашигладаг. Data carrier detect (DCD) буюу өгөгдлийн зөөгч илрүүлэх дохиог зөв ажиллахыг цуваа шугам батлахыг дуудагдах портууд нь шаарддаг.
* Call-out буюу дуудах портууд нь [.filename]#/dev/cuauN# гэгддэг. Дуудах портуудыг терминалуудад зориулж ихэвчлэн ашигладаггүй, зөвхөн модемуудад зориулж ашигладаг. Цуваа кабель эсвэл терминал нь зөөгчийг илрүүлэх дохиог дэмждэггүй бол дуудах портуудыг ашиглаж болох юм.

Хэрэв терминалыг эхний цуваа порт уруу ([.filename]#COM1#) холбосон бол терминалд хандахдаа [.filename]#/dev/ttyu0# гэж ашиглах болно. Хэрэв терминал нь хоёр дахь цуваа порт дээр байгаа бол ([.filename]#COM2#) [.filename]#/dev/ttyu1# гэх мэтээр ашиглах ёстой.

=== Цөмийн тохиргоо

FreeBSD нь анхдагчаар дөрвөн цуваа портыг дэмждэг. MS-DOS(R)-ийн ертөнцөд эдгээр нь [.filename]#COM1#, [.filename]#COM2#, [.filename]#COM3#, болон [.filename]#COM4# гэгддэг. FreeBSD нь одоогоор BocaBoard 1008 болон 2016 зэрэг "дүлий" олон порттой цуваа интерфэйс картууд болон Digiboard болон Stallion Technologies-ийн хийдэг илүү ухаалаг олон порттой картуудыг дэмждэг. Гэхдээ анхдагч цөм нь зөвхөн стандарт COM портуудыг хайдаг.

Таны цуваа портуудыг таны цөм таньж байгаа эсэхийг харахын тулд цөмийг ачаалж байх үед мэдэгдлүүдийг үзэх хэрэгтэй эсвэл цөмийн ачаалалтын мэдэгдлүүдийг дахин харуулах `/sbin/dmesg` тушаалыг ашиглах хэрэгтэй. `uart` тэмдэгтүүдээр эхэлсэн мэдэгдлүүдийг хайгаарай:

[source,shell]
....
# /sbin/dmesg | grep 'uart'
....

Хэрэв цөм бүх цуваа портуудыг чинь танихгүй байгаа бол [.filename]#/boot/device.hints# файлд тохируулах хэрэгтэй байж болох юм. Байхгүй төхөөрөмжүүдийн хувьд тэдгээр мөрүүдийг тайлбар болгох эсвэл бүрмөсөн арилгаж болох юм.

[NOTE]
====
`IO_COM1 порт` нь `0x3f8` хаяг дээрх портод зориулагдсан орлуулалт юм, `IO_COM2` нь `0x2f8`-ийн `IO_COM3` нь `0x3e8`-ийн `IO_COM4` нь `0x2e8`-ийн орлуулалт юм. Эдгээр хаягууд нь цуваа портуудын нэлээн түгээмэл портын хаягууд бөгөөд 4,3, 5 болон 9 тасалдлууд нь нэлээн түгээмэл тасалдал хүсэх шугамнууд юм. Ердийн цуваа портууд нь ISA-bus бүхий PC-үүд дээр тасалдлуудыг хуваалцаж _чаддаггүйг_ бас санаарай (олон порттой хавтангууд нь өөр дээрээ хавтан дээр бүх 16550A-уудад нэг эсвэл хоёр тасалдал хүсэх шугамуудыг хуваалцахыг зөвшөөрдөг бичил схемүүдтэй байдаг).
====

=== Төхөөрөмжийн Тусгай файлууд

Цөм дэх ихэнх төхөөрөмжүүдэд "төхөөрөмжийн тусгай файлууд"ын тусламжтайгаар ханддаг бөгөөд эдгээр файлууд нь [.filename]#/dev# санд байдаг. [.filename]#sio# төхөөрөмжид [.filename]#/dev/ttyuN# (dial-in буюу гаднаас залгах) болон [.filename]#/dev/cuauN# (call-out буюу дуудах) төхөөрөмжүүдийн тусламжтай ханддаг. FreeBSD нь бас эхлүүлэх төхөөрөмжүүд ([.filename]#/dev/ttyuN.init# болон [.filename]#/dev/cuauN.init#) болон түгжих төхөөрөмжүүдтэй ([.filename]#/dev/ttyuN.lock# болон [.filename]#/dev/cuauN.lock#) байдаг. Эхлүүлэх төхөөрөмжүүд нь урсгалын хяналтдаа `RTS/CTS` дохиоллыг ашигладаг модемийн `crtscts` зэрэг холбооны портын параметрүүдийг порт нээгдэх бүрт эхлүүлж тохируулахад хэрэглэгддэг. Түгжих төхөөрөмжүүд нь хэрэглэгчид болон програмуудын зарим нэг параметрүүдийг өөрчлөхөөс сэргийлэхийн тулд портууд дээр тугуудыг түгжихэд хэрэглэгддэг. Терминалын тохиргоонууд, түгжих болон эхлүүлэх төхөөрөмжүүд болон терминалын тохируулгуудыг тохируулах талаар дэлгэрэнгүй мэдээллийг man:termios[4], man:sio[4], болон man:stty[1] гарын авлагын хуудаснуудаас үзнэ үү.

[[serial-hw-config]]
=== Цуваа портын тохиргоо

[.filename]#ttyuN# (эсвэл [.filename]#cuauN#) төхөөрөмж нь таны өөрийн програмууддаа зориулж нээхийг хүсэх ердийн төхөөрөмж юм. Процесс төхөөрөмжийг онгойлгоход энэ нь терминалын I/O тохиргоонуудын анхдагч олонлогтой байх болно. Та эдгээр тохиргоонуудыг дараах тушаалаар үзэж болно

[source,shell]
....
# stty -a -f /dev/ttyu1
....

Энэ төхөөрөмжид тохиргоонуудыг өөрчлөхөд төхөөрөмжийг хаах хүртэл тохиргоонууд нь идэвхтэй байдаг. Дахин онгойлгоход энэ нь анхдагч тохиргоо уруугаа буцдаг. Анхдагч олонлогт өөрчлөлтүүдийг хийхийн тулд та онгойлгоод "эхний төлөвт" төхөөрөмжийн тохиргоонуудыг тааруулж болно. Жишээ нь [.filename]#ttyu5#-ийн хувьд `CLOCAL` горим, 8 бит холбоо, болон `XON/XOFF` урсгалын хяналтыг идэвхжүүлэхийн тулд доор дурдсаныг бичнэ:

[source,shell]
....
# stty -f /dev/ttyu5.init clocal cs8 ixon ixoff
....

Цуваа төхөөрөмжүүдийн системийн дагуух эхлүүлэлт нь [.filename]#/etc/rc.d/serial# файлаар хянагддаг. Энэ файл нь цуваа төхөрөмжүүдийн анхдагч тохиргоонуудад нөлөөлдөг.

Програм зарим тохиргоонуудыг өөрчлөхөөс сэргийлэхийн тулд "түгжих төлөвт" төхөөрөмжид тохиргоо хийнэ. Жишээ нь [.filename]#ttyu5#-ийн хурдыг 57600 bps болгож түгжихийн тулд доор дурдсаныг бичнэ:

[source,shell]
....
# stty -f /dev/ttyu5.lock 57600
....

Одоо програм [.filename]#ttyu5#-ийг онгойлгож портын хурдыг өөрчлөхийг оролдоход хурд нь 57600 bps-с хөдлөхгүй байх болно.

Эхний төлөвт болон түгжих төлөвт төхөөрөмжүүдийг зөвхөн `root` бүртгэл бичдэгээр болгох хэрэгтэй.

[[term]]
== Терминалууд

Терминалууд нь таныг компьютерийнхаа консол дээр байхгүй үед эсвэл сүлжээнд холбогдоогүй байхад амархан, үнэ хямд аргаар FreeBSD систем уруу хандах боломжийг олгодог. Энэ хэсэг нь терминалуудыг FreeBSD-тэй хэрхэн ашиглах талаар тайлбарлана.

[[term-uses]]
=== Терминалуудын хэрэглээ болон төрлүүд

Анхдагч UNIX(R) системүүдэд консол байгаагүй юм. Харин компьютерийн цуваа портуудад холбогдсон терминалуудаар хүмүүс нэвтрэн ороод програмууд ажиллуулдаг байсан байна.

Цуваа порт дээр нэвтрэх сесс үүсгэх чадвар өнөөгийн бараг бүх UNIX(R) загварын үйлдлийн системд байдаг бөгөөд FreeBSD ч бас үүний нэгэн адил юм. Ашиглагдаагүй байгаа цуваа портод холбогдсон терминалыг ашиглан та нэвтрэн орж дурын текст програмыг консол эсвэл `xterm` цонхонд ажиллуулдаг байсан шигээр ажиллуулж болох юм.

FreeBSD системд олон терминалуудыг холбож болох юм. Хуучин компьютер нь FreeBSD ажиллуулж байгаа илүү хүчтэй компьютерт холбогдсон терминал болж болох юм. Ингэснээр ганц хэрэглэгчийн байсан компьютерийг хүчирхэг олон хэрэглэгчийн систем болгон хувиргаж болох юм.

Энэ хэсэгт FreeBSD-н дэмждэг дүлий терминал, терминал хэлбэрээр ажиллаж байгаа компьютер, болон X терминал гэсэн гурван төрлийн терминалын талаар тайлбарлана.

[[term-dumb]]
==== Дүлий терминалууд

Дүлий терминалууд нь таныг компьютерууд уруу цуваа шугамуудаар холбогдохыг зөвшөөрөх тусгайлсан тоног төхөөрөмж юм. Тэдгээрийг "дүлий" гэдэг бөгөөд тэдгээр нь зөвхөн текст харуулах, илгээх, болон хүлээж авах хангалттай тооцооллын хүчин чадалтай учраас тэр юм. Та тэдгээр дээр ямар ч програм ажиллуулж чадахгүй. Текст засварлагчууд, эмхэтгэгчид, цахим захидал, тоглоомууд гэх зэргүүдийг ажиллуулах хүчин чадал бүхий таны компьютерт тэдгээрийг холбодог.

Бараг бүх төрөл FreeBSD-тэй цуг ажиллана. Зарим нэг өндөр чанартай терминалууд график үзүүлж чаддаг боловч эдгээр дэвшилтэт боломжуудыг зөвхөн цөөн хэдэн програм хангамжийн багцууд ашиглаж чаддаг.

Ажилтнууд нь график програмуудад хандах шаардлагагүй ажлын орчинд дүлий терминалууд нь түгээмэл байдаг.

[[term-pcs]]
==== Терминал маягаар ажиллаж байгаа PC-үүд

Хэрэв <<term-dumb,дүлий терминал>> нь текст харуулах, илгээж хүлээн авах чадвартай байдаг бол ямар ч нөөц персонал компьютер дүлий терминал болж чадна. Танд зөв кабель болон компьютер дээр ажиллах зарим нэг _терминал эмуляц хийх_ програм хангамж хоёр л хэрэгтэй болох юм.

Ийм тохиргоо их ашигтай байдаг. Жишээ нь хэрэв нэг хэрэглэгч FreeBSD системийн консол дээр завгүй ажиллаж байвал өөр хэрэглэгч FreeBSD систем уруу терминал маягаар холбосон арай хүчин чадал багатай персонал компьютер дээрээс зарим нэг текст орчны ажил зэрэг хийж байж болох юм.

FreeBSD-ийн үндсэн системд цуваа холболтоор ажиллахад хэрэглэж болох хамгийн багаар бодоход хоёр хэрэгсэл байдаг: энэ нь man:cu[1] болон man:tip[1] юм.

FreeBSD ажиллаж байгаа клиент систем дээрээс өөр системийн цуваа холболт уруу холбогдохын тулд та дараах тушаалыг ашиглаж болно:

[source,shell]
....
# cu -l serial-port-device
....

Энд байгаа "serial-port-device" нь таны системийн цуваа портод зориулагдсан тусгай төхөөрөмжийн файлын нэр юм. Эдгээр төхөөрөмжийн файлууд нь [.filename]#/dev/cuauN# гэж нэрлэгддэг.

Төхөөрөмжийн "N"-хэсэг нь цуваа портын дугаарыг илэрхийлнэ.

[NOTE]
====
FreeBSD дээр төхөөрөмжийн дугаарууд нь нэгээс биш тэгээс эхэлдэг Энэ нь [.filename]#COM1# гэж нэрлэдэг порт FreeBSD дээр ихэвчлэн [.filename]#/dev/cuau0# гэгддэг.
====

[NOTE]
====
Зарим хүмүүс портын цуглуулгад байдаг өөр програмууд ашиглахыг илүүд үздэг. package:comms/minicom[] зэрэг цөөнгүй хэдэн хэрэгслүүд байдаг.
====

[[term-x]]
==== X терминалууд

X терминалууд нь хамгийн төвөгтэй терминалуудын нэг юм. Цуваа порт уруу холбогдохын оронд тэдгээр нь ихэвчлэн Ethernet зэрэг сүлжээнд холбогддог. Зөвхөн текст орчны програмуудад зориулагдсан биш тэдгээр нь харин X програм үзүүлж чаддаг.

Энэ бүлэг X терминалуудыг суулгах, тохируулах болон тэдгээрийн хэрэглээг _тайлбарлахгүй_.

[[term-config]]
=== Тохиргоо

Энэ хэсэг нь терминал дээр нэвтрэх сесс идэвхжүүлэхийн тулд өөрийн FreeBSD систем дээр таныг юу тохируулах хэрэгтэйг тайлбарлах болно. Энэ нь цуваа порт дэмжихээр өөрийн цөмийг таныг аль хэдийн тохируулсан байгаа гэж үздэг. Цуваа порт уруу терминал холбогдсон бөгөөд таныг тэр терминал уруу холбогдсон байгаа гэж тооцдог.

`init` процесс нь бүх процессийн хяналт болон системийн эхлүүлэх үе дэх эхний тохиргоог хариуцдаг. `init`-ийн хийдэг үйлдлүүдийн нэг нь [.filename]#/etc/ttys# файлыг уншиж байгаа терминалууд дээр `getty` процессийг эхлүүлэх явдал юм. `getty` процесс нь нэвтрэх нэрийг уншиж `login` програмыг ажиллуулахыг хариуцдаг.

FreeBSD системийн хувьд терминалуудыг тохируулахын тулд `root` хэрэглэгчээр дараах алхмуудыг гүйцэтгэх хэрэгтэй:

[.procedure]
====
. [.filename]#/dev# сан дахь оруулгад зориулж [.filename]#/etc/ttys# файлд хэрэв байхгүй бол цуваа портын мөрийг нэмнэ.
. `/usr/libexec/getty` нь порт дээр ажиллахыг зааж [.filename]#/etc/gettytab# файлаас тохирох _getty_ төрлийг тохируулах хэрэгтэй.
. Анхдагч терминалын төрлийг заана.
. Портыг "on" болгоно.
. Порт "secure" байх ёстой эсэхийг заана.
. `init` тушаалаар [.filename]#/etc/ttys# файлыг дахин уншуулна.
====

Нэмэлт алхам болгож хоёрдугаар алхам дээр та өөр _getty_ төрлийг хэрэглээнд зориулан [.filename]#/etc/gettytab#-д оруулан үүсгэж болох юм. Дэлгэрэнгүй мэдээллийг man:gettytab[5] болон man:getty[8] гарын авлагын хуудаснуудаас үзэхийг зөвлөж байна.

[[term-etcttys]]
==== [.filename]#/etc/ttys# уруу оруулгууд нэмэх нь

[.filename]#/etc/ttys# файл нь нэвтрэлтүүдийг зөвшөөрөхийг хүссэн FreeBSD систем дээрх бүх портуудыг жагсаадаг. Жишээ нь эхний виртуал консол [.filename]#ttyv0# нь энэ файлд өөрийн оруулгатай байна. Та энэ оруулгыг ашиглан консол дээр нэвтрэн орж чадна. Энэ файл нь бас бусад виртуал консолууд, цуваа портууд, болон псевдо tty-уудын оруулгуудыг бас агуулдаг. Хатуугаар холбогдсон терминалын хувьд цуваа портын [.filename]#/dev# оруулгыг [.filename]#/dev# хэсэггүйгээр (жишээ нь [.filename]#/dev/ttyv0# нь [.filename]#ttyv0# гэж жагсаагдах болно) жагсаадаг.

Анхдагч FreeBSD суулгац нь [.filename]#/etc/ttys# файлыг эхний дөрвөн цуваа портын дэмжлэгтэйгээр агуулдаг: [.filename]#ttyu0#-с [.filename]#ttyu3# хооронд байна. Терминалыг эдгээр портуудын аль нэгэнд холбож байгаа бол өөр оруулга нэмэх шаардлагагүй юм.

[[ex-etc-ttys]]
.[.filename]#/etc/ttys# уруу терминалын оруулгууд нэмэх нь
[example]
====
Энэ жишээ хоёр терминалыг тохируулна: Wyse-50 болон VT-100 терминалыг эмуляц хийх Procomm терминал програм хангамжийг ажиллуулж байгаа хуучин 286 IBM PC-г терминал маягаар ашиглая. Wyse-ийг хоёр дахь цуваа порт уруу холбож 286-г зургаа дахь цуваа порт уруу холбоё (олон порттой цуваа картын порт). [.filename]#/etc/ttys# файл дахь харгалзах оруулгууд нь иймэрхүү байна:

[.programlisting]
....
ttyu1  "/usr/libexec/getty std.38400"  wy50  on  insecure
ttyu5   "/usr/libexec/getty std.19200"  vt100  on  insecure
....

* Эхний талбар нь ихэвчлэн [.filename]#/dev#-д байгаа терминалын тусгай файлын нэрийг заадаг.

* Хоёр дахь талбар нь энэ мөрийн хувьд ажиллах тушаал бөгөөд ихэвчлэн man:getty[8] байдаг. `getty` нь эхлүүлж шугамыг нээн хурдыг тохируулан хэрэглэгчийн нэрийг асууж man:login[1] програмыг ажиллуулдаг.`getty` програм нь нэг (нэмэлт) параметр _getty_ төрлийг өөрийн тушаалын мөрөнд хүлээн авдаг. _getty_ төрөл нь терминалын шугам дахь bps хурд болон parity зэрэг шинжүүдийг тохируулдаг. `getty` програм нь эдгээр шинжүүдийг [.filename]#/etc/gettytab# файлаас уншдаг.[.filename]#/etc/gettytab# файл нь хуучин болон шинэ терминалын шугамнуудад зориулсан олон мөрүүдийг агуулдаг. Бараг бүх тохиолдолд `std` текстээр эхэлсэн оруулгууд нь hardwired буюу хатуугаар холбогдсон терминалуудын хувьд ажилладаг. Эдгээр оруулгууд нь parity-г орхидог. 110-аас 115200 хүртэл bps хурд болгоны хувьд `std` оруулга байдаг. Мэдээж та өөрийнхөө оруулгыг энэ файлд нэмж болно. man:gettytab[5] гарын авлагын хуудас илүү дэлгэрэнгүй мэдээллийг өгөх болно._getty_ төрлийг [.filename]#/etc/ttys# файлд тохируулахдаа терминал дахь холбооны тохируулгууд таарч байгаа эсэхийг шалгаарай.Бидний жишээн дээр Wyse-50 нь parity ашиглахгүй бөгөөд 38400 bps хурдаар холбогдоно. 286 PC нь parity ашиглахгүй бөгөөд 19200 bps хурдаар холбогдоно.

* Гурав дахь талбар нь тэр tty шугам уруу ихэвчлэн холбогдсон байдаг терминалын төрөл юм. Хэрэглэгч нь бараг л дурын терминалын төрөл эсвэл програм хангамжаар утасдан холбогдож болох учир dial-up портуудын хувьд `unknown` эсвэл `dialup` төрөл энэ талбарт ихэвчлэн ашиглагддаг. Хатуугаар холбогдсон терминалуудын хувьд терминалын төрөл өөрчлөгдөхгүй учраас та энэ талбарт man:termcap[5] мэдээллийн баазаас жинхэнэ терминалын төрлийг тавьж болно.Бидний жишээн дээр Wyse-50 нь жинхэнэ терминалын төрлийг ашиглах бол Procomm ажиллуулж байгаа 286 PC нь VT-100-г эмуляц хийхээр тохируулагдах болно.

* Дөрөв дэх талбар нь порт идэвхтэй байх ёстой эсэхийг заадаг. Энд `on` гэж тавихад `init` процесс хоёр дахь талбар дахь програм `getty`-г ажиллуулах болно. Хэрэв та энэ талбарт `off` гэж тавьбал `getty` үгүй болж порт дээр нэвтрэлт байхгүй болно.

* Сүүлийн талбар нь порт аюулгүй эсэхийг заахад хэрэглэгддэг. Портыг secure буюу аюулгүй болгох нь `root` бүртгэлийг (эсвэл хэрэглэгчийн UID 0 бүхий дурын бүртгэлийг) тэр портоос нэвтрэхийг зөвшөөрч хангалттай итгэнэ гэсэн үг юм. Insecure буюу аюулгүй биш портууд нь `root` нэвтрэлтүүдийг зөвшөөрдөггүй. Insecure буюу аюулгүй биш порт дээр хэрэглэгчид нь эрхгүй бүртгэлүүдээс нэвтрэн орж супер хэрэглэгчийн эрхүүдийг авахын тулд man:su[1] эсвэл өөр төстэй арга замыг ашиглах ёстой юм.Түгжээтэй хаалганы цаана байгаа терминалын хувьд ч гэсэн `insecure` тохируулгыг ашиглах нь хамгийн зөв зүйтэй юм. Хэрэв танд супер хэрэглэгчийн зөвшөөрлүүд хэрэгтэй бол нэвтрэн ороод `su` тушаалыг ашиглах нь их амархан байдаг.
====

[[term-hup]]
==== [.filename]#/etc/ttys#-г `init` тушаалаар дахин уншуулах

[.filename]#/etc/ttys# файлд шаардлагатай өөрчлөлтүүдийг хийсний дараа `init` процесс уруу өөрийн тохиргооных нь файлыг дахин уншуулахын тулд SIGHUP (hangup) дохиог илгээх хэрэгтэй:

[source,shell]
....
# kill -HUP 1
....

[NOTE]
====
`init` нь үргэлж систем дээр ажиллаж байгаа эхний процесс байдаг учир энэ нь үргэлж процесс ID 1-тэй байна.
====

Хэрэв бүгд зөв тохируулагдаж бүх кабелиуд нь байх ёстой газраа байж терминалууд нь ассан байгаа бол терминал бүр дээр `getty` процесс ажиллаж байх ёстой бөгөөд та энэ үед өөрийн терминалууд дээр нэвтрэлт хүлээх мөрүүдийг харах ёстой.

[[term-debug]]
=== Өөрийн холболтод гарсан алдааг олж засварлах нь

Нягт нямбай анхаарал хандуулсан байлаа ч гэсэн терминалыг тохируулж байх явцад алдаа гарч буруутаж болох юм. Энд шинж тэмдгүүдийн жагсаалт болон зарим нэг санал болгосон засваруудыг үзүүлэв.

==== Нэвтрэлт хүлээх мөр гарч ирэхгүй байх

Терминал холбогдсон бөгөөд ассан байгаа эсэхийг шалгана. Энэ нь хэрэв терминал маягаар ажиллаж байгаа персонал компьютер бол зөв цуваа порт дээр терминал эмуляц хийх програм хангамж ажиллуулж байгаа эсэхийг шалгаарай.

Кабель терминал болон FreeBSD компьютерт сайн холбогдсон эсэхийг шалгах хэрэгтэй. Энэ нь зөв төрлийн кабель болохыг баталгаажуулж үзээрэй.

Терминал болон FreeBSD нь bps хурд болон parity тохиргоонууд дээр тохирч байгаа эсэхийг шалгаарай. Хэрэв та видео дэлгэцийн терминалтай бол хар цагаан болон тод байдлын хяналтууд таарсан эсэхийг үзээрэй. Хэрэв энэ нь хэвлэх терминал бол цаас болон бэх сайн эсэхийг шалгаарай.

`getty` процесс ажиллаж терминалд үйлчилж байгаа эсэхийг үзнэ. Жишээ нь ажиллаж байгаа `getty` процессуудын жагсаалтыг `ps` тушаалаар авахын тулд доор дурдсаныг бичнэ:

[source,shell]
....
# ps -axww|grep getty
....

Та терминалын хувьд түүний оруулгыг харах ёстой. Жишээ нь дараах дэлгэц нь `getty` нь хоёр дахь цуваа порт [.filename]#ttyu1# дээр ажиллаж [.filename]#/etc/gettytab# файлд `std.38400` гэсэн оруулгыг ашиглаж байгааг харуулж байна:

[source,shell]
....
22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyu1
....

Хэрэв ямар ч `getty` процесс ажиллахгүй байгаа бол [.filename]#/etc/ttys# файлд та портыг идэвхжүүлсэн эсэхээ шалгаарай. Мөн [.filename]#ttys# файлыг өөрчилснийхөө дараа `kill -HUP 1` тушаалыг ажиллуулахаа мартуузай.

Хэрэв `getty` процесс ажиллаж байгаа боловч терминал нь нэвтрэлт хүлээх мөрийг харуулахгүй байгаа, эсвэл энэ нь хүлээх мөрийг үзүүлж байгаа боловч танд бичихийг зөвшөөрөхгүй байгаа бол таны терминал эсвэл кабель тоног төхөөрөмжийн handshaking буюу харилцан зохицож холбогдох горимыг дэмжихгүй байна гэсэн үг юм. [.filename]#/etc/ttys# файл дахь оруулгыг `std.38400`-с `3wire.38400` уруу болгож үзээрэй ([.filename]#/etc/ttys# файлыг өөрчилснийхөө дараа `kill -HUP 1` тушаалыг ажиллуулахаа мартуузай). `3wire` оруулга нь `std`-тэй төстэй боловч тоног төхөөрөмжийн handshaking хийдэггүй. Магадгүй та хурдыг багасгаж эсвэл `3wire`-г ашиглаж байхдаа буфер дүүрэхээс сэргийлж програм хангамжийн урсгалын хяналтыг идэвхжүүлэх хэрэгтэй байж болох юм.

==== Нэвтрэлт хүлээх мөрийн оронд хог гарч ирвэл

Терминал болон FreeBSD нь bps хурд болон parity тохиргоонууд дээр тохирч байгаа эсэхийг шалгана. Зөв _getty_ төрлийг ашиглаж байгаа эсэхийг баталгаажуулж `getty` процессуудыг шалгах хэрэгтэй. Хэрэв үгүй бол [.filename]#/etc/ttys#-г засварлаж `kill -HUP 1` тушаалыг ажиллуулна.

==== Тэмдэгтүүд хоёр удаа гарах; бичих үед нууц үг гарах

Терминалыг (эсвэл терминал эмуляц хийх програм хангамжийг) "half duplex" эсвэл "local echo" горимоос "full duplex" уруу шилжүүлнэ.

[[dialup]]
== Dial-in буюу гаднаас залгах үйлчилгээ

FreeBSD системийг dial-in буюу гаднаас залгах үйлчилгээнд зориулж тохируулах нь терминалууд холбохтой маш төстэй бөгөөд ялгаатай тал нь та терминалуудын оронд модемуудтай ажиллах юм.

=== Гадаад, Дотоод модемууд

Гадаад модемууд нь dial-up буюу гадагш залгахад илүү тохиромжтой байдаг, учир нь гадаад модемууд нь хувирдаггүй RAM-д хадгалагдах параметрүүдээр хагас тогтмолоор ихэвчлэн тохируулагдсан байж болдог бөгөөд тэдгээр нь ихэвчлэн чухал RS-232 дохионуудын төлөвийг үзүүлдэг гэрлийн заагчтай байдаг. 

Дотоод модемуудад ихэвчлэн хувирдаггүй RAM байдаггүй болохоор тэдгээрийн тохиргоо зөвхөн DIP шилжүүлэгчдийг тохируулснаар хязгаарлагдаж болох юм. Хэрэв таны дотоод модем ямар нэг дохио заагч гэрэлтэй бол системийн гадар байгаа нөхцөлд харахад хүнд байх байсан болов уу.

==== Модемууд болон Кабелууд

Хэрэв та гадаад модем ашиглаж байгаа бол танд мэдээж зөв кабель хэрэгтэй болно. Хэвийн бүх дохионууд холбогдсон байхад стандарт RS-232C цуваа кабель хангалттай байх ёстой:

[[serialcomms-signal-names]]
.Дохионы нэрс
[cols="1,1", frame="none", options="header"]
|===
<| Товчлолууд
<| Нэрс

|RD
|Received Data буюу Хүлээн авсан өгөгдөл

|TD
|Transmitted Data буюу Дамжуулсан өгөгдөл

|DTR
|Data Terminal Ready буюу Өгөгдлийн терминал бэлэн

|DSR
|Data Set Ready буюу Өгөгдлийн олонлог бэлэн

|DCD
|Data Carrier Detect буюу Өгөгдлийн зөөгч илрүүлэх (RS-232-ийн Хүлээн авсан Шугамын Дохио Илрүүлэгч)

|SG
|Signal Ground буюу Дохио газар

|RTS
|Request to Send буюу Илгээх хүсэлт

|CTS
|Clear to Send буюу Илгээхэд цэвэр
|===

2400 bps хурдаас дээш урсгалын хяналтад RTS болон CTS дохионууд FreeBSD-д хэрэгтэй байдаг. Мөн хэзээ дуудлага хүлээн авсан эсвэл шугам таслагдсаныг мэдэх CD дохио болон сесс бүрэн гүйцэд болсны дараа модемийг дахин тохируулах DTR дохионууд хэрэгтэй байдаг. Зарим кабелиуд нь бүх хэрэгцээтэй дохионуудгүйгээр холбогдсон байдаг болохоор шугам таслагдах үед нэвтрэх сесс байхгүй болохгүй байх зэрэг асуудлууд хэрэв танд байгаа бол таны кабель асуудалтай байж болох юм.

Бусад UNIX(R) төст үйлдлийн системүүдийн адил FreeBSD нь хэзээ дуудлагыг хүлээн авсан эсвэл шугам хэзээ таслагдсан болон дуудлагын дараа модемийг тасалж дахин тохируулахыг мэдэх тоног төхөөрөмжийн дохионуудыг ашигладаг. FreeBSD нь модем уруу тушаалуудыг илгээх эсвэл модемоос төлвийн тайлангуудыг харахаас зайлсхийдэг.

=== Цуваа интерфэйсийн эргэцүүллүүд

FreeBSD нь NS8250-, NS16450-, NS16550-, болон NS16550A-дээр тулгуурласан EIA RS-232C (CCITT V.24) холбооны интерфэйсүүдийг дэмждэг. 8250 болон 16450 интерфэйсүүд нь ганц тэмдэгтийн буфертай байдаг. 16550 төхөөрөмж нь системийн ажиллагааг илүү сайн болгох 16 тэмдэгтийн буфертай байдаг. Цэвэр 16550 дахь алдаанууд нь 16 тэмдэгтийн буферийн хэрэглээнээс зайлсхийдэг, тиймээс хэрэв боломжтой бол 16550A-г ашиглаарай. Ганц тэмдэгтийн буфер бүхий төхөөрөмжүүд нь 16 тэмдэгтийн буфер бүхий төхөөрөмжүүдээс илүү ажил үйлдлийн системээс шаарддаг учраас 16550A-дээр тулгуурласан цуваа интерфэйс картуудыг эрхэмлэх нь зүйтэй юм. Хэрэв систем олон идэвхтэй цуваа портуудтай бол эсвэл их ачаалалтай бол 16550A-дээр тулгуурласан картууд нь бага алдааны түвшин бүхий холбоонуудад илүү зохицдог.

=== Түргэн дүгнэлт

Терминалуудтай адил `init` нь гаднаас залгах холболтуудын хувьд тохируулсан цуваа порт бүрийн хувьд `getty` процессийг ажиллуулдаг. Жишээ нь хэрэв модем [.filename]#/dev/ttyu0# уруу залгагдсан бол `ps ax` тушаал ингэж харуулж болох юм:

[source,shell]
....
4850 ??  I      0:00.09 /usr/libexec/getty V19200 ttyu0
....

Хэрэглэгч модемийн шугам залгаад модем холбогдох үед CD (Carrier Detect буюу Зөөгч Илрүүлэгч) шугамыг модем гаргаж харуулна. Цөм зөөгч илрүүлэгдсэнийг мэдэж `getty`-ийн порт нээхийг гүйцээнэ. `getty` нь `login:` хүлээх мөрийг заагдсан эхний шугамын хурдаар илгээдэг. `getty` нь зөвшөөрөгдсөн тэмдэгтүүд хүлээн авагдсан эсэхийг мэдэхийн тулд харж байдаг бөгөөд ердийн тохиргоонд хэрэв энэ нь хог олох юм бол (модемийн холболтын хурд `getty`-ийн хурднаас өөр байгаагаас магадгүй болоод) `getty` нь боломжийн тэмдэгтүүд хүлээж автлаа шугамын хурдуудыг тааруулахыг оролдох болно.

Хэрэглэгч өөрийн нэвтрэх нэрийг оруулсны дараа `getty` тушаал хэрэглэгчийн нууц үгийг асууж нэвтрэлтийг гүйцээн хэрэглэгчийн бүрхүүлийг эхлүүлдэг [.filename]#/usr/bin/login# тушаалыг ажиллуулдаг.

=== Тохиргооны файлууд

[.filename]#/etc# санд гурван системийн тохиргооны файл байдаг бөгөөд өөрийн FreeBSD системд dial-up буюу гадагш залгах боломжийг олгохын тулд та магадгүй засварлах хэрэгтэй болно. Эхний [.filename]#/etc/gettytab# нь [.filename]#/usr/libexec/getty# демоны тохиргооны мэдээллийг агуулдаг. Хоёр дахь [.filename]#/etc/ttys# нь `getty` процессуудын ажиллах [.filename]#tty# төхөөрөмжүүдэд юу байх ёстойг [.filename]#/sbin/init# тушаалд хэлж өгөх мэдээллийг агуулдаг. Сүүлд нь порт эхлүүлэх тушаалуудыг та [.filename]#/etc/rc.d/serial# скриптэд байрлуулж болно.

UNIX(R) дээр dial-up модемуудын талаар санаа бодлын хоёр сургууль байдаг. Нэг бүлэг нь алсын хэрэглэгч ямар ч хурдаар залгасан байсан гэсэн локал компьютераас модемд холбогдсон RS-232 интерфэйс түгжигдсэн хурдаар ажиллахаар өөрсдийн модемууд болон системүүдийг тохируулах дуртай байдаг. Энэ тохиргооны ашигтай тал нь алсын хэрэглэгч системийн нэвтрэлт хүлээх мөрийг үргэлж нэн даруй хардаг явдал юм. Сул тал нь систем хэрэглэгчийн өгөгдлийн жинхэнэ хурдыг мэддэггүй явдал бөгөөд Emacs зэрэг бүрэн дэлгэцийн програмууд нь удаан холболтуудын хувьд хариултыг сайжруулахын тулд өөрийн дэлгэц будах аргуудаа тааруулахгүй байх болно.

Нөгөө нэг сургууль нь өөрсдийн модемуудынхаа RS-232 интерфэйсийн хурдыг алсын компьютерийн холболтын хурд дээр тулгуурлан өөрчилдгөөр тохируулдаг. Жишээ нь модем уруу хийгдэх V.32bis (14.4 Kbps) холболтууд нь модемийг өөрийн RS-232 интерфэйсийг 19.2 Kbps хурдаар ажиллуулах бол 2400 bps холболтууд нь модемийн RS-232 интерфэйсийг 2400 bps хурд дээр ажиллуулдаг. `getty` нь тухайн ямар нэг модемийн холболтын хурдны тайлагналтыг ойлгодоггүй учраас `getty` тушаал нь `login:` мэдэгдлийг эхний хурдан дээр өгдөг бөгөөд хариултаас ирэх тэмдэгтүүдийг харж байдаг. Хэрэв хэрэглэгч хог харвал тэдгээр нь танигдах хүлээх мөрийг хартлаа kbd:[Enter] товчлуурыг дарах ёстой гэдгээ мэдэж байгаа гэж тооцдог. Хэрэв өгөгдлийн хурд таарахгүй бол `getty` нь хэрэглэгчийн бичсэн болгоныг "хог" гэж харах бөгөөд дараагийн хурдыг оролдож `login:` хүлээх мөрийг дахин өгдөг. Энэ процедур дотор муухайрах түвшинд хүртэл үргэлжилж болох боловч хэрэглэгч зөв хүлээх мөрийг харах хүртэл ихэвчлэн ганц хоёр товчлуур даруулдаг. Мэдээж энэ нэвтрэлтийн дараалал нь түрүүчийн "locked-speed буюу түгжигдсэн хурд"тай адил цэвэр байдаггүй боловч бага хурдтай холболтон дээр байх хэрэглэгчийн хувьд бүрэн дэлгэцийн програмуудаас илүү сайн интерактив хариултыг хүлээн авах ёстой юм.

Энэ хэсэг нь тэнцвэртэй тохиргооны мэдээллийг өгөхийг оролдох боловч модемийн өгөгдлийн хурд холболтын хурдыг дагах тал уруу илүү хазайсан байгаа болно.

==== [.filename]#/etc/gettytab#

[.filename]#/etc/gettytab# нь man:getty[8]-ийн тохиргооны мэдээллийн man:termcap[5] загварын файл юм. Файлын хэлбэр болон боломжуудын жагсаалтын тухай бүрэн мэдээллийг man:gettytab[5] гарын авлагын хуудаснаас үзнэ үү.

===== Locked-speed буюу түгжигдсэн хурд тохиргоо

Хэрэв та өөрийн модемийн өгөгдлийн холбоонуудын хурдыг тухайн нэг хурдан дээр түгжиж байгаа бол магадгүй [.filename]#/etc/gettytab# файлд ямар нэг өөрчлөлт хийх шаардлагагүй юм.

===== Matching-speed буюу таарах хурд тохиргоо

Өөрийн модемд зориулж ашиглахыг хүссэн хурдны талаар `getty`-д мэдээлэл өгөхийн тулд [.filename]#/etc/gettytab# файлд та оруулга тохируулах хэрэгтэй болно. Хэрэв та 2400 bps модемтой бол байгаа `D2400` оруулгыг магадгүй ашиглаж болох юм.

[.programlisting]
....
#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
        :nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
        :nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
        :nx=D2400:tc=300-baud:
....

Хэрэв та илүү хурдтай модемтой бол [.filename]#/etc/gettytab# файлд магадгүй оруулга нэмэх хэрэгтэй болж болох юм; энд интерфэйсийн дээд хурд нь 19.2 Kbps бүхий 14.4 Kbps модемд зориулан таны ашиглах оруулга байна:

[.programlisting]
....
#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
        :nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
        :nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
        :nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
        :nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
        :nx=V9600:tc=std.19200:
....

Энэ нь 8 бит, parity байхгүй холболтуудад хүргэнэ.

Дээрх жишээ нь холболтын хурдаа 19.2 Kbps (V.32bis холболтын хувьд) гэж эхлүүлж дараа нь 9600 bps (V.32-ийн хувьд), 2400 bps, 1200 bps, 300 bps, гэж оролдоод 19.2 Kbps хурд уруу буцах болно. Холбооны хурдны тойролт нь `nx=` ("next table" буюу дараагийн хүснэгт) боломжтой цуг хийгдсэн байдаг. Мөр бүр нь өгөгдлийн тухайн хурдны хувьд "стандарт" тохиргоонуудын үлдсэнийг авахын тулд `tc=` ("table continuation" буюу хүснэгтийн үргэлжлэл) оруулгыг ашигладаг.

Хэрэв та 28.8 Kbps модемтой ба/эсвэл та 14.4 Kbps модем дээр шахалтын давуу талыг авахыг хүсвэл 19.2 Kbps-ээс илүү холбооны хурдыг ашиглах хэрэгтэй юм. Энд 57.6 Kbps-ээс эхлэх [.filename]#gettytab# оруулгын жишээ байна:

[.programlisting]
....
#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
        :nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
        :nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
        :nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
        :nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
        :nx=VH9600:tc=std.57600:
....

Хэрэв та удаан CPU-тэй эсвэл ачаалал ихтэй системтэй бөгөөд 16550A дээр тулгуурласан цуваа портуудтай бол 57.6 Kbps хурд дээр та `sio` "silo" гэсэн алдаанууд хүлээн авч болох юм.

[[dialup-ttys]]
==== [.filename]#/etc/ttys#

[.filename]#/etc/ttys# файлын тохиргоо <<ex-etc-ttys>> хэсэгт яригдсан байгаа. Модемуудын тохиргоо төстэй боловч бид өөр терминалын төрлийг заахын тулд `getty` уруу өөр нэмэлт өгөгдлүүдийг дамжуулах ёстой. Түгжигдсэн хурдтай болон таарах хурдтай тохиргоонуудын ерөнхий хэлбэр нь иймэрхүү байна:

[.programlisting]
....
ttyu0   "/usr/libexec/getty xxx"   dialup on
....

Дээрх мөрний эхнийх нь энэ оруулгад зориулсан төхөөрөмжийн тусгай файл юм - [.filename]#ttyu0# нь [.filename]#/dev/ttyu0# гэсэн үг бөгөөд үүнийг `getty` харж байдаг. Хоёр дахь `"/usr/libexec/getty xxx"` (_xxx_ нь эхний [.filename]#gettytab# боломжоор солигдоно) нь энэ төхөөрөмж дээр `init`-ийн ажиллуулах процесс юм. Гурав дахь `dialup` гэдэг нь терминалын анхдагч төрөл юм. Дөрөв дэх параметр `on` гэдэг нь `init`-д шугам ажиллагаатай гэдгийг заана. Тав дахь параметр `secure` байж болох боловч энэ нь зөвхөн физикийн хувьд аюулгүй терминалуудад (системийн консолд) ашиглагдах ёстой юм.

Анхдагч терминалын төрөл нь (дээрх жишээний `dialup`) локал тохируулгуудаас хамаарна. `dialup` нь dial-up шугамууд дээрх уламжлалт терминалын анхдагч төрөл бөгөөд хэрэглэгчид нь өөрсдийн нэвтрэх скриптүүдийг терминал `dialup` байгаа үед мэдэхээр өөрчилж өөрсдийн терминалын төрлийг автоматаар тааруулж болох юм. Гэхдээ зохиогч өөрийн сайт дээр анхдагч терминалын төрлөө `vt102` гэх нь хялбар болохыг олсон бөгөөд хэрэглэгчид өөрсдийн алсын системүүд дээрээ ердөө л VT102 эмуляцыг ашигладаг болохоор тэр юм.

Та [.filename]#/etc/ttys# файлд өөрчлөлтүүд хийснийхээ дараа `init` процессод файлыг дахин уншуулахын тулд HUP дохиог илгээж болох юм. Та дараах тушаалыг ашиглаж 

[source,shell]
....
# kill -HUP 1
....

дохио илгээж болно. Хэрэв та анх удаагаа системийг тохируулж байгаа бол өөрийн модем(үүд)ийг зөв тохируулж `init` уруу дохиолохоос өмнө холбогдох хүртэл хүлээхийг хүсэж болох юм. 

===== Locked-speed буюу түгжигдсэн хурд тохиргоо

Түгжигдсэн хурд тохиргооны хувьд таны [.filename]#ttys# оруулга `getty` уруу өгөгдөх тогтмол хурд бүхий оруулгатай байх хэрэгтэй. Портын хурд нь 19.2 Kbps гэж түгжигдсэн модемийн хувьд [.filename]#ttys# оруулга нь иймэрхүү харагдаж болох юм:

[.programlisting]
....
ttyu0   "/usr/libexec/getty std.19200"   dialup on
....

Хэрэв таны модем өөр хурдан дээр түгжигдсэн бол `std.19200`-ийн оронд `std.speed`-ийн хувьд тохирох утгыг тавьж солиорой. Та [.filename]#/etc/gettytab#-д жагсаагдсан зөв төрлийг ашигласан эсэхээ шалгаарай.

===== Matching-speed буюу таарах хурд тохиргоо

Таарах хурд тохиргоон дээр таны [.filename]#ttys# оруулга нь [.filename]#/etc/gettytab# дахь тохирох зөв "auto-baud" (sic) оруулгаас авах хэрэгтэй болдог. Жишээ нь хэрэв та дээрх санал болгосон оруулгыг 19.2 Kbps-ээс (`V19200` эхлэх цэгийг агуулах [.filename]#gettytab# оруулга) эхлэх таарах хурд бүхий модемийн хувьд нэмсэн бол таны [.filename]#ttys# оруулга иймэрхүү харагдах болно:

[.programlisting]
....
ttyu0   "/usr/libexec/getty V19200"   dialup on
....

==== [.filename]#/etc/rc.d/serial#

V.32, V.32bis, болон V.34 зэрэг өндөр хурдтай модемууд тоног төхөөрөмжийн (`RTS/CTS`) урсгал хяналтыг ашиглах хэрэгтэй. Та модемийн портуудын хувьд FreeBSD цөмд тоног төхөөрөмжийн урсгалын хяналтын тугийг тохируулахын тулд `stty` тушаалуудыг [.filename]#/etc/rc.d/serial# файлд нэмж болно.

Жишээ нь гаднаас залгах болон гадагш залгах эхний төхөөрөмжүүдийн хувьд цуваа порт #1 дээр `crtscts` гэсэн `termios`-ийн тугийг тохируулахын тулд дараах мөрүүдийг [.filename]##/etc/rc.d/serial## файлд нэмж болох юм:

[.programlisting]
....
# Serial port initial configuration
stty -f /dev/ttyu1.init crtscts
stty -f /dev/cuau1.init crtscts
....

=== Модемийн тохиргоонууд

Хэрэв та хувирдаггүй RAM-д параметрүүд нь тогтмолоор тохируулагдсан байж болох модемтой бол параметрүүдийг тохируулахын тулд та терминал програм `tip` гэх мэт) ашиглах хэрэгтэй болно. Эхний хурдтай адил холболтын хурдыг ашиглан модем уруу холбогдохын тулд `getty` нь доор дурдсан шаардлагуудтай таарахын тулд модемийн хувирдаггүй RAM-ийг хэрэглэж тохируулах болно:

* Холбогдох үед CD шалгагдана
* Үйлдлийн хувьд DTR шалгагдана; DTR-ийг хаях нь шугамыг салгаж модемийг дахин тохируулахад хүргэнэ
* CTS нь өгөгдлийн урсгалын хяналтыг дамжуулсан
* XON/XOFF урсгалын хяналтыг хаана
* RTS нь өгөгдлийн урсгалын хяналтыг хүлээн авсан
* Чимээгүй горим (үр дүнгийн кодууд байхгүй)
* Тушаалын цуурай байхгүй

Аль тушаалууд ба/эсвэл DIP шилжүүлэгчийн тохиргоонуудыг та өгөх ёстой болохыг олохын тулд өөрийн модемийн баримтыг уншина уу.

Жишээ нь U.S. Robotics(R) Sportster(R) 14,400 хурдтай гадаад модем дээр дээрх параметрүүдийг тохируулахын тулд эдгээр тушаалуудыг модемд өгч болох юм:

[.programlisting]
....
ATZ
AT&C1&D2&H1&I0&R2&W
....

V.42bis ба/эсвэл MNP5 шахалтыг ашиглах зэрэг модемийн бусад тохиргоонуудыг тааруулахын тулд та бас энэ боломжийг ашиглахыг хүсэж болох юм.

U.S. Robotics(R) Sportster(R) 14,400 хурдтай гадаад модем нь тохируулах хэрэгтэй DIP шилжүүлэгчүүдтэй бас байдаг; бусад модемуудын хувьд та эдгээр тохируулгуудыг жишээ болгон ашиглаж болох юм:

* Шилжүүлэгч 1: ДЭЭШ - DTR Хэвийн
* Шилжүүлэгч 2: N/A буюу Байхгүй (Үр дүнгийн үгэн кодууд/Үр дүнгийн тоон кодууд)
* Шилжүүлэгч 3: ДЭЭШ - Үр дүнгийн дарах/хориглох кодууд
* Шилжүүлэгч 4: ДООШ - Цуурай байхгүй, холбогдоогүй үеийн тушаалууд
* Шилжүүлэгч 5: ДЭЭШ - Автомат хариулна
* Шилжүүлэгч 6: ДЭЭШ - Зөөгч илрүүлэлт хэвийн
* Шилжүүлэгч 7: ДЭЭШ - NVRAM анхдагчуудыг ачаалах
* Шилжүүлэгч 8: N/A буюу Байхгүй (Ухаалаг Горим/Дүлий Горим)

Хэрэв `getty` тушаал нь `login:` хүлээх мөрийг тушаалын горимд байгаа модем уруу андуурч өгсөн бөгөөд модем нь тушаалыг цуурайтуулан буцааж эсвэл үр дүнгийн кодыг буцаахад үүсч болох асуудлуудаас сэргийлэхийн тулд үр дүнгийн кодууд нь dial-up модемуудын хувьд хаагдсан/дарагдсан байх ёстой. Энэ дараалал нь `getty` болон модемийн хооронд сунасан, тэнэг ярианд хүргэж болох юм.

==== Locked-speed буюу түгжигдсэн хурд тохиргоо

Түгжигдсэн хурд тохиргооны хувьд та модемийг холболтын хурдаас хамааралгүйгээр модемоос компьютер хүртэлх өгөгдлийн хурдыг тогтмолоор байлгахаар тохируурах хэрэгтэй. U.S. Robotics(R) Sportster(R) 14,400 хурдтай гадаад модем дээр эдгээр тушаалууд нь модемоос компьютер хүртэлх өгөгдлийн хурдыг тушаалуудыг ажиллуулах хурд дээр түгжих болно:

[.programlisting]
....
ATZ
AT&B1&W
....

==== Matching-speed буюу таарах хурд тохиргоо

Хувьсах хурд тохиргооны хувьд ирж байгаа дуудлагын хурдтай ижил байлгаж өөрийн цуваа портын өгөгдлийн хурдыг тааруулахын тулд та өөрийн модемийг тохируулах хэрэгтэй болно. U.S. Robotics(R) Sportster(R) 14,400 хурдтай гадаад модем дээр эдгээр тушаалууд нь модемийн алдаа засварлах өгөгдлийн хурдыг тушаалуудыг ажиллуулах хурд дээр түгжих боловч цуваа портын хурдыг алдаа засварлахүй холболтуудын хувьд хувьсах байхаар зөвшөөрөх болно:

[.programlisting]
....
ATZ
AT&B2&W
....

==== Модемийн тохиргоог шалгах нь

Ихэнх өндөр хурдтай модемууд нь модемийн тухайн үеийн үйлдлийн параметрүүдийг хүн уншиж болохоор үзүүлэх тушаалуудтай байдаг. U.S. Robotics(R) Sportster(R) 14,400 хурдтай гадаад модемууд дээр `ATI5` тушаал хувирдаггүй RAM-д хадгалагдаж байгаа тохиргоонуудыг харуулдаг. Модемийн үйлдлийн жинхэнэ параметрүүдийг харахын тулд (модемийн DIP шилжүүлэгчийн тохиргоонууд нөлөөлсөн) `ATZ` болон дараа нь `ATI4` тушаалуудыг ашиглана.

Хэрэв та өөр загварын модемтой бол өөрийн модемийн тохиргооны параметрүүдийг хэрхэн давхар шалгах талаар өөрийн модемийн гарын авлагаас шалгаарай.

=== Алдааг олж засварлах нь

Өөрийн систем дээр dial-up модемийг шалгахын тулд таны дагах цөөн хэдэн алхмууд энд байна.

==== FreeBSD системийг шалгах

Өөрийн модемийг өөрийн FreeBSD системд залгаад системээ ачаалах бөгөөд хэрэв таны модем төлөв заах гэрлүүдтэй бол системийн консол дээр `login:` хүлээх мөр гарч ирэх үед модемийн DTR заагч асаж байгаа эсэхийг шалгах хэрэгтэй - хэрэв асаж байгаа бол FreeBSD нь тохирох холболтуудын порт дээр `getty`-г эхлүүлж модемийг дуудлага хүлээж авахыг хүлээж байна гэсэн үг юм.

Хэрэв DTR заагч асахгүй бол FreeBSD систем уруу консолоор нэвтрээд FreeBSD нь зөв порт дээр `getty` процессийг ажиллуулахаар оролдож байгаа эсэхийг харахын тулд `ps ax` тушаалыг ажиллуулна. Та эдгээртэй төстэй мөрүүдийг процессуудын хамтаар харах ёстой:

[source,shell]
....
  114 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu0
  115 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu1
....

Хэрэв та үүнтэй адил өөр:

[source,shell]
....
  114 d0  I      0:00.10 /usr/libexec/getty V19200 ttyu0
....

мөрийг харсан бөгөөд модем нь дуудлага хүлээж авч амжаагүй байгаа бол `getty` нь холболтуудын порт дээр өөрийн онгойлголтыг бүрэн хийж гүйцсэн гэсэн үг юм. Энэ нь кабелийн асуудал эсвэл буруу тохируулсан модемтой холбоотой асуудлыг зааж болох юм. Яагаад гэвэл `getty` нь CD-г (carrier detect буюу зөөгч илрүүлэх) модемоор шалгагдтал холболтуудын портуудыг онгойлгож чадахгүй байх ёстой юм.

Хэрэв та хүссэн [.filename]#ttyuN# портыг онгойлгохыг хүлээж байгаа ямар нэг `getty` процессуудыг харахгүй байгаа бол [.filename]#/etc/ttys# файл дахь өөрийн оруулгуудад алдаа байгаа эсэхийг давхар шалгаарай. Мөн `init` эсвэл `getty` тушаалаас гарсан бүртгэлийн ямар нэг мэдэгдлүүд асуудлууд байгаа эсэхийг мэдээлсэн эсэхийг харахын тулд бүртгэлийн файл [.filename]#/var/log/messages#-г бас шалгаарай. Хэрэв ямар нэг мэдэгдлүүд байгаа бол [.filename]#/etc/ttys# болон [.filename]#/etc/gettytab# тохиргооны файлуудыг гурав дахин шалгаарай. Мөн [.filename]#/dev/ttyuN# зэрэг тохирох төхөөрөмжийн тусгай файлуудад алдаанууд, оруулгууд дутагдаж байгаа эсэх, эсвэл төхөөрөмжийн тусгай файлууд дутагдаж байгаа эсэхийг бас шалгаарай.

==== Гаднаас залгаж үзэх

Систем уруу гаднаас залгаж үзээрэй; 8 битийг parity байхгүйгээр болон алсын систем дээр 1 зогсох битийг ашигласан эсэхээ шалгаарай. Хэрэв та хүлээх мөрийг тэр дор нь хүлээж авахгүй бол эсвэл хог хүлээн авсан бол секунд тутам нэг kbd:[Enter] дараад оролдоод үзээрэй. Тэгсэн ч гэсэн та `login:` хүлээх мөрийг хэсэг хугацаа өнгөрсөн ч гэсэн харахгүй байгаа бол `BREAK` илгээж оролдоод үзээрэй. Та залгахдаа өндөр хурдтай модем ашиглаж байгаа бол модемийн интерфэйсийн хурдыг (жишээ нь U.S. Robotics(R) Sportster(R) модем дээр `AT&B1` тушаал ашиглан) түгжсэнийхээ дараа дахин залгаад оролдоод үзээрэй.

Хэрэв та тэгсэн ч гэсэн `login:` хүлээх мөрийг хүлээн авахгүй байгаа бол [.filename]#/etc/gettytab# файлыг дахин шалгаад доор дурдсаныг давхар шалгаарай

* Шугамын хувьд [.filename]#/etc/ttys# файлд заагдсан боломжийн эхний нэр [.filename]#/etc/gettytab# дахь боломжийн нэртэй таарч байгаа эсэх
* `nx=` оруулга бүр [.filename]#gettytab# боломжийн өөр нэртэй таарч байгаа эсэх
* `tc=` оруулга бүр [.filename]#gettytab# боломжийн өөр нэртэй таарч байгаа эсэх

Хэрэв таныг залгахад FreeBSD систем дээрх модем хариулахгүй байгаа бол DTR шалгагдах үед модем нь утсанд хариулахаар тохируулагдсан эсэхийг шалгаарай. Хэрэв модем зөв тохируулагдсан юм шиг байвал DTR шугам шалгагдсан эсэхийг модемийн заагч гэрлүүдийг (гэрлүүдтэй бол) шалган нягтлаарай.

Хэрэв та бүгдийг хэд хэдэн удаа шалгасан бөгөөд ажиллахгүй хэвээр байгаа бол завсарлага аваад дараа нь үзээрэй. Хэрэв тэгсэн ч гэсэн ажиллахгүй байгаа бол та {freebsd-questions} уруу өөрийн модем болон асуудлынхаа талаар цахим захидал илгээж болох бөгөөд жагсаалтан дахь сайн хүмүүс танд туслахыг оролдох болно.

[[dialout]]
== Dial-out буюу гадагш залгах үйлчилгээ

Дараах нь таны хостыг модемоор өөр компьютер уруу холбох зааврууд юм. Энэ нь алсын хосттой терминал сесс үүсгэхэд тохирох юм.

Хэрэв та PPP дээр асуудалтай байгаа бол Интернэт дэх файлыг авахад энэ төрлийн холболт нь туйлын ашигтай байж болох юм. Хэрэв та ямар нэг зүйл FTP хийх хэрэгтэй бөгөөд PPP эвдэрсэн бол терминал сесс ашиглан FTP хийж болно. Дараа нь түүнийг өөрийн машин уруу дамжуулахын тулд zmodem ашиглана.

[[hayes-unsupported]]
=== Hayes модем ашиглах нь

Энгийн Hayes залгагч `tip`-д цуг бүтээгдсэн байгаа болно. [.filename]#/etc/remote# файлд `at=hayes`-г ашиглаарай.

Hayes драйвер нь шинэ модемуудын дэвшилтэт боломжуудын заримыг таних хэмжээний ухаалаг байдаггүй бөгөөд `BUSY`, `NO DIALTONE`, эсвэл `CONNECT 115200` зэрэг мэдэгдлүүд нь түүнийг самууруулах болно. Та `tip`-ийг хэрэглэхдээ тэдгээр мэдэгдлүүдийг (`ATX0&W`-г ашиглаж) хаах хэрэгтэй.

Бас `tip`-ийн хувьд залгах хугацаа нь 60 секунд байдаг. Таны модем нь үүнээс багыг ашиглах ёстой бөгөөд тэгэхгүй бол tip холбоонд асуудал байна гэж үзэх болно. `ATS7=45&W` гэж үзээрэй.

[[direct-at]]
=== `AT` тушаалуудыг ашиглах нь

Өөрийн [.filename]#/etc/remote# файлдаа "шууд" гэгддэг оруулгыг хийх хэрэгтэй. Жишээ нь хэрэв таны модем эхний цуваа порт [.filename]#/dev/cuau0#-д холбогдсон бол дараах мөрийг тавьна:

[.programlisting]
....
cuau0:dv=/dev/cuau0:br#19200:pa=none
....

`br` боломжид таны модемийн дэмждэг хамгийн их bps хурдыг ашиглаарай. Дараа нь `tip cuau0` гэж бичихэд та өөрийн модемд холбогдох болно.

`root` хэрэглэгчээр `cu`-г дараах маягаар ашиглаарай:

[source,shell]
....
# cu -lline -sspeed
....

_line_ нь цуваа порт (өөрөөр хэлбэл [.filename]#/dev/cuau0#) бөгөөд _speed_ нь хурд (өөрөөр хэлбэл `57600`) юм. Та AT тушаалуудыг оруулж дуусаад гарахын тулд `~.` дарна.

[[gt-failure]]
=== `@` тэмдэг ажиллахгүй байна

Утасны дугаарын боломжийн `@` тэмдэг нь `tip`-ийг [.filename]#/etc/phones# файлаас утасны дугаар хайхыг заадаг. Гэхдээ `@` тэмдэг нь бас [.filename]#/etc/remote# зэрэг боломжийн файлуудын тусгай тэмдэгт юм. Үүнийг урагш ташуу зураас ашиглан оруулж болно:

[.programlisting]
....
pn=\@
....

[[dial-command-line]]
=== Тушаалын мөрнөөс залгах

Өөрийн [.filename]#/etc/remote# файлд "ердийн" гэгддэг оруулгыг оруулна. Жишээ нь:

[.programlisting]
....
tip115200|Dial any phone number at 115200 bps:\
        :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
        :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:
....

Дараа нь та иймэрхүү зүйлс хийж болно:

[source,shell]
....
# tip -115200 5551234
....

Хэрэв та `cu`-г `tip`-ээс илүүд үздэг бол ердийн `cu` оруулгыг ашиглаж:

[.programlisting]
....
cu115200|Use cu to dial any number at 115200bps:\
        :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:
....

дараа нь ингэж бичнэ:

[source,shell]
....
# cu 5551234 -s 115200
....

[[set-bps]]
=== bps хурдыг тохируулах

`tip1200` эсвэл `cu1200`-ийн хувьд оруулгыг хийнэ, гэхдээ `br` боломжтой тохирох ямар ч bps хурдыг ашиглаж болно. `tip` нь боломжийн анхдагч утга бол 1200 bps гэж үздэг. `tip1200` оруулгыг хайдгийн учир нь ийм юм. Гэхдээ та заавал 1200 bps хурдыг ашиглах шаардлагагүй юм.

[[terminal-server]]
=== Би терминал серверээр хэд хэдэн хостууд уруу ханддаг

Та холбогдох хүртлээ хүлээж `CONNECT host` гэж тухай бүрт бичиж байхын оронд `tip`-ийн `cm` боломжийг ашиглаж болно. Жишээ нь [.filename]#/etc/remote# файл дахь эдгээр оруулгууд нь `pain` эсвэл `muffin` хостууд уруу холбогдохын тулд танд `tip pain` эсвэл `tip muffin` гэж бичих боломжийг олгохоос гадна терминал сервер уруу орохын тулд `tip deep13` гэж бичих боломжийг бас олгоно:

[.programlisting]
....
pain|pain.deep13.com|Forrester's machine:\
        :cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
        :cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
        :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:
....

[[tip-multiline]]
=== `tip`-д нэгээс илүү олон мөрийг ашиглах

Энэ нь их сургууль хэд хэдэн модемийн шугамуудтай бөгөөд хэдэн мянган оюутнууд тэдгээрийг ашиглахыг оролдох үед ихэвчлэн гардаг асуудал юм.

Өөрийн их сургуулийн оруулгыг [.filename]#/etc/remote# файлд хийгээд `pn` боломжийн хувьд `@`-ийг ашиглаарай:

[.programlisting]
....
big-university:\
        :pn=\@:tc=dialout
dialout:\
        :dv=/dev/cuau3:br#9600:at=courier:du:pa=none:
....

Дараа нь их сургуулиудын хувьд утасны дугааруудыг [.filename]#/etc/phones# файлд жагсаана:

[.programlisting]
....
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
....

`tip` нь жагсаагдсан дарааллаар утас болгоныг оролдож дараа нь зогсоно. Та оролдлогоо үргэлжлүүлсээр байхын тулд `tip`-ийг while давталтад ажиллуулах хэрэгтэй.

[[multi-controlp]]
=== Хүчлэх тэмдэгтийг хэрэглэх

kbd:[Ctrl+P] нь анхдагч "force буюу хүчлэх" тэмдэгт бөгөөд `tip` тушаалд дараагийн тэмдэгт нь үсгэн өгөгдөл гэдгийг хэлэхэд хэрэглэгддэг. Та хүчлэх тэмдэгтийг дурын тэмдэгт болгон `~s` тушаалаар зааж өгч болно. `~s` тушаал нь "хувьсагчийг тохируулах" гэсэн үг юм.

`~sforce=single-char` гэж бичээд шинэ мөр авах хэрэгтэй. _single-char_ нь дурын ганц тэмдэгт юм. Хэрэв та _single-char_-г орхих юм бол хүчлэх тэмдэгт нь хоосон тэмдэгт болох бөгөөд та үүнийг kbd:[Ctrl+2] эсвэл kbd:[Ctrl+Space] гэж бичин авч болно. _single-char_-ийн хувьд боломжийн утга kbd:[Shift+Ctrl+6] байж болох бөгөөд энэ нь зөвхөн зарим нэг терминал серверүүдийн хувьд ашиглагддаг.

Та хүчлэх тэмдэгтийг өөрийн хүссэнээр [.filename]#$HOME/.tiprc# файлд доор дурдсаныг зааж тохируулж болно:

[.programlisting]
....
force=single-char
....

[[uppercase]]
=== Том үсэг ашиглах

Та эвдэгдсэн caps-lock товчлуур бүхий хэрэглэгчдэд тусгайлан зориулагдсан `tip`-ийн "өсгөх тэмдэгт" болох kbd:[Ctrl+A] хослолыг дарсан байна. Дээр дурдсаны адил `~s` тушаалыг ашиглан `raisechar` хувьсагчийг боломжийн утгаар тохируулах хэрэгтэй. Та үүнийг хүчлэх тэмдэгттэй адилаар тохируулж болох юм. Өөрөөр хэлбэл хэрэв та эдгээр боломжуудын аль нэгийг ашиглах бол ингэж болох юм.

kbd:[Ctrl+2] болон kbd:[Ctrl+A] хослолуудыг байнга бичих хэрэгтэй болдог Emacs хэрэглэгчдэд яг зориулагдсан жишээ [.filename]#.tiprc# файл энд байна:

[.programlisting]
....
force=^^
raisechar=^^
....

`^^` нь kbd:[Shift+Ctrl+6] юм.

[[tip-filetransfer]]
=== `tip` ашиглан файл дамжуулах

Хэрэв та өөр UNIX(R) системтэй харьцаж байвал та `~p` (put буюу тавих) болон `~t` (take буюу авах) тушаалуудыг ашиглан файлуудыг илгээж хүлээн авч болно. Эдгээр тушаалууд нь файлуудыг хүлээн авч илгээхийн тулд алсын систем дээр `cat` болон `echo` тушаалуудыг ажиллуулдаг. Синтакс нь ийм байна:

`~p` local-file [ remote-file ]

`~t` remote-file [ local-file ]

Алдаа шалгалт байдаггүй учраас магадгүй та zmodem-той адил өөр протокол ашиглах хэрэгтэй юм.

[[zmodem-tip]]
=== `tip`-тэй zmodem-ийг ашиглах

Файлуудыг хүлээн авахын тулд алсын машин дээр програмыг илгээж эхэлнэ. Дараа нь тэдгээрийг локалаар хүлээн авч эхлэхийн тулд `~C rz` гэж бичнэ.

Файлуудыг илгээхийн тулд алсын машин дээр програмыг хүлээн авч эхэлнэ. Дараа нь тэдгээрийг алсын систем уруу илгээхийн тулд `~C sz files` гэж бичнэ.

[[serialconsole-setup]]
== Цуваа консолыг тохируулах нь

[[serialconsole-intro]]
=== Танилцуулга

FreeBSD нь цуваа порт дээр консол маягаар ашиглах дүлий терминал бүхий систем дээр ачаалах чадвартай байдаг. Ийм тохиргоо нь хоёр ангиллын хүмүүст ашигтай байх ёстой бөгөөд эдгээр нь гар эсвэл монитор байхгүй машинууд дээр FreeBSD суулгахыг хүссэн системийн администраторууд болон цөм эсвэл төхөөрөмжийн драйверуудыг дибаг хийхийг хүссэн хөгжүүлэгчид юм.

crossref:boot[boot,FreeBSD-ийн Ачаалах процесс]-т тайлбарласнаар FreeBSD нь гурван шаттай эхлүүлэгчийг хэрэглэдэг. Эхний хоёр шат нь ачаалах диск дээрх FreeBSD-ийн зүсмэлийн эхлэл дээр хадгалагддаг ачаалах блокийн кодод байдаг. Ачаалах блок нь ачаалагч дуудагчийг ([.filename]#/boot/loader#) гурав дахь шатны код болгон дуудаж ажиллуулдаг.

Цуваа консолыг тохируулахын тулд та ачаалах блокийн код, ачаалагч дуудах код болон цөмөө тохируулах ёстой болно.

[[serialconsole-howto-fast]]
=== Цуваа консолын тохиргоо, Товч хувилбар

Энэ хэсэг нь таныг анхдагч тохируулга ашиглаж байгаа бөгөөд цуваа консолыг тохируулах хурдан тоймыг авахыг хүсэж байгаа гэж үздэг.

[.procedure]
====

. Цуваа кабелийг [.filename]#COM1# болон хянаж байгаа терминал уруу холбоно.
. Цуваа консол дээр бүх ачаалалтын мэдэгдлүүдийг харахын тулд супер хэрэглэгчээр нэвтэрснийхээ дараа дараах тушаалыг ажиллуулна:
+
[source,shell]
....
# echo 'console="comconsole"' >> /boot/loader.conf
....
+
. [.filename]#/etc/ttys#-г засварлаж [.filename]#ttyu0# оруулгын хувьд `off` гэснийг `on`, `dialup` гэснийг `vt100` болгоно. Ингэхгүй бол цуваа консолоор холбогдоход нууц үг шаардахгүй бөгөөд боломжит аюулгүй байдлын цоорхой үүсгэх юм.
. Өөрчлөлтүүд идэвхтэй болсон эсэхийг харахын тулд системийг дахин ачаална.
====

Хэрэв өөр тохиргоо шаардлагатай бол дараагийн хэсэгт илүү гүнзгий тохиргооны тайлбар байгаа болно.

[[serialconsole-howto]]
=== Цуваа консолын гүнзгий тохиргоо

[.procedure]
====

. Цуваа кабель бэлдэнэ.
+ 
Танд null-модем кабель эсвэл стандарт цуваа кабель болон null-модем хувиргагч хэрэгтэй болно. Цуваа кабелиудын тухай хэлэлцүүлгийг <<serial-cables-ports>> хэсгээс үзнэ үү.
. Гарыг салгана.
+ 
Ихэнх PC системүүд нь Power-On Self-Test (POST) буюу асаах үеийн тестийн үеэр гарыг байгаа эсэхийг шалгадаг бөгөөд гар олдохгүй бол алдаа үүсгэдэг. Зарим машинууд нь гар байхгүйг чангаар мэдээлж залгагдтал нь цааш ачаалдаггүй.
+ 
Хэрэв таны компьютер алдааг мэдээлсэн боловч цааш ачаалах юм бол та ямар нэг тусгай зүйл хийх шаардлагагүй юм.
+ 
Хэрэв таны компьютер гар залгалгүйгээр ачаалахаас татгалзвал энэ алдааг авч үзэлгүйгээр орхихоор болгож та BIOS-оо тохируулах хэрэгтэй болно (хэрэв болдог бол). Үүнийг хэрхэн хийх талаар дэлгэрэнгүйг өөрийн эх хавтангийн гарын авлагаас лавлана уу.
+
[TIP]
======

BIOS-ийн тохиргоон дээр гараа "Not installed" буюу суулгагдаагүй гэж тохируулна. Тэгсэн ч гэсэн та өөрийн гарыг ашиглаж чадах болно. Үүний хийж байгаа зүйл нь BIOS-д асах үед гарыг шалгахгүй гэж хэлж өгч байгаа юм. Таны BIOS гар байхгүй үед гомдоллохгүй байх ёстой. Та энэ тугийг "Not installed" гэж тохируулсан байлаа ч гэсэн гараа залгаатай хэвээр орхиж болох бөгөөд гар ажилласан хэвээр байх болно. Хэрэв дээрх тохиргоо BIOS-д байхгүй бол оронд нь "Halt on Error" тохиргоог хайх хэрэгтэй. Үүнийг "All but Keyboard" гэж эсвэл "No Errors" гэж тохируулах нь ижил үйлчилгээтэй байдаг.
======
+
[NOTE]
======
Хэрэв таны систем PS/2(R) хулганатай бол та бас өөрийн гарны адил хулганаа бас салгах шаардлагатай байж болох юм. Учир нь юу вэ гэвэл PS/2(R) хулгана нь гартай цуг зарим тоног төхөөрөмжийг хуваалцдаг бөгөөд хулганаа залгаатай орхих нь гар шалгагчийг гар байсаар байгаа гэж бодоход хүргэн хуурч болох юм.
======
+
. Дүлий терминалыг [.filename]#COM1# уруу залгана ([.filename]#sio0#).
+ 
Хэрэв танд дүлий терминал байхгүй бол та хуучин компьютер модемийн програмтай цуг, эсвэл өөр UNIX(R) хайрцаг дээр цуваа портыг ашиглаж болох юм. Хэрэв танд [.filename]#COM1# ([.filename]#sio0#) байхгүй бол түүнтэй болох хэрэгтэй. Одоогоор ачаалах блокуудыг дахин эмхэтгэлгүйгээр ачаалах блокуудын хувьд [.filename]#COM1#-с өөр портыг сонгох арга байхгүй. Хэрэв та [.filename]#COM1#-г өөр төхөөрөмжид ашиглаж байгаа бол та тэр төхөөрөмжөө түр зуур салгаад FreeBSD эхлүүлж ажиллуулсныхаа дараа шинэ ачаалах блок болон цөмийг суулгах хэрэгтэй болно.
. Таны цөмийн тохиргооны файлд [.filename]#COM1#-ийн ([.filename]#sio0#) хувьд тохирох тугууд тохируулагдсан эсэхийг шалгаарай.
+ 
Холбоотой тугууд нь:
+
`0x10`:::
Энэ нэгжид зориулан консолын дэмжлэгийг идэвхжүүлнэ. Энэ туг тохируулагдаагүй бол бусад тугууд нь орхигддог. Одоогоор хамгийн ихдээ нэг нэгж консолын дэмжлэгтэй байж болдог; Энэ туг тохируулагдсан эхнийхийг (тохиргооны файлын дарааллаар) эрхэмлэдэг. Энэ тохируулга нь ганцаараа цуваа портыг консол болгодоггүй. Дараах тугийг тохируулах юм уу эсвэл энэ тугтай цуг доор тайлбарласан `-h` тохируулгыг ашиглана.

`0x20`:::
Доор тайлбарласан `-h` тохируулга байгаа эсэхээс үл хамаарч энэ нэгжийг консол болгоно (өөр илүү эрхтэй консол байхгүй тохиолдолд). `0x20` туг нь `0x10` тугтай цуг ашиглагдах ёстой.

`0x40`:::
Энэ нэгжийг (`0x10`-тай цуг) нөөцөлж хэвийн хандалтад энэ нэгжийг байхгүй болгоно. Та энэ тугийг цуваа консол маягаар ашиглахыг хүсэж байгаа цуваа портын нэгждээ тохируулах ёсгүй юм. Энэ тугны цорын ганц хэрэглээ нь алсаас цөмийг дибаг хийхэд нэгжийг зориулах явдал юм. Алсаас дибаг хийх талаар илүү мэдээллийг extref:{developers-handbook}[Хөгжүүлэгчийн Гарын Авлага]ас үзнэ үү.
+ 
Жишээ:
+
[.programlisting]
....
device sio0 flags 0x10
....
+ 
Илүү дэлгэрэнгүйг man:sio[4] гарын авлагын хуудаснаас үзнэ үү.
+ 
Хэрэв тугнууд тохируулагдаагүй бол UserConfig-г (өөр консол дээр) ажиллуулах юм уу эсвэл цөмийг дахин эмхэтгэх хэрэгтэй.
. Ачаалах төхөөрөмж дээр `a` хуваалтын root санд [.filename]#boot.config# файлыг үүсгэнэ.
+ 
Энэ файл нь системийг та хэрхэн ачаалахыг хүсэж байгааг ачаалах блокийн кодод зааварлах болно. Цуваа консолыг идэвхжүүлэхийн тулд танд дараах нэг буюу хэд хэдэн тохируулгууд хэрэгтэй болно-хэрэв та олон тохируулгуудыг хүсэж байгаа бол бүгдийг нэг мөрт оруулах хэрэгтэй:
+
`-h`:::
Дотоод болон цуваа консолуудыг харилцан сольно. Та үүнийг ашиглан консол төхөөрөмжүүдийг сольж шилжүүлж болно. Жишээ нь хэрэв та дотоод (видео) консолоос ачаалах бол ачаалагч дуудагч болон цөмд өөрийн консолын төхөөрөмждөө цуваа портыг ашиглуулахаар чиглүүлэх `-h` тохируулгыг ашиглаж болох юм. Мөн өөрөөр хэрэв та цуваа портоос ачаалах бол ачаалагч дуудагч болон цөмд видео дэлгэцийг консол маягаар харин хэрэглүүлэхийн тулд `-h` тохируулгыг ашиглаж болох юм.

`-D`:::
Ганц болон хоёр консолын тохиргоонуудыг сольно. Ганц тохиргоон дээр дээрх `-h` тохиргооны төлвөөс хамаарч консол нь дотоод консол (видео дэлгэц) байх юм уу эсвэл цуваа порт байх болно. Хоёр консолын тохиргоон дээр видео дэлгэц болон цуваа порт нь хоёулаа `-h` тохиргооны төлвөөс үл хамааран консол болох юм. Гэхдээ хоёр консолын тохиргоо нь зөвхөн ачаалах блок ажиллаж байх үед идэвхтэй байхыг санаарай. Ачаалагч дуудагч хяналтыг авсны дараа `-h` тохируулгаар заагдсан консол нь цорын ганц консол болох юм.

`-P`:::
Ачаалах блокоор гарыг шалгуулна. Хэрэв гар олдоогүй бол `-D` болон `-h` тохируулгууд автоматаар тохируулагдана.
+
[NOTE]
======
Зайны шаардлагаас болоод ачаалах блокуудын одоогийн хувилбарт `-P` тохируулга нь зөвхөн өргөтгөсөн гарнуудыг олох чадвартай байдаг. 101 товчлуураас бага товчлууруудтай (ба F11 болон F12 товчлууруудгүй) гарнууд нь олдохгүй байж болох юм. Зарим нэг зөөврийн компьютерууд дээрх гарнууд нь энэ хязгаарлалтаас болоод зөвөөр олдохгүй байж болох юм. Хэрэв та ийм системтэй бол `-P` тохируулга ашиглахаа болих хэрэгтэй юм. Харамсалтай нь энэ асуудлыг тойрон гарах арга зам байдаггүй.
======
+ 
Консолио автоматаар сонгохын тулд `-P` тохируулгыг ашиглах юм уу эсвэл цуваа консолыг идэвхжүүлэхийн тулд `-h` тохируулгыг ашиглана.
+ 
Та man:boot[8]-д тайлбарласны адил бас бусад тохируулгуудыг оруулж болох юм.
+ 
`-P`-с бусад тохируулгууд нь ачаалагч дуудагчид ([.filename]#/boot/loader#) дамжуулагддаг. Ачаалагч дуудагч нь зөвхөн `-h` тохируулгын төлөвийг шалгаж дотоод видео эсвэл цуваа портын аль нь консол болох ёстойг тодорхойлох болно. Энэ нь хэрэв та [.filename]#/boot.config# файлд `-D` тохируулгыг тохируулаад гэхдээ `-h` тохируулгыг тохируулаагүй бол та цуваа портыг зөвхөн ачаалах блокийн үед консол болгон ашиглаж болно гэсэн үг юм; ачаалагч дуудагч нь дотоод видео дэлгэцийг консол маягаар ашиглах болно.
. Машиныг ачаална.
+ 
Та өөрийн FreeBSD хайрцгийг эхлүүлэх үед ачаалах блокууд нь [.filename]#/boot.config# файлын агуулгуудыг консол уруу гаргаж харуулах болно. Жишээ нь:
+
[source,shell]
....
/boot.config: -P
Keyboard: no
....
+ 
Хоёр дахь мөр нь [.filename]#/boot.config# файлд `-P` тохируулгыг зөвхөн тавьсан тохиолдолд гарах бөгөөд гар байгаа/байхгүйг заадаг. Эдгээр мэдэгдлүүд нь [.filename]#/boot.config# файл дахь тохируулгаас хамаараад цуваа эсвэл дотоод консол уруу, эсвэл хоёулан уруу гардаг.
+
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
<| Тохируулгууд
<| Мэдэгдлүүд гарах газар

|байхгүй
|дотоод консол

|`-h`
|цуваа консол

|`-D`
|цуваа болон дотоод консолууд

|`-Dh`
|цуваа болон дотоод консолууд

|`-P`, гар байна
|дотоод консол

|`-P`, гар байхгүй
|цуваа консол
|===
+ 
Дээрх мэдэгдлүүдийн дараа ачаалах блокууд нь ачаалагч дуудагчийг дуудахаас өмнө болон бусад дараа дараагийн мэдэгдлүүд консол дээр хэвлэгдэхээс өмнө бага хэмжээний завсарлага (пауз) авах болно. Хэвийн нөхцөлд танд ачаалах блокуудыг тасалдуулах хэрэггүй боловч та бүх зүйлс зөв тохируулагдсаныг баталгаажуулахын тулд ингэхийг хүсэж болох юм.
+ 
Ачаалах процессийг тасалдуулахын тулд консол дээр kbd:[Enter]-с өөр дурын товчлуурыг дарах хэрэгтэй. Ачаалах блокууд нь дараа нь танаас дараачийн чинь үйлдлийг асуух болно:
+
[source,shell]
....
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
....
+ 
Дээрх мэдэгдэл цуваа эсвэл дотоод консол дээр эсвэл хоёулан дээр гарч байгаа эсэхийг [.filename]#/boot.config# файлд хийсэн тохируулгуудынхаа дагуу шалгаарай. Хэрэв мэдэгдэл зөв консол дээр гарч байвал ачаалах процессийг үргэлжлүүлэхийн тулд kbd:[Enter] дараарай.
+ 
Хэрэв та цуваа консолыг хүсэж байгаа боловч цуваа терминал дээр хүлээх мөрийг харахгүй байгаа бол таны тохиргоонд ямар нэг зүйл буруу байна. Тэр хооронд та ачаалах блокт (ба дараа нь ачаалагч дуудагч болон цөмд) цуваа портыг консолд зориулан сонгуулахыг хэлэхийн тулд `-h` гэж бичээд kbd:[Enter] эсвэл kbd:[Return] (боломжтой бол) дараарай. Систем ачаалсны дараа юу буруу болсныг буцаж шалгаарай.
====

Ачаалагч дуудагч дуудагдсаны дараа та ачаалах процессийн гурав дахь шатанд байгаа бол ачаалагч дуудагчид зохих орчны хувьсагчуудыг тохируулж дотоод консол болон цуваа консолын хооронд та шилжиж чадсан хэвээр байх болно. <<serialconsole-loader>>-г үзнэ үү.

[[serialconsole-summary]]
=== Дүгнэлт

Энэ хэсэгт хэлэлцсэн төрөл бүрийн тохиргоонуудын дүгнэлт болон эцсийн дүнд консол сонгогдсон тухай мэдээлэл энд байна.

==== Тохиолдол 1: Та [.filename]#sio0#-д зориулж тугуудыг 0x10 болгож тохируулна

[.programlisting]
....
device sio0 flags 0x10
....

[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
<| /boot.config дахь тохируулгууд
<| Ачаалах блокуудын үеийн консол
<| Ачаалагч дуудагчийн үеийн консол
<| Цөм дэх консол

|юу ч байхгүй
|дотоод
|дотоод
|дотоод

|`-h`
|цуваа
|цуваа
|цуваа

|`-D`
|цуваа болон дотоод
|дотоод
|дотоод

|`-Dh`
|цуваа болон дотоод
|цуваа
|цуваа

|`-P`, гар байна
|дотоод
|дотоод
|дотоод

|`-P`, гар байхгүй
|цуваа болон дотоод
|цуваа
|цуваа
|===

==== Тохиолдол 2: Та [.filename]#sio0#-д зориулж тугуудыг 0x30 болгож тохируулна

[.programlisting]
....
device sio0 flags 0x30
....

[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
<| /boot.config дахь тохируулгууд
<| Ачаалах блокуудын үеийн консол
<| Ачаалагч дуудагчийн үеийн консол
<| Цөм дэх консол

|юу ч байхгүй
|дотоод
|дотоод
|цуваа

|`-h`
|цуваа
|цуваа
|цуваа

|`-D`
|цуваа болон дотоод
|дотоод
|цуваа

|`-Dh`
|цуваа болон дотоод
|цуваа
|цуваа

|`-P`, гар байна
|дотоод
|дотоод
|цуваа

|`-P`, гар байхгүй
|цуваа болон дотоод
|цуваа
|цуваа
|===

[[serialconsole-tips]]
=== Цуваа консолд зориулсан зааврууд

==== Цуваа портын хурдыг илүү хурдан болгох

Анхдагчаар цуваа портын тохируулгууд нь 9600 baud, 8 бит, parity байхгүй, ба 1 зогсох бит бүхий байна. Хэрэв та анхдагч консолын хурдыг өөрчлөхийг хүсвэл танд дараах сонголтууд байна:

* Ачаалах блокуудыг консолын шинэ хурд заагдсан `BOOT_COMCONSOLE_SPEED` хувьсагчтай цуг дахин эмхэтгэнэ. Шинэ ачаалах блокуудыг бүтээж суулгах талаар дэлгэрэнгүй заавруудыг <<serialconsole-com2>>-с үзнэ үү.
+ 
Хэрэв цуваа консол нь `-h` тохируулгатайгаар ачаалахаас өөр аргаар тохируулагдсан бол эсвэл цөмийн ашиглаж байгаа цуваа консол нь ачаалах блокуудын ашиглаж байгаагаас өөр бол та дараах тохируулгыг цөмийн тохиргооны файлдаа бас нэмж шинэ цөмөө эмхэтгэх ёстой юм:
+
[.programlisting]
....
options CONSPEED=19200
....

* Цөмийн `-S` ачаалах тохируулгыг ашиглана. `-S` тушаалын мөрийн тохируулга нь [.filename]#/boot.config# файлд нэмэгдэж болно. [.filename]#/boot.config# файлд хэрхэн тохируулгууд нэмэх тухай тайлбар болон дэмжигдсэн тохируулгуудын талаар man:boot[8] гарын авлагын хуудаснаас үзнэ үү.
* Өөрийн [.filename]#/boot/loader.conf# файлд `comconsole_speed` тохируулгыг идэвхжүүлнэ. Энэ тохируулга нь [.filename]#/boot/loader.conf# файлд бас `console`, `boot_serial`, болон `boot_multicons` тохируулагдсан эсэхээс хамаардаг. Цуваа консолын хурдыг өөрчлөх `comconsole_speed` тохируулгын хэрэглээний жишээ энд байна:
+
[.programlisting]
....
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"
....

[[serialconsole-com2]]
==== Консолд зориулж [.filename]#sio0#-с өөр цуваа портыг ашиглах

[.filename]#sio0#-с өөр портыг консолд ашиглах нь зарим нэг дахин эмхэтгэлтийг шаарддаг. Та ямар ч шалтгаанаар байлаа гэсэн өөр цуваа портыг ашиглахыг хүсвэл доор дурдсан шигээр ачаалах блокууд, ачаалагч дуудагч болон цөмийг дахин эмхэтгэх хэрэгтэй.

[.procedure]
====

. Цөмийн эхийг авна. (crossref:cutting-edge[updating-upgrading,FreeBSD-г шинэчилж сайжруулах нь] бүлгийг үзнэ үү)
. [.filename]#/etc/make.conf# файлыг засварлаж `BOOT_COMCONSOLE_PORT` хувьсагчийг ашиглахыг хүсэж байгаа портынхоо хаягаар (0x3F8, 0x2F8, 0x3E8 эсвэл 0x2E8) тохируулна. Зөвхөн [.filename]#sio0#-с [.filename]#sio3# ([.filename]#COM1#-с [.filename]#COM4#) хүртэлх портууд ашиглагдаж болно; олон порттой цуваа картууд ажиллахгүй. Тасалдлын тохируулга шаардлагагүй.
. Тусгайлсан цөмийн тохиргооны файл үүсгээд ашиглахыг хүсэж байгаа портынхоо хувьд тохирох тугуудыг нэмээрэй. Жишээ нь хэрэв та [.filename]#sio1# ([.filename]#COM2#) портыг консол болгохыг хүсэж байгаа бол:
+
[.programlisting]
....
device sio1 flags 0x10
....
+ 
эсвэл
+
[.programlisting]
....
device sio1 flags 0x30
....
+ 
Бусад цуваа портуудын хувьд консолын тугууд тохируулагдах ёсгүй.
. Ачаалах блокууд болон ачаалагч дуудагчийг дахин эмхэтгээд суулгана:
+
[source,shell]
....
# cd /sys/boot
# make clean
# make
# make install
....
+
. Цөмийг дахин бүтээж суулгана.
. Ачаалах блокуудыг ачаалах диск уруу man:bsdlabel[8]-ийн тусламжтай бичээд шинэ цөмөөс ачаална.
====

[[serialconsole-ddb]]
==== Цуваа шугамнаас DDB дибаг хийгч уруу орох

Хэрэв та цуваа консолоос цөмийг дибаг хийгч уруу орохыг хүсвэл (алсаас хийх шинжилгээнд ашиг тустай байдаг боловч хэрэв та цуваа порт дээр алдаатай BREAK үүсгэсэн бол энэ нь аюултай байдаг!) та өөрийн цөмийг дараах тохируулгуудтай эмхэтгэх шаардлагатай:

[.programlisting]
....
options BREAK_TO_DEBUGGER
options DDB
....

==== Цуваа консол дээр нэвтрэлт хүлээх мөр гаргаж авах

Энэ нь шаардлагатай биш боловч та одоо цуваа шугамаар ачаалалтын мэдэгдлүүдийг харж цөмийн дибаг хийх сесс уруу орж чадаж байгаа юм чинь та цуваа шугамаар _нэвтрэлт_ хүлээх мөрийг авахыг хүсэж болох юм. Энд хэрхэн үүнийг хийх талаар байна.

[.filename]#/etc/ttys# файлыг засварлагчаар онгойлгоод дараах мөрүүдийг олно:

[.programlisting]
....
ttyu0 "/usr/libexec/getty std.9600" unknown off secure
ttyu1 "/usr/libexec/getty std.9600" unknown off secure
ttyu2 "/usr/libexec/getty std.9600" unknown off secure
ttyu3 "/usr/libexec/getty std.9600" unknown off secure
....

[.filename]#ttyu0#-с [.filename]#ttyu3# хүртэлх нь [.filename]#COM1#-с [.filename]#COM4# хүртэлхтэй тохирно. Хүссэн порт дээрээ `off` гэснийг `on` болгож өөрчилнө. Хэрэв та цуваа портын хурдыг өөрчилсөн бол тухайн үеийн тохиргоотой тааруулахын тулд `std.9600`-г өөрчлөх хэрэгтэй болно, өөрөөр хэлбэл `std.19200` гэх мэт.

Та бас терминалын төрлийг `unknown` гэдгээс өөрийн цуваа терминалын жинхэнэ төрлөөр солихыг хүсэж болох юм.

Файлыг засварласны дараа та энэ өөрчлөлтийг идэвхжүүлэхийн тулд `kill -HUP 1` хийх ёстой.

[[serialconsole-loader]]
=== Ачаалагч дуудагчаас консолыг өөрчлөх

Өмнөх хэсгүүд нь ачаалах блокуудыг тохируулан цуваа консолыг хэрхэн тохируулах талаар тайлбарлалаа. Энэ хэсэг нь ачаалагч дуудагч дээр зарим нэг тушаалууд болон орчны хувьсагчуудыг оруулж консолыг тохируулах талаар үзүүлэх болно. Ачаалах блокийн дараа ачаалах процессийн гурав дахь шатан дээр ачаалагч дуудагч ажиллах үед ачаалагч дуудагч дахь тохиргоонууд нь ачаалах блок дахь тохиргоонуудыг дарж ажиллах болно.

==== Цуваа консол тохируулах

Та ачаалагч дуудагч болон цөмд цуваа консолыг ашиглуулахын тулд [.filename]#/boot/loader.conf# файлд зөвхөн нэг мөр бичээд амархан зааж өгч болно:

[.programlisting]
....
console="comconsole"
....

Энэ нь өмнөх хэсэгт хэлэлцсэн ачаалах блок дахь тохиргоонуудаас үл хамааран идэвхжих болно.

Та цуваа консол дээр ачаалалтын мэдэгдлүүдийг аль болох эрт харахын тулд дээрх мөрийг [.filename]#/boot/loader.conf# файлынхаа хамгийн эхний мөр болгон оруулах нь зүйтэй юм.

Үүнтэй адилаар та дотоод консолоо ингэж зааж өгч болно:

[.programlisting]
....
console="vidconsole"
....

Хэрэв та ачаалагч дуудагчийн орчны хувьсагч `console`-г тохируулахгүй бол ачаалагч болон дараа нь цөм ачаалах блок дахь `-h` тохируулгаар заагдсан тэр консолыг ашиглах болно.

Консолыг [.filename]#/boot/loader.conf.local# юм уу эсвэл [.filename]#/boot/loader.conf# файлд зааж өгч болно.

Дэлгэрэнгүй мэдээллийг man:loader.conf[5]-с үзнэ үү.

[NOTE]
====
Одоогоор ачаалагч дуудагчид ачаалах блок дахь `-P` тохируулгатай адил тохируулга байдаггүй бөгөөд гар байгаа эсэхээс хамаарч дотоод консол ба цуваа консолыг автоматаар сонгох бэлтгэл байдаггүй юм.
====

==== Консолд зориулж [.filename]#sio0#-с өөр цуваа портыг ашиглах

Та цуваа консолд зориулж [.filename]#sio0#-с өөр цуваа портыг ашиглахын тулд ачаалагч дуудагчийг дахин эмхэтгэх хэрэгтэй. <<serialconsole-com2>> хэсэгт тайлбарласан процедурыг дагаарай.

[[serialconsole-caveats]]
=== Анхаарах зүйлс

Гол санаа нь график тоног төхөөрөмж эсвэл гар залгагдсан байхыг шаарддаггүй тийм зориулагдсан серверүүдийг тохируулах боломжийг хүмүүст зөвшөөрөх явдал юм. AMI BIOS-уудтай машинуудыг график хувиргагч суулгалгүйгээр ачаалдаг болгож тохируулж болдог. Ингэхийн тулд ердөө л CMOS тохиргоон дахь "graphics adapter" тохируулгыг "Not installed" болгож өөрчилнө.

Гэхдээ олон машинууд энэ тохируулгыг дэмждэггүй бөгөөд та систем дээрээ ямар ч дэлгэцийн тоног төхөөрөмж байхгүй бол машин ачаалахаас татгалзах болно. Ийм машинуудад та ямар нэг төрлийн график карт (хогийн хар цагаан хавтан байсан ч гэсэн болно) залгаж орхих хэрэгтэй болох боловч заавал дэлгэц залгах шаардлагагүй юм. Та бас AMI BIOS суулгахыг оролдож болох юм.
