Path: blob/main/documentation/content/ja/books/handbook/serialcomms/_index.adoc
18098 views
---
title: 第17ç« ã·ãªã¢ã«éä¿¡
part: ããŒãIV. ãããã¯ãŒã¯éä¿¡
prev: books/handbook/partiv
next: books/handbook/ppp-and-slip
showBookMenu: true
weight: 22
params:
path: "/books/handbook/serialcomms/"
---
[[serialcomms]]
= ã·ãªã¢ã«éä¿¡
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 17
: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 ã¯çŸåšã«è³ããŸã§ãåžžã«ã·ãªã¢ã«éä¿¡æ©èœããµããŒãããŠããŸããã å®éãæ¬åœã«åæã® Unix ãã·ã³ã¯ããŠãŒã¶ãšã®å
¥åºåã«ã·ãªã¢ã«éä¿¡ã䜿ã£ãŠããŸããã 10 æåæ¯ç§ã®ã·ãªã¢ã«ããªã³ã¿ã ããŒããŒãããæ§æããã "端æ«(terminal)" ãåºã䜿ãããŠããåœæãšã¯ã äœãããããã£ããå€ãã£ãŠããŸãããã®ç« ã§ã¯ãFreeBSD ã§ã·ãªã¢ã«éä¿¡ãè¡ãªãããã€ãã®æ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
ãã®ç« ãèªããšã以äžã®ããšãããããŸãã
* FreeBSD ã·ã¹ãã ãžã®ç«¯æ«ã®æ¥ç¶æ¹æ³
* ãªã¢ãŒããã¹ããžãã€ã€ã«ããããã®ã¢ãã ã®äœ¿ãæ¹
* ãªã¢ãŒãã®ãŠãŒã¶ãã¢ãã ã§ã·ã¹ãã ã«ãã°ã€ã³ã§ããããã«ããæ¹æ³
* ã·ãªã¢ã«ã³ã³ãœãŒã«ããã®ã·ã¹ãã èµ·åæ¹æ³
ãã®ç« ãèªãåã«ã以äžã®ããšãè¡ã£ãŠããã¹ãã§ãã
* æ°ããã«ãŒãã«ãæ§æããŠã€ã³ã¹ããŒã«ããæ¹æ³ãèŠãã (crossref:kernelconfig[kernelconfig,FreeBSD ã«ãŒãã«ã®ã³ã³ãã£ã°ã¬ãŒã·ã§ã³])ã
* Unix ã®ããŒããã·ã§ã³ãšããã»ã¹ã«ã€ããŠçè§£ãã (crossref:basics[basics,UNIX ã®åºç€ç¥è])ã
* FreeBSD ã§äœ¿ãããšããŠããã·ãªã¢ã«ããŒããŠã§ã¢ (ã¢ãã ãŸãã¯ãã«ãããŒãã«ãŒã) ã®ãã¯ãã«ã«ããã¥ã¢ã«ãèªããããã«ããã
[[serial]]
== ã¯ããã«
[[serial-terminology]]
=== çšèªè§£èª¬
bps::
Bits per Second ã®ç¥ã§ã ããŒã¿ã®è»¢éé床ã衚ãåäœã
DTE::
Data Terminal Equipment ã®ç¥ã ããšãã°ã³ã³ãã¥ãŒã¿æ¬äœã®ããš
DCE::
Data Communications Equipment ã®ç¥ã§ãå
·äœçã«ã¯ã¢ãã ã®ããšã
RS-232::
EIA (ç±³é»æ°ç£æ¥åäŒ) ã®ããŒããŠã§ã¢ã·ãªã¢ã«éä¿¡ã®æšæºèŠæ Œ
éä¿¡ã«ãããããŒã¿è»¢éé床ã«é¢ããŠã ãã®ã»ã¯ã·ã§ã³ã§ã¯ "ããŒ" (baud) ãšããçšèªã¯äœ¿ããŸããã ããŒãšããã®ã¯äžå®æéã«çããã黿°çç¶æ
ã®å€åã®æ°ã衚ãã«ãããã "bps" (bits per second) ãšããåäœã®æ¹ã__æ£ãã__ããã§ã (å°ãªããšãããããã衚çŸãããŠããã°ã æå°ã®æªãäººã«æãããããšããªãã®ã§ã¯ãªãããšæããŸã)ã
[[serial-cables-ports]]
=== ã±ãŒãã«ãšããŒã
ã¢ãã ãŸãã¯ã·ãªã¢ã«ç«¯æ«ã FreeBSD ã·ã¹ãã ã«æ¥ç¶ããããã«ã¯ã ã³ã³ãã¥ãŒã¿äžã®ã·ãªã¢ã«ããŒããšã ã·ãªã¢ã«ããã€ã¹ã«æ¥ç¶ããé©åãªã±ãŒãã«ãå¿
èŠã§ãã ããŒããŠã§ã¢ãšãããå¿
èŠãšããã±ãŒãã«ã«ã€ããŠããçè§£ããŠãããªãã ãã®ç¯ã¯é£ã°ããŠãåé¡ãããŸããã
[[term-cables]]
==== ã±ãŒãã«
ã·ãªã¢ã«ã±ãŒãã«ã«ã¯ããŸããŸãªçš®é¡ããããŸãã æã
ã®ç®çã«ãããã£ãšãäžè¬ç㪠2 çš®é¡ã¯ã ãã«ã¢ãã ã±ãŒãã« ãšãã¹ã¿ã³ããŒã (ã¹ãã¬ãŒã) RS-232 ã±ãŒãã«ã§ã ããŒããŠã§ã¢ã®èª¬æææžã«å¿
èŠãªã±ãŒãã«ã®çš®é¡ãèšèŒãããŠããã¯ãã§ãã
[[term-cables-null]]
===== ãã«ã¢ãã ã±ãŒãã«
ãã«ã¢ãã ã±ãŒãã« (ãŸãã¯ãªããŒã¹ã±ãŒãã«ãããã¯ã¯ã ã¹ã±ãŒãã«) ã¯ãããšãã° "signal ground" ä¿¡å·ã®ããã«ãããã€ãã®ä¿¡ å·ã¯ãã®ãŸãŸéããŸããã ä»ã®ä¿¡å·ã¯éäžã§å
¥ãæ¿ããŠéããŸããããšãã°ã"send data" ä¿¡å·ã®ãã³ã¯ãå察åŽã®ã³ãã¯ã¿ã® "receive data" ä¿¡å·ã® ãã³ãšç¹ãã£ãŠããŸãã
èªåã§äœ¿ãã±ãŒãã«ã¯èªåã§äœããããšããããšã§ããã°ã 端æ«ã§äœ¿ããã«ã¢ãã ã±ãŒãã«ãäœæã§ããŸãããã®è¡šã§ã¯ã RS-232C ã®ä¿¡å·ç·ã®ååãšãDB-25 ã³ãã¯ã¿äžã®ãã³ã®çª å·ã瀺ããŠããŸãã
[.informaltable]
[cols="1,1,1,1,1", frame="none", options="header"]
|===
| Signal
| Pin #
|
| Pin #
| Signal
|TxD
|2
|connects to
|3
|RxD
|RxD
|3
|connects to
|2
|TxD
|DTR
|20
|connects to
|6
|DSR
|DSR
|6
|connects to
|20
|DTR
|SG
|7
|connects to
|7
|SG
|DCD
|8
|connects to
|4
|RTS
|RTS
|4
|
|5
|CTS
|CTS
|5
|connects to
|8
|DCD
|===
[NOTE]
====
DCD ãš RST ã§ã¯ãã³ãã¯ã¿å
éšã§ãã³4ã5ã«æ¥ç¶ãã ãããŠéåŽã®ã³ãã¯ã¿ã®ãã³8ãšæ¥ç¶ããŸãã
====
[[term-cables-std]]
===== ã¹ã¿ã³ããŒã RS-232C ã±ãŒãã«
ã¹ã¿ã³ããŒãã·ãªã¢ã«ã±ãŒãã« (ãŸãã¯ã¹ãã¬ãŒãã±ãŒãã«) ã®å Žåã¯ããã¹ãŠã® RS-232C ä¿¡å·ããã®ãŸãŸéããŸããã€ãŸããçæ¹ã® "send data" ä¿¡å·ã®ãã³ã¯ãéåŽã® "send data" ä¿¡å·ã®ãã³ãšç¹ãã£ãŠããŸããã¢ãã ã FreeBSD ã«æ¥ç¶ãããšãããäžéšã®ç«¯æ«ãæ¥ç¶ãããšãã«ãã®ã¿ã€ãã® ã±ãŒãã«ã䜿çšããŸãã
[[term-ports]]
==== ããŒã
ã·ãªã¢ã«ããŒãã¯ãFreeBSDãåäœããŠãããã¹ã ã³ã³ãã¥ãŒã¿ãšç«¯ æ«ã®éã§ããŒã¿ã®ãããšããè¡ãããã«çšããããã€ã¹ã§ãã ããã§ã¯ãçŸåšååšããããŒãã®çš®é¡ãš FreeBSD ã§ã®ããŒãã®ã¢ã¯ã»ã¹æ¹æ³ã«ã€ããŠè§£ 説ããŸãã
[[term-portkinds]]
===== ããŒãã®çš®é¡
ã·ãªã¢ã«ããŒãã«ã¯äœçš®é¡ãã®ãã®ããããŸãã ã±ãŒãã«ã賌 å
¥ãããèªäœãããããåã«ã ãã®ã±ãŒãã«ã®ã³ãã¯ã¿ã®åœ¢ç¶ã端æ«ããã³ FreeBSD ã·ã¹ãã ã®ããŒãã®åœ¢ç¶ãšäžèŽããŠããããšã 確èªããŠãã ããã
ã»ãšãã©ã®ç«¯æ«ã¯ DB25 ããŒããæèŒããŠããŸãã FreeBSDãåäœããŠããã ã®ãå«ããŠãPC㯠DB25 ãŸã㯠DB9 ããŒããæèŒããŠããŸãããã«ãããŒã ã®ã·ãªã¢ã«ã«ãŒãã®å Žåã¯ãRJ-12 ã RJ-45 ã®ããŒããæèŒããŠããããã ããŸããã
å©çšãããŠããããŒãã®çš®é¡ã«é¢ããŠã¯ã ããŒããŠã§ã¢ã«ã€ããŠããããã¥ã¡ã³ããåç
§ããŠãã ããã ãŸããå€ãã®å ŽåãããŒãã®åœ¢ç¶ãã倿ããããšãã§ããã§ãããã
[[term-portnames]]
===== ããŒãã®åå
FreeBSDã§ã¯ã[.filename]#/dev# ãã£ã¬ã¯ããªå
ã®ãšã³ããªãä» ããŠã·ãªã¢ã«ããŒããžã®ã¢ã¯ã»ã¹ããããªãããŸãã 2çš®é¡ã®ç°ãªã£ããšã³ ããªããããŸãã
* çä¿¡çšã®ããŒãã®ååã¯ã [.filename]#/dev/ttydN# (_N_ 㯠0ããå§ãŸãããŒãçªå·) ãšãªã£ãŠããŸããäžè¬ã«ç«¯æ«ã®æ¥ç¶ã«ã¯ çä¿¡çšããŒããçšããŸããçä¿¡çšã®ããŒãã§ã¯ã ã·ãªã¢ã«ã©ã€ã³ã®ããŒã¿ ãã£ãªã¢æ€åº (DCD) ä¿¡å·ããªã³ã«ãªã£ãŠããå¿
èŠããããŸãã
* çºä¿¡çšã®ããŒãã®ååã¯ã [.filename]#/dev/cuaaN# ãšãªã£ãŠããŸãã çºä¿¡çšã®ããŒãã¯æ®éã¢ãã ã®æ¥ç¶ã«çšãã端æ«ã®æ¥ç¶ã«ã¯ å©çšããŸããããã ã ã±ãŒãã«ãŸãã¯ç«¯æ«ããã£ãªã¢æ€åºä¿¡å·ã䜿ããªã ã¿ã€ãã®ãã®ã®å Žåã¯ã çºä¿¡çšã®ããŒãã䜿ããšããã§ãããã
ããšãã°ã端æ«ãäžã€ç®ã®ã·ãªã¢ã«ããŒã (MS-DOS ã§ãããšããã® [.filename]#COM1#) ã«æ¥ ç¶ãããšãããšã[.filename]#/dev/ttyd0# ããã®ç«¯æ«ãæãããšã«ãªããŸãããŸãã äºã€ç®ã®ã·ãªã¢ã«ããŒã ([.filename]#COM2#) ãªãã° [.filename]#/dev/ttyd1# ãšãªãã 以äžãã®åœ¢åŒã®ããã€ã¹ãšã³ããªã䜿ããŸãã
=== ã«ãŒãã«ã®èšå®
ããã©ã«ãã§ã¯ãFreeBSD 㯠4 ã€ã®ã·ãªã¢ã«ããŒãã«å¯Ÿå¿ããŠããŸããMS-DOS ã®äžçã§ã¯ã [.filename]#COM1#, [.filename]#COM2#, [.filename]#COM3# ããã³ [.filename]#COM4# ãšåŒã°ããŠããŸãã FreeBSD ã§ã¯ãçŸåšã®ãšãã BocaBoard ã® 1008 ã 2016 ãªã©ã®ã "åçŽãª"ãã«ãããŒãã·ãªã¢ã«ã€ã³ã¿ãã§ãŒã¹ãã Digiboard ã Stallion Technologies ã補é ããŠããããã€ã³ããªãžã§ã³ããªãã«ãããŒãã«ãŒãã«ã察å¿ããŠããŸãã ããããªãããããã©ã«ãã®ã«ãŒãã«ã¯ãæšæºã® COM ããŒãããèŠãŸããã
æèŒãããŠããã·ãªã¢ã«ããŒãã®ãããããã ã«ãŒãã«ãèªèããŠãããã©ãã確èªãããå Žåã¯ã ã«ãŒãã«ã®èµ·åæã®ã¡ãã»ãŒãžãæ³šææ·±ãèŠãããããã㯠`/sbin/dmesg` ã³ãã³ãã䜿ã£ãŠã èµ·åæã®åºåã¡ãã»ãŒãžã確èªããŠãã ãããç¹ã«ã `sio` ã§å§ãŸãã¡ãã»ãŒãžãããèŠãŠãã ããã
[TIP]
====
以äžã®ã³ãã³ãã§ `sio` ãšããæååãå«ãã¡ãã»ãŒãžã ãã衚瀺ã§ããŸãã
[source,shell]
....
# /sbin/dmesg | grep 'sio'
....
====
ããšãã°ãã·ãªã¢ã«ããŒããåã€æã€ã·ã¹ãã ã®å Žåã¯ã 以äžã®ãããªã·ãªã¢ã«ããŒãã«é¢ããã¡ãã»ãŒãžãã«ãŒãã«ã«ãã£ãŠè¡šç€ºãããŸãã
[source,shell]
....
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A
....
ãããã«ãŒãã«ã«æ£åžžã«èªèãããªãããŒããããå Žåã¯ã ããããã«ã¹ã¿ãã€ãºãã FreeBSD ã«ãŒãã«ãæ§ç¯ããå¿
èŠãããã§ãããã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ crossref:kernelconfig[kernelconfig,FreeBSD ã«ãŒãã«ã®ã³ã³ãã£ã°ã¬ãŒã·ã§ã³] ãã芧ãã ããã
ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ã®è©²åœããããã€ã¹è¡ã¯ã 次ã®ããã«ãªããŸãã
[.programlisting]
....
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
....
ã·ã¹ãã ã«æèŒãããŠããªãããã€ã¹ã«é¢ããèšè¿°ã¯ã ã³ã¡ã³ãã¢ãŠããŸãã¯åé€ããŠããŸã£ãŠããŸããŸããã man:sio[4] ã®ããã¥ã¢ã«ãèŠãŠã ãã«ãããŒãã®ããŒãã®ããã®ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã®èšè¿°ã®ä»æ¹ã確èªããŠãã ããã ããã€ã¹ã®ãã©ã°ã®æå®æ¹æ³ãããŒãžã§ã³ã«ãã£ãŠç°ãªããŸãã®ã§ã å¥ã®ããŒãžã§ã³ã® FreeBSD ã§å©çšããŠããã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãæµçšããå Žåã«ã¯ååæ³šæããŠãã ããã
[NOTE]
====
ãªãã`port "IO_COM1"`, `IO_COM2`, `IO_COM3` ããã³ `IO_COM4` ã¯ã ããããã®ããŒãã®äžè¬çãªã¢ãã¬ã¹ã§ãã `0x3f8`, `0x2f8`, `0x3e8` ããã³ `0x2e8` ã衚ããŸãããŸããå²ã蟌ã¿çªå· 4, 3, 5 ãš 9 ã¯ããããã [.filename]#COM1:# ãã [.filename]#COM4:# ã®ããŒãã§äžè¬çã«äœ¿çšããã IRQ ã§ãããŸããISA ãã¹ã®ã³ã³ãã¥ãŒã¿ã®å Žåã äžè¬çãªã·ãªã¢ã«ããŒãã¯è€æ°ã®ããŒãã§äžã€ã® IRQ ãå
±æããããšã __ã§ããŸãã__ã®ã§æ³šæãå¿
èŠã§ã (ãã«ãããŒãã®ã·ãªã¢ã«ããŒãã®å Žåã¯ãè€æ°ã® 16550A ããŒã¹ã®ããŒãã§äžã€ãŸãã¯äºã€ã® IRQ ãå
±æããããã®æ©æ§ãåããŠããŸã)ã
====
=== ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«
ã«ãŒãã«ã«çµã¿èŸŒãŸããŠããã»ãšãã©ã®ããã€ã¹ã¯ã [.filename]#/dev# ãã£ã¬ã¯ããªã«ããã "ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«"ãä»ããŠã¢ã¯ã»ã¹ãããŸãã [.filename]#sio# ããã€ã¹ã®å Žåã¯ãçä¿¡çšã® [.filename]#/dev/ttydN# ããã³ãçºä¿¡çšã® [.filename]#/dev/cuaaN# ãå©çšãããŸããããã«ãFreeBSD ã¯ãåæåããã€ã¹ ([.filename]#/dev/ttyidN# ãš [.filename]#/dev/cuai0N#) ããã³ãããã³ã°ããã€ã¹ ([.filename]#/dev/ttyldN# ãš [.filename]#/dev/cual0N#) ãçšæããŠããŸãã åæåããã€ã¹ã¯ãéä¿¡ããŒãããªãŒãã³ããã床ã«ã ãã®ããŒãã®åæèšå®ãè¡ãããã«äœ¿ãããŸããããšãã°ã `RTS/CTS` ã«ãããããŒå¶åŸ¡ãè¡ãã¢ãã ãæ¥ç¶ãããŠããå Žåã® `crtscts` ãªã©ã®ãã©ã¡ãŒã¿ã®åæåãè¡ãããŸãã ãããã³ã°ããã€ã¹ã¯ãããŒãã®èšå®ãããã¯ãã ä»ã®ãŠãŒã¶ãããã°ã©ã ã«ãããã倿Žãããããšã®ãªãããã«ããããã«å©çšãããŸãã éä¿¡ããŒãã®èšå®ãããã€ã¹ã®ããã¯ãšåæåããã³èšå®ã®å€æŽã«é¢ããŠã¯ã ãããã man:termios[4], man:sio[4] ãš man:stty[1] ã®ããã¥ã¢ã«ãã芧ãã ããã
==== ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ã®äœæ
[NOTE]
====
FreeBSD 5.0 ã«ã¯ã å¿
èŠã«å¿ããŠããã€ã¹ããŒããèªåçã«äœæãã `devfs` ãã¡ã€ã«ã·ã¹ãã ããããŸãã `devfs` ãæå¹ã«ãªã£ãŠããããŒãžã§ã³ã® FreeBSD ãåãããŠãããªãã ãã®ç¯ã¯é£ã°ããŠããŸããŸããã
====
ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ã®ç®¡çã¯ããã£ã¬ã¯ã㪠[.filename]#/dev# ã«ããã·ã§ã«ã¹ã¯ãªãã `MAKEDEV` ã§è¡ããŸãã `MAKEDEV` ã䜿ã£ãŠã [.filename]#COM1# (ããŒã 0) ããã€ã¢ã«ã¢ããã®ããŒããšããŠå©çšããããã® ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ãäœãã«ã¯ã [.filename]#/dev# ã« `cd` ããŠããã `MAKEDEV ttyd0` ãšå®è¡ããŠãã ããã åæ§ã«ã`MAKEDEV ttyd1` ãšããããšã§ã [.filename]#COM2# (ããŒã 1) çšã®ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ãäœæã§ããŸãã
`MAKEDEV` ã¯ã [.filename]#/dev/ttydN# ã®ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ã ãã§ãªãã [.filename]#/dev/cuaaN#, [.filename]#/dev/cuaiaN#, [.filename]#/dev/cualaN#, [.filename]#/dev/ttyldN# ããã³ [.filename]#/dev/ttyidN# ããŒããäœæããŸãã
ããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ã®äœæåŸã ãããã®ãã¡ã€ã«ã®èš±å¯å±æ§ãé©åã«èšå®ãããŠããŠã ãããã®ããã€ã¹ãå©çšããŠããããŠãŒã¶ã®ã¿ãèªã¿æžãã§ããããã«ãªã£ãŠããããšã確èªããŠãã ãã (ç¹ã« [.filename]#/dev/cua*# ã®èš±å¯å±æ§ã«ã¯æ³šæãæã£ãŠãã ãã)ã ãã®ç¢ºèªãæ ããšã äžè¬ã®ãŠãŒã¶ãããªãã®ã¢ãã ã䜿ãããšãã§ãããããªããšã«ãªããããŸããã ããã©ã«ãã® [.filename]#/dev/cua*# ã®èš±å¯å±æ§ã¯ã以äžã®ããã«ãªã£ãŠããŠã ãããŠãã®å Žåé©åãªãã®ã ãšæããŸãã
[source,shell]
....
crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1
....
äžã®èšå®ã§ã¯ããŠãŒã¶ `uucp` ãšãã°ã«ãŒã `dialer` ã«å±ãããŠãŒã¶ãçºä¿¡çšã®ããã€ã¹ãå©çšã§ããŸãã
[[serial-hw-config]]
=== ã·ãªã¢ã«ããŒãã®èšå®
[.filename]#ttydN# (ãŸã㯠[.filename]#cuaaN#) ããã€ã¹ã¯ã ã¢ããªã±ãŒã·ã§ã³äžã§ã·ãªã¢ã«ããŒãããªãŒãã³ããæã«äœ¿çšããã æšæºçãªããã€ã¹ã§ããããã»ã¹ãããã€ã¹ããªãŒãã³ããéãç«¯æ« I/O èšå®ã®ããã©ã«ãã»ãããé©çšãããŸãããããã®èšå®å
容ã¯ã 次ã®ã³ãã³ãã§ç¢ºèªããããšãã§ããŸãã
[source,shell]
....
# stty -a -f /dev/ttyd1
....
ãã®ããã€ã¹ã®èšå®ã倿Žããå Žåã ãã®èšå®ã¯ããã€ã¹ãã¯ããŒãºããããŸã§æå¹ã§ãã ããã€ã¹ãåã³ãªãŒãã³ãããæãããã©ã«ãã®èšå®å€ã«æ»ããŸãã ããã©ã«ãã®èšå®ã倿Žããããã«ã¯ã"åæç¶æ
" ãèšå®ãããããã€ã¹ããªãŒãã³ããŠèª¿ç¯ã§ããŸãã ããšãã°ã[.filename]#ttyd5# ãšããããã€ã¹ã«å¯ŸããŠãããã©ã«ãã§ `CLOCAL` ã¢ãŒã, 8 bits, `XON/XOFF` ãããŒå¶åŸ¡ãèšå®ãããå Žåã¯ã 次ã®ããã«å
¥åããŠãã ããã
[source,shell]
....
# stty -f /dev/ttyid5 clocal cs8 ixon ixoff
....
ã·ã¹ãã å
šäœã®ã·ãªã¢ã«ããã€ã¹åæå㯠[.filename]#/etc/rc.serial# ã§å¶åŸ¡ãããŠããŸãã ãã®ãã¡ã€ã«ã¯ãã·ãªã¢ã«ããã€ã¹ã®ããã©ã«ãã®èšå®ã決ããŸãã
ãŸãã"ããã¯ç¶æ
"ã®ããã€ã¹ã«èª¿ç¯ãå ããããšã§ã ã¢ããªã±ãŒã·ã§ã³ãããçš®ã®èšå®ã倿ŽããŠããŸãããšãé²ããŸãã ããšãã°ã[.filename]#ttyd5# ã®é床ã 57600 bps ã«åºå®ãããå Žåã«ã¯ã次ã®ããã«å
¥åããŠãã ããã
[source,shell]
....
# stty -f /dev/ttyld5 57600
....
ããã§ã[.filename]#ttyd5# ããªãŒãã³ããŠã ã·ãªã¢ã«ããŒãã®è»¢éã¹ããŒãã倿Žããããšããã¢ããªã±ãŒã·ã§ã³ã¯ 57600 bps ã§é æã¡ã«ãªããŸãã
æ¬æ¥ãåæç¶æ
ãããã¯ãããŠããããã€ã¹ã«æžã蟌ããã®ã¯ `root` ã¢ã«ãŠã³ãã ãã«ãã¹ãã§ãã
[[term]]
== ã·ãªã¢ã«ç«¯æ«
ã·ãªã¢ã«ç«¯æ«ãå©çšããããšã§ã ã³ã³ãã¥ãŒã¿ã®ã³ã³ãœãŒã«ã®ãã°ã«ããªããšããã æè¿ã«ãããã¯ãŒã¯æ¥ç¶ãããŠããã³ã³ãã¥ãŒã¿ããªããšãã§ãã FreeBSD ã®æ©èœã䟿å©ã«ããã€å®äŸ¡ã«å©çšããããšãã§ããŸãã ããã§ã¯ãFreeBSD ã«ã·ãªã¢ã«ç«¯æ«ãæ¥ç¶ããæ¹æ³ã解説ããŸãã
[[term-uses]]
=== 端æ«ã®çš®é¡ãšå©ç𿹿³
ããšããš Unix ã·ã¹ãã ã«ã¯ã³ã³ãœãŒã«ããããŸããã§ããã ãŠãŒã¶ã¯ã³ã³ãã¥ãŒã¿ã®ã·ãªã¢ã«ããŒãã«æ¥ç¶ããã端æ«ãããã°ã€ã³ããŠããã°ã©ã ãå©çšããŠããŸããã ã¡ããã©ã¢ãã ãšéä¿¡ãœããã䜿ã£ãŠãªã¢ãŒãã®ã³ã³ãã¥ãŒã¿ã«ãã°ã€ã³ãã ããã¹ãããŒã¹ã®ããã°ã©ã ãå©çšããã®ãšãã䌌ãŠããŸãã
æè¿ã® PC ã¯ã é«å質ã®ç»åã衚瀺ã§ããã³ã³ãœãŒã«ãæèŒããŠããŸããã ã»ãšãã©ãã¹ãŠã® Unix ç³» OS ã«ã¯æªã ã«ã·ãªã¢ã«ããŒãã䜿ã£ãŠãã°ã€ã³ããããã®æ©èœãããã FreeBSD ã§ããã®æ©èœããµããŒããããŠããŸãã çŸåšäœ¿çšãããŠããªãã·ãªã¢ã«ããŒãã«ç«¯æ«ãæ¥ç¶ããããšã§ã·ã¹ãã ã«ãã°ã€ã³ãã éåžžã¯ã³ã³ãœãŒã«ã X ãŠã£ã³ããŠã·ã¹ãã ã® `xterm` ã®ãŠã£ã³ããŠäžã§èµ·åããŠããããã¹ãããŒã¹ã®ããã°ã©ã ã§ããã°äœã§ãå©çšã§ããŸãã
è·å Žã§ã®å©çšãšããããšã§èãããªãã°ãFreeBSD ãåäœããŠããã³ã³ãã¥ãŒã¿ã«æ¥ç¶ãããäœå°ãã®ã·ãªã¢ã«ç«¯æ«ãå瀟å¡ã®æºã«é
眮ãããšãããããªããšãå¯èœã§ãã ãŸããå®¶åºã§ã®å©ç𿹿³ãšããŠã¯ãäœã£ãŠããå€ã IBM PC ã Macintosh ã FreeBSD ãåããŠãããã¯ãã«ãªã³ã³ãã¥ãŒã¿ã®ç«¯æ«ãšããŠå©çšã§ããŸãã æ®éãªãã·ã³ã°ã«ãŠãŒã¶ã®ã³ã³ãã¥ãŒã¿ãã ãã¯ãã«ãªãã«ããŠãŒã¶ã®ã·ã¹ãã ã«å€ããããšãã§ããã®ã§ãã
FreeBSD ã§ã¯ã以äžã«æãã 3 çš®é¡ã®ç«¯æ«ãå©çšã§ããŸãã
* <<term-dumb,ãã (dumb) 端æ«>>
* <<term-pcs,PCãå©çšãã端æ«>>
* <<term-x,X 端æ«>>
以äžã¯ãããããã«ã€ããŠã®è§£èª¬ã§ãã
[[term-dumb]]
==== ãã 端æ«
ãã 端æ«ã¯ã ã·ãªã¢ã«ã©ã€ã³çµç±ã§ã®ã³ã³ãã¥ãŒã¿ãšã®æ¥ç¶å°çšã®ããŒããŠã§ã¢ã§ãã ãã 端æ«ã¯ãããã¹ãã®éåä¿¡ããã³è¡šç€ºãã§ããçšåºŠã®èšç®èœåãããã£ãŠããªãã®ã§ã "dumb" (éæã) ãšããããã«åŒã°ããŠããŸãã ãã®ç«¯æ«äžã§ããã°ã©ã ãå®è¡ããããšã¯ã§ããŸããã ããã¹ããšãã£ã¿ãã³ã³ãã€ã©ãE-mailã ã²ãŒã ãªã©ãªã©ã®ããã°ã©ã ãå®è¡ããã®ã¯ã ãã 端æ«ãæ¥ç¶ããŠããã³ã³ãã¥ãŒã¿ã®æ¹ã§ãã
Digital Equipment 瀟㮠VT-100 ããWyse 瀟㮠WY-75 ãåããšããŠãå€ãã®ã¡ãŒã«ãäœçŸçš®é¡ãã®ãã 端æ«ãäœã£ãŠããŸãã ã»ãšãã©ã©ããªçš®é¡ã®ãã 端æ«ã§ã FreeBSD ã«æ¥ç¶ããŠäœ¿çšã§ããŸããããã«ã 髿§èœã®ç«¯æ«ã®äžã«ã¯ç»åãåãæ±ãããã®ããããŸããã éãããæ°ã®ãœãããŠã§ã¢ããã±ãŒãžãããããã£ãæ©èœã«ã¯å¯Ÿå¿ããŠããŸããã
ãã 端æ«ã¯ã X ãŠã£ã³ããŠã·ã¹ãã ã§æäŸããããããªã°ã©ãã£ãã¯ã¢ããªã±ãŒã·ã§ã³ãå¿
èŠãšããªãè·å Žã§åºãçšããããŠããŸãã
[[term-pcs]]
==== PC ã端æ«ãšããŠå©çšãã
<<term-dumb,ãã 端æ«>> ãããã¹ãã®è¡šç€ºããã³éåä¿¡ã®æ©èœãããªããã ãã®ãã®ãªãã°ã èšããŸã§ããªããã©ã㪠PC ããã 端æ«ã«ãªãåŸãŸãã å¿
èŠãªãã®ã¯é©åãªã±ãŒãã«ãšããã® PC ã®äžã§åäœãã__端æ«ãšãã¥ã¬ãŒã·ã§ã³__ ãè¡ããœãããŠã§ã¢ã®ã¿ã§ãã
ãã®ãããªç°å¢ã¯ãå®¶åºã«ãããŠããå©çšãããŸãã ããšãã°ãããªãã®åå±
人ã FreeBSD ã®ã³ã³ãœãŒã«ãå°æããŠããæãªã©ã«ã ããŸããã¯ãŒã®ãªãã³ã³ãã¥ãŒã¿ã FreeBSD ã·ã¹ãã ã«ã·ãªã¢ã«ç«¯æ«ãšããŠæ¥ç¶ãã ãã®ç«¯æ«äžã§ããã¹ãã ããçšããäœæ¥ããããªãããšãã§ããŸãã
[[term-x]]
==== X 端æ«
X 端æ«ã¯ã æ¢åã®ãã®ã®äžã§æãæŽç·Žãããçš®é¡ã®ç«¯æ«ãšãããŸãã X 端æ«ã¯ããããŠãã®å Žåã·ãªã¢ã«ããŒãã§ã¯ãªãã ã€ãŒãµãããã®ãããªãããã¯ãŒã¯ãå©çšããæ¥ç¶ããããªããŸãã ãŸããã¢ããªã±ãŒã·ã§ã³ã®å©çšã«ãããŠãã ããã¹ãããŒã¹ã®ãã®ã ãã§ãªãã X ã¢ããªã±ãŒã·ã§ã³ã®å©çšãå¯èœã§ãã
ããã§ã¯ãåèãŸã§ã«ç«¯æ«ã«ã€ããŠç޹ä»ããã ãã§ã X 端æ«ã®èšå®ãå©çšã«ã€ããŠã®è§£èª¬ã¯ _ãããªããŸãã_ã
[[term-config]]
=== èšå®
ããã§ã¯ã端æ«ããã®ãã°ã€ã³ãå¯èœã«ããããã«å¿
èŠãª FreeBSD åŽã®èšå®ã«ã€ããŠè§£èª¬ããŸãã æ¢ã«ç«¯æ«ãæ¥ç¶ããããŒããå©çšã§ããããã« kernel ã®èšå®ããããªãã端æ«ãæ¥ç¶ãããŠãããã®ãšèããŠã解説ãé²ã ãŸãã
crossref:boot[boot,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# ãèªã¿èŸŒã¿ãªããããŠã ã ããã
====
ãŸããå¿
èŠã«å¿ã㊠[.filename]#/etc/gettytab# ã倿Žããäžã® 2ã§äœ¿çšãã _getty_ ã®ãšã³ããªã远å ããŠãã ããã ãã®ç« ã§ã¯ãã®æ¹æ³ã«ã€ããŠã¯ç¹ã«è§£èª¬ããŸããã®ã§ãman:gettytab[5] ããã³ man:getty[8] ã®ããã¥ã¢ã«ãã芧ãã ããã
[[term-etcttys]]
==== [.filename]#/etc/ttys# ãžã®ãšã³ããªã®è¿œå
[.filename]#/etc/ttys# ã«ã¯ã FreeBSDã·ã¹ãã äžã®ãã°ã€ã³ãèš±å¯ãããã¹ãŠã® ããŒããèšè¿°ããŸããããšãã°ãäžã€ç®ã®ä»®æ³ã³ã³ãœãŒã« [.filename]#ttyv0# ã®ãšã³ ããªããã®ãã¡ã€ã«ã«ãããŸãããã®ãšã³ããªã®ãããã§ã ã³ã³ãœãŒã«ããã® ãã°ã€ã³ãå¯èœã«ãªã£ãŠããŸãã ãã®ãã¡ã€ã«ã«ã¯ãä»ã®ä»®æ³ã³ã³ãœãŒã«ãã· ãªã¢ã«ããŒãããã³ä»®æ³ç«¯æ«ã®ãšã³ããªãå«ãŸããŠããŸãã 端æ«ãæ¥ç¶ããå Žåã¯ããã®ããŒãã® [.filename]#/dev# ã®ãšã³ããªãã [.filename]#/dev# ã®éšåãçç¥ããŠèšè¿°ããŸã (ããšãã° [.filename]#/dev/ttyv0# ã«ã€ããŠã¯ã [.filename]#ttyv0# ãšããŠèšè¿°ããŸã)ã
FreeBSD ã®ããã©ã«ãã®ã€ã³ã¹ããŒã«ç¶æ
ã§ã¯ã [.filename]#ttyd0# ãã [.filename]#ttyd3# ãŸã§ã®ãåãã® 4 ã€ã®ã·ãªã¢ã«ããŒãã«å¯Ÿå¿ãã [.filename]#/etc/ttys# ãã¡ã€ã«ã眮ãããŠããŸãã ãããã®ããŒãã®ããããã«ç«¯æ«ãæ¥ç¶ããå Žåã¯ã æ°ãã«ãšã³ããªã远å ããå¿
èŠã¯ãããŸããã
[[ex-etc-ttys]]
.端æ«ã®é
ç®ã [.filename]#/etc/ttys# ã«è¿œå ãã
[example]
====
ã·ã¹ãã ã« 2 å°ã®ç«¯æ«ãWyse-50 ãšãVT-100 端æ«ããšãã¥ã¬ãŒãããŠãã Procomm 端æ«ãœãããŠã§ã¢ãåãããŠããå€ã 286 IBM PC ãã·ã¹ãã ã«æ¥ç¶ããããšããŠãããšèããŠãã ããã Wyse 㯠2 çªç®ã®ã·ãªã¢ã«ããŒãã«ã286 㯠6 çªç®ã®ã·ãªã¢ã«ããŒã (ãã«ãããŒãã·ãªã¢ã«ã«ãŒãäžã®ããŒã) ã«æ¥ç¶ããŸãã [.filename]#/etc/ttys# å
ã®å¯Ÿå¿ããé
ç®ã¯æ¬¡ã®ããã«ãªããŸãã
[.programlisting]
....
ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
....
* æåã®ãã£ãŒã«ãã«ã¯ãéåžž [.filename]#/dev# ã«ãã端æ«ã®ã¹ãã·ã£ã«ãã¡ã€ã«åãæå®ããŸãã
* 2 çªç®ã®ãã£ãŒã«ãã¯ã ãã®åç·ã«å¯ŸããŠå®è¡ããã³ãã³ãã§ãé垞㯠man:getty[8] ã§ãã`getty` ã¯ãåç·ãåæåããŠéããé床ãèšå®ããŠã ãŠãŒã¶åãå
¥åããããã³ãããåºã㊠man:login[1] ããã°ã©ã ãå®è¡ããŸãã`getty` ããã°ã©ã ã¯ã ã³ãã³ãã©ã€ã³ãã (çç¥å¯èœãª) ãã©ã¡ãŒã¿ _getty_ ã¿ã€ããåãåããŸãã _getty_ ã¿ã€ãã¯ã bps ã¬ãŒããããªãã£ã®ãããªç«¯æ«åç·ã®ç¹æ§ã瀺ããŸãã `getty` ããã°ã©ã ã¯ã ãããã®ç¹æ§ã [.filename]#/etc/gettytab# ãã¡ã€ã«ããèªã¿èŸŒã¿ãŸãã[.filename]#/etc/gettytab# ãã¡ã€ã«ã«ã¯ã 端æ«åç·ã«ã€ããŠæ°æ§å€ãã®é
ç®ããããŸãã ã»ãšãã©ã®å Žåã`std` ã§å§ãŸãé
ç®ã¯ãã±ãŒãã«ã§æ¥ç¶ããã端æ«ã«åããŸãã ãããã®é
ç®ã¯ããªãã£ãç¡èŠããŸãã110 ãã 115200 ãŸã§ã®éã® bps ã¬ãŒãããããã«å¯ŸããŠäžã€ `std` é
ç®ããããŸãããã¡ããã ãã®ãã¡ã€ã«ã«ç¬èªã®é
ç®ãå ããŠãããŸããŸããã man:gettytab[5] ã®ããã¥ã¢ã«ã«è©³ããæ
å ±ãèŒã£ãŠããŸãã[.filename]#/etc/ttys# ãã¡ã€ã«ã« _getty_ ã¿ã€ããèšå®ããæã¯ã 端æ«ã®éä¿¡èšå®ã察å¿ããŠããããšã確ãããŸããããããšãã°ãWyse-50 ã¯ããªãã£ãªãã§ã38400 bps ã§æ¥ç¶ããŸãã286 PC ã¯ããªãã£ãªãã§ã19200 bps ã§æ¥ç¶ããŸãã
* 第 3 ãã£ãŒã«ãã¯ããã® tty åç·ã«éåžžã€ãªãã端æ«ã®çš®å¥ã§ãã ãã€ã¢ã«ã¢ããããŒãã§ã¯ãå®éã ãŠãŒã¶ãã©ããªçš®é¡ã®ç«¯æ«ããœãããŠã§ã¢ã§æ¥ç¶ããŠããããšãããããã®ã§ã ãã®ãã£ãŒã«ãã«ã¯ `unknown` ãŸã㯠`dialup` ããã䜿ãããŠããŸãã ã±ãŒãã«ã§é
ç·ããã端æ«ã«ã€ããŠã¯ã 端æ«çš®å¥ã¯å€ãããŸããã®ã§ãman:termcap[5] ããŒã¿ããŒã¹ãã¡ã€ã«ããå®éã®ç«¯æ«çš®å¥ãã ãã®ãã£ãŒã«ãã«èšå
¥ã§ããŸããæã
ã®äŸã§ã¯ãWyse-50 ã«ã¯å®éã®ç«¯æ«çš®å¥ã䜿ã£ãŠããŸããã Procomm ãåãããŠãã 286 PC ã¯ãVT-100 ããšãã¥ã¬ãŒãããããã«èšå®ããŸãã
* 4 çªç®ã®ãã£ãŒã«ãã¯ã ããŒããæå¹ã«ãã¹ããã©ãããæå®ããŸãã ããã« `on` ãšèšå
¥ãããšã `init` ããã»ã¹ã 2 çªç®ã®ãã£ãŒã«ãã«èšèŒãããŠããããã°ã©ã ã `getty` ãèµ·åããŸãã ãã®ãã£ãŒã«ãã `off` ã«ãããšã `getty` ã¯åããã ãã®ããŒãããã¯ãã°ã€ã³ã§ããŸããã
* æåŸã®ãã£ãŒã«ãã¯ã ãã®ããŒããå®å
šãã©ããæå®ããŸãã ããããŒããå®å
šã ãšããããšã¯ããã®ããŒããã `root` (ãŸãã¯ãã®ä»ã® UID ã 0 ã®) ã¢ã«ãŠã³ãã®ãã°ã€ã³ãèš±å¯ããŠãããšä¿¡é ŒããŠãããšããããšã§ãã å®å
šã§ãªãããŒãããã¯ã`root` ã®ãã°ã€ã³ã¯èš±å¯ãããŸãããå®å
šã§ãªãããŒãã§ã¯ã ãŠãŒã¶ã¯ç¹æš©ãæããªãã¢ã«ãŠã³ãã§ãã°ã€ã³ããåŸã«ã man:su[1] ãé¡äŒŒã®ä»çµã¿ã䜿ã£ãŠã¹ãŒããŠãŒã¶ç¹æš©ãç²åŸããŸããéµã®ãããéšå±ã«ãã端æ«ã§ãã£ãŠãã"insecure" ã«ããŠããããšãåŒ·ãæšå¥šãããŸãã ã¹ãŒããŠãŒã¶ç¹æš©ãå¿
èŠãªãããã°ã€ã³ããŠãã `su` ã䜿ãã®ã¯ååç°¡åã§ãã
====
[[term-hup]]
==== `init` ã«ãã¡ã€ã« [.filename]#/etc/ttys# ã®åèªã¿èŸŒã¿ãããã
å¿
èŠãªå€æŽã [.filename]#/etc/ttys# ãã¡ã€ã«ã«å ããããSIGHUP (ãã³ã°ã¢ãã) ã·ã°ãã«ã `init` ããã»ã¹ã«éã£ãŠèšå®ãã¡ã€ã«ã匷å¶çã«åèªã¿èŸŒã¿ãããŸãã ããšãã°
[source,shell]
....
# kill -HUP 1
....
[NOTE]
====
`init` ã¯ãã·ã¹ãã ã§æåã«èµ·åããããã»ã¹ãªã®ã§ã PID ã¯åžžã« 1 ã§ãã
====
ãã¹ãŠã®èšå®ãæ£ãããããªããã ãã¹ãŠã®ã±ãŒãã«ããã ããæ¥ç¶ãããŠããŠã ãã€ç«¯æ«ã®é»æºãå
¥ã£ãŠããã°ããã®æç¹ã§å端æ«ã§ `getty` ããã»ã¹ãåããŠããŠã ãã°ã€ã³ããã³ããã衚瀺ãããŠããã¯ãã§ãã
[[term-debug]]
=== æ¥ç¶ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
现å¿ã®æ³šæãæã£ãŠèšå®ããããªã£ãŠãã ãšãã«ã¯ç«¯æ«ã®æ¥ç¶ãã ãŸããããªãå Žåãããã§ãããã以äžã«ã ããèŠãããåé¡ãšãã®è§£æ±ºæ¹æ³ ã瀺ããŸãã
==== ãã°ã€ã³ããã³ããã衚瀺ãããªã
端æ«ã®é»æºãæ¥ç¶ããã ã¹ã€ãããå
¥ã£ãŠããããšã確èªããŠãã ããããããPC ã端æ«ãšããŠå©çšããŠããå Žåã¯ã éä¿¡ãœãããé©åãªã·ãªã¢ã«ã㌠ããå©çšããèšå®ã«ãªã£ãŠãããã©ãã確ãããŠãã ããã
ã±ãŒãã«ããã£ãããšç«¯æ«ãš FreeBSDãåäœããŠããã³ã³ãã¥ãŒã¿ã®äž¡æ¹ã«æ¥ç¶ãã ãŠããããšã確èªããŠãã ããããŸãã æ£ããçš®é¡ã®ã±ãŒãã«ãå©çšããŠãã ã確ãããŠãã ããã
端æ«ãš FreeBSD ã®éã®éä¿¡é床ãšããªãã£ã®èšå®ãäžèŽããŠããããšãç¢ºèª ããŠãã ããã åºåãã¢ãã¿ã«è¡šç€ºããã¿ã€ãã®ç«¯æ«ã®å Žåã¯ãã¢ãã¿ ã®ã³ã³ãã©ã¹ããšæããã®èšå®ã確èªããŠãã ããããŸãã åºåãå°å· ãããã¿ã€ãã®ç«¯æ«ã®å Žåã¯ã çŽãšã€ã³ã¯ãååã«ãããã©ããã確ãããŠã ã ããã
`getty` ãåããŠããŠã 端æ«ãèªèããŠããããšã確èªããŠãã ããã ããšãã°ãåäœäžã® `getty` ããã»ã¹ã®äžèЧã `ps` ã§ååŸããã«ã¯ã以äžã®ããã«å
¥åããŠãã ããã
[source,shell]
....
# ps -axww|grep getty
....
ãã®ç«¯æ«ã«å¯Ÿå¿ããé
ç®ã衚瀺ãããã¯ãã§ãã ããšãã°ã以äžã®è¡šç€ºäŸã¯ã`getty` 㯠2 çªç®ã®ã·ãªã¢ã«ããŒã (`ttyd1`) ã«å¯Ÿã㊠[.filename]#/etc/gettytab# äžã® `std.38400` ãšã³ããªã䜿ã£ãŠåäœããŠãããšããããšã瀺ããŠããŸãã
[source,shell]
....
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1
....
ããã`getty` ããã»ã¹ãäžã€ãåããŠããªãããã§ããã°ã [.filename]#/etc/ttys# ã®äžã§ã ãã®ããŒããå©çšå¯èœã«ããèšå®ããããã©ãã確ãããŠãã ããã ãŸãã[.filename]#ttys# ãã¡ã€ã«ã倿Žãããã`kill -HUP 1` ãå®è¡ããã®ãå¿ããªãã§ãã ããã
==== ãã°ã€ã³ããã³ããã®ä»£ããã«ãŽãã衚瀺ããã
端æ«ãš FreeBSD ã®éã®éä¿¡é床ããã³ããªãã£ã®èšå®ãäžèŽããŠããããšã確 ãããŠãã ããããŸãã`getty` ããã»ã¹ã®æ
å ±ã調ã¹ãŠãé©å㪠_getty_ ã®ã¿ã€ãã䜿çšãããŠããããšã確èªããŠãã ãããééã£ã _getty_ ã¿ã€ãã䜿çšãããŠããå Žåã¯ã [.filename]#/etc/ttys# ãä¿®æ£ã ãŠããã `kill -HUP 1` ãå®è¡ããŠãã ããã
==== æåãéè€ããŠè¡šç€ºããããå
¥åãããã¹ã¯ãŒãã衚瀺ããã
端æ«ãŸãã¯éä¿¡ãœããã®èšå®ã§ã"åäºé (half duplex)" ããã㯠"ããŒã« ã«ãšã³ãŒ" ãšãªã£ãŠãããšãããã"å
šäºé (full duplex)" ã«å€æŽããŠãã ããã
[[dialup]]
== ãã€ã¢ã«ã€ã³ãµãŒãã¹
_èš³: . 6 September 1996._
FreeBSD ã·ã¹ãã ããã€ã¢ã«ã€ã³ãµãŒãã¹çšã«èšå®ããããšã¯ã 端æ«ã®ä»£ããã«ã¢ãã ãæ±ãããšä»¥å€ã¯ã 端æ«ã®æ¥ç¶ã«ãã䌌ãŠããŸãã
=== å€ã¥ãã¢ãã ãšå
èµã¢ãã ã«ã€ããŠ
ãã€ã¢ã«ã¢ããã®ãµãŒãã¹ã«é¢ããŠããã°ã å€ã¥ãã®ã¢ãã ã®æ¹ãé©ããŠãã ããã§ããããã¯ã å€ãã®å€ã¥ãã®ã¢ãã ã¯èšå®ãäžæ®çºã©ã ã«æžã蟌ãã§å æ°žä¹
çã«ä¿åããããšãã§ããŸããããŸã RS-232 ã«é¢ããéèŠãªæ
å ±ãç¥ã ããã®ç¹æ»
ããã©ã€ãã«ããã€ã³ãã£ã±ãŒã¿ã æèŒãããŠããããã§ããç¹æ»
ããã©ã€ãã¯ã ã·ã¹ãã ãèŠã«æ¥ã蚪åè
ã«åŒ·ãå°è±¡ãäžãããšãã广ã ã ã§ãªããã¢ãã ãé©åã«åäœããŠãããã©ãããç¥ãããã«ã æå¹ã§ãã
äžæ¹ããããŠãã®å
èµåã®ã¢ãã ã«ã¯ äžæ®çºæ§ã©ã ãæèŒãããŠããªãããããã£ãã ã¹ã€ããã®å€æŽä»¥å€ã«èšå®ãä¿åããæ¹æ³ããããŸããããŸããã ãã€ã³ãã£ã±ãŒã¿ãã€ããŠããŠããããããã³ã³ãã¥ãŒã¿ã®ã±ãŒã¹ ã«ããŒã å€ãããŠããªããã°ãã®ç¶æ
ã確èªããã®ã¯ é£ããã§ãããã
==== ã¢ãã ãšã±ãŒãã«
å€ä»ãã¢ãã ã䜿çšããŠãããªãã ããã«ãã£ãã±ãŒãã«ãå¿
èŠã§ãã éåžžã®ä¿¡å·ãå
šãŠæ¥ç¶ãããŠããéããæšæºç㪠RS-232C ã±ãŒãã«ã§ååã§ãããã
* Transmitted Data (SD)
* Received Data (RD)
* Request to Send (RTS)
* Clear to Send (CTS)
* Data Set Ready (DSR)
* Data Terminal Ready (DTR)
* Carrier Detect (CD)
* Signal Ground (SG)
FreeBSD ã§ 2400bps 以äžã®è»¢éé床ãå©çšããå Žåã«ã¯ã ãããŒå¶åŸ¡ã®ãã ã« RTS ä¿¡å·ãš CTS ä¿¡å·ãå¿
èŠã§ãããŸãã æ¥ç¶ã®ç¢ºç«ãšåç·ã®å æãæ€åºããããã« CD ä¿¡å·ãå©çšããŸããããã«ã DTR ä¿¡å·ã䜿㣠ãŠåç·åæåŸã®ã¢ãã ã®ãªã»ãããè¡ããŸããã±ãŒãã«ã®äžã«ã¯ã ç·ãŠã®å¿
èŠ ãªä¿¡å·ç·ãæ¥ç¶ãããŠããªããã®ããããŸãã®ã§ã ããšãã°ãåç·åæåŸã§ã ãã°ã€ã³ ã»ãã·ã§ã³ãæ®ã£ãŠããŸããšãã£ãåé¡ãçºçããå Žåãªã©ã«ã¯ã ã±ãŒãã«ã«åé¡ãããå¯èœæ§ããããŸãã
FreeBSD ãä»ã® Unix ç³» OS ãšåæ§ãåç·ã®æ¥ç¶ãã ã³åæã®æ€åºãåç·ã®åæããã³åç·åæåŸã® ã¢ãã ã®åæåã«ããŒããŠã§ã¢ ã·ã°ãã«ãå©çšããŸããFreeBSD ã¯ãã¢ãã ã«å¯Ÿããã³ãã³ãã®éä¿¡ãã¢ã ã ã®ç¶æ
ã®ç£èŠãè¡ããŸãããããœã³ã³ã§éçšãããŠãã BBS ãžã®æ¥ç¶ã«æ
£ ããŠããæ¹ã«ãšã£ãŠã¯ã ã¡ãã£ãšããã©ããããããŸãããã
=== ã·ãªã¢ã« ã€ã³ã¿ãã§ãŒã¹ã«ã€ããŠ
FreeBSD ã§ã¯ãNS8250-ãNS16450-ãNS16550- ããã³ NS16550A- ã«åºã¥ ãã EIA RS-232C (CCITT V.24) èŠæ Œã®ã·ãªã¢ã« ã€ã³ã¿ãã§ãŒã¹ããµããŒã ããŠããŸãã8250 ããã³ 16450 ããŒã¹ã®ãã£ãã€ã¹ã«ã¯1æåã®ãã£ã©ã¯ã¿ ãããã¡ãæèŒãããŠããŸãããŸãã16550 ç³»ã®ãã£ãã€ã¹ã«ã¯ã 16æåå ã®ãããã¡ãæèŒãããŠããŠã ã¯ããã«ããããã©ãŒãã³ã¹ãåŸãããŸã (ãã ããç¡å°ã® 16550 ã§ã¯ããã°ããã£ãŠ 16 æåãããã¡ãå©çšã§ããŸã ãã®ã§ãå¯èœã§ããã° 16550A ç³»ã®ãã£ãã€ã¹ãå©çšããŠãã ãã)ã1æå ã®ãããã¡ã®ç©ã¯ã 16550 ç³»ã®ãã®ãšæ¯ã¹ãŠ OS ã«ãããè² è·ã倧ããã®ã§ã16550A ç³»ãã£ãã€ã¹ã®å©çšãåŒ·ãæšå¥šããŸãã倿°ã®ã·ãªã¢ã« ããŒããå© çšããå Žåããè² è·ã®é«ãã·ã¹ãã ã«ãããŠã¯ã 16550A ç³»ãã£ãã€ã¹ã䜿ã ããšã§ã ãšã©ãŒçºççãäœãæŒãããããšãã§ããŸãã
=== æŠèŠ
端æ«ã«é¢ããŠã¯ã ãã€ã¢ã«ã€ã³æ¥ç¶ã«å²ãåœãŠãããããããã®ã·ãªã¢ã«ããŒãã«å¯ŸããŠã `init` ã `getty` ãèµ·åããŸããããšãã°ãã¢ãã ã [.filename]#/dev/ttyd0# ã«å²ãåœãŠãããŠãããã`ps ax` ã³ãã³ããå®è¡ãããšã以äžã®ãããªåºåãåŸãããã¯ãã§ãã
[source,shell]
....
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0
....
ãŠãŒã¶ãã¢ãã ã«é»è©±ããããã¢ãã åå£«ãæ¥ç¶ããããšã ã¢ãã ã® CD (Carrier Detect) ãæ€åºãããŸãããã®çµæã kernel ããã£ãªã¢ä¿¡å·ãæ€åºããŠã`getty` ã«ããããŒãã®ãªãŒãã³ã®åŠçãçµäºããŸãã `getty` ã¯ã`login:` ããã³ãããæå®ãããŠããåæåç·é床ã§éä¿¡ããŸãã `getty` ã¯ã æ£åžžã«æååãåä¿¡ã§ãããã©ããç£èŠããéåžžã®èšå®ã§ã¯ã ããç°åžžãªæååãæ€åºããå Žå (çç±ãšããŠã¯ã `getty` ã®é床ãšã¢ã ã ã®æ¥ç¶é床ãç°ãªã£ãŠãããããªå ŽåãèããããŸã)ã æ£åžžã«æååã åä¿¡ã§ãããŸã§ã`getty` ã¯é床ãå€ãç¶ããŸãã
ãŠãŒã¶ããã°ã€ã³åãå
¥åãããšã `getty` 㯠[.filename]#/usr/bin/login# ãèµ·åããŠã ãã¹ã¯ãŒãã®å
¥åãèŠæ±ãããã® åŸãŠãŒã¶ã®ã·ã§ã«ãèµ·åããŸãã
=== èšå®ãã¡ã€ã«
FreeBSD ã®ã·ã¹ãã ãžã®ãã€ã¢ã«ã¢ããã«ããã¢ã¯ã»ã¹ãå®çŸããããã«ç·šéãå¿
èŠãšæãããèšå®ãã¡ã€ã«ãã [.filename]#/etc# ãã£ã¬ã¯ããªã« 3 ã€ãããŸãããŸãã [.filename]#/etc/gettytab# ã«ã¯ã [.filename]#/usr/libexec/getty# ããŒã¢ã³ã®èšå®ãèšè¿°ããŸããã€ãã«ã [.filename]#/etc/ttys# ã«ä¿åãããŠããæ
å ±ããã [.filename]#/sbin/init# ã¯ã©ã® [.filename]#tty# ããã€ã¹ã«å¯Ÿã㊠`getty` ã®ããã»ã¹ãå®è¡ããã¹ãã倿ããŸãã æåŸã«ã[.filename]#/etc/rc.serial# ã¹ã¯ãªããã«ã ã·ãªã¢ã«ããŒãã®åæåã®ããã®ã³ãã³ããèšè¿°ããããšãã§ããŸãã
Unix ã«ãã€ã¢ã«ã¢ããã¢ãã ãæ¥ç¶ããæ¹æ³ã«ã¯ã äºã€ã®èãæ¹ããããŸããäžã€ã®æ¹æ³ã¯ã ãã€ã¢ã«ã€ã³ããŠãããŠãŒã¶ã®æ¥ç¶é床ã«é¢ä¿ãªãã åžžã«ã¢ãã ãšããŒã«ã«ã®ã³ã³ãã¥ãŒã¿ã® RS-232 ã€ã³ã¿ãã§ãŒã¹ã®æ¥ç¶é床ãäžå®ã«ä¿ã€ããã«èšå®ããæ¹æ³ã§ãã ãã®èšå®ã®é·æã¯ããŠãŒã¶ããã€ã¢ã«ã€ã³ããŠæ¥ç¶ããããšã å³åº§ã«ã·ã¹ãã ããã®ãã°ã€ã³ããã³ãããéä¿¡ããããšããããšã§ãã çæã¯ãã·ã¹ãã ãå®éã®ã¢ãã éã®é床ãç¥ãããšãã§ããªãããã«ã Emacs ã®ãããªãã«ã¹ã¯ãªãŒã³ã®ããã°ã©ã ãã 端æ«ãšã®æ¥ç¶é床ãé
ãå Žåã§ãã ãã®ãããªå Žåã«å¹æçãªæ¹æ³ã§ç»é¢åºåãè¡ããªãç¹ã§ãã
ããäžã€ã¯ãã¢ãã ã® RS-232 ã€ã³ã¿ãã§ãŒã¹ãšã³ã³ãã¥ãŒã¿ã®æ¥ç¶é床ãã ã¢ãã éã®æ¥ç¶é床ã«å¿ããŠå€åããããããªèšå®ã§ããããšãã°ã ã¢ãã é ã®æ¥ç¶ã V.32bis (14.4 Kbps) ãªãã°ã ã¢ãã ãšã³ã³ãã¥ãŒã¿ã®éã®æ¥ç¶ã 19.2 Kbps ãšãã ã¢ãã éã®æ¥ç¶ã 2400 bps ã®æã«ã¯ãã¢ãã ãšã³ã³ãã¥ãŒã¿éã 2400 bps ã§æ¥ç¶ãããããªèšå®ãããŸãããã®å Žåã `getty` ã¯ãã¢ãã ãè¿ããªã¶ã«ãã³ãŒãããã¢ãã ãšã³ã³ãã¥ãŒã¿ã®æ¥ç¶é床ãèªèããããšãã§ããŸããã®ã§ã `getty` ã¯ããŸãåæé床㧠`login:` ãšããæååãéä¿¡ããŠãããã«å¯Ÿããå¿çã®æååãç£èŠããŸãã ããã§ããŠãŒã¶åŽã®ç«¯æ«ã«ç¡æå³ãªæååã衚瀺ãããå Žåã ãŠãŒã¶ã¯æå³ã®ããæååãåä¿¡ãããŸã§ Enter ããŒãç¹°ãè¿ãæŒããªããã°ãªããªããšããããšãç¥ã£ãŠãããšä»®å®ããŠããŸãã ããæ¥ç¶é床ãééã£ãŠããå Žåã`getty` ã¯ã ãŠãŒã¶ããéãããæåãç¡æå³ãªæååãšããŠæ±ãã æ¬¡ã®é床ã詊ããŸãããããŠãããã§å床 `login:` ããã³ãããéä¿¡ããŸãã ãã®äžé£ã®åäœãç°åžžãªåæ°ç¹°ãè¿ãããããšãèããããŸããã æ®é㯠1 床ã 2 床ã®ããŒå
¥åãããã°ã ãŠãŒã¶ã¯ãŸãšããªããã³ãããåä¿¡ã§ããŸãã ãã®ãã°ã€ã³ã®åäœãåè
ã®åºå®é床ã«ããæ¹æ³ã«æ¯ã¹ãŠçŸãããªãã®ã¯æããã§ããã ãã®æ¹æ³ã§ã¯ãäœéåºŠã§æ¥ç¶ããŠãããŠãŒã¶ã«å¯Ÿãããã«ã¹ã¯ãªãŒã³ã®ããã°ã©ã ããã®ã¬ã¹ãã³ã¹ãæ¹åãããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãäž¡æ¹ã®èšå®æ¹æ³ã«ã€ããŠè§£èª¬ããŸããã ã©ã¡ãããšãããšã¢ãã éã®é床ã«å¿ã㊠RS-232 ã€ã³ã¿ãã§ãŒã¹ã®é床ãå€åãããã㪠èšå®ã®æ¹ã«åã£ã説æã«ãªã£ãŠããŸããšæããŸãã
==== [.filename]#/etc/gettytab#
[.filename]#/etc/gettytab# ã¯ãman:getty[8] ã®èšå®ãã¡ã€ã«ã§ãman:termcap[5] ãšåæ§ã®åœ¢åŒã§èšè¿°ãããŸãããã¡ã€ã«ã®ãã©ãŒããããå® çŸ©ã§ããæ©èœã«ã€ããŠã®è©³çްã«ã€ããŠã¯ãman:gettytab[5] ã®ããã¥ã¢ã«ã ã芧ãã ããã
===== åºå®é床ã®èšå®
ã¢ãã ãšã³ã³ãã¥ãŒã¿éã®éä¿¡é床ãåºå®ããŠäœ¿ãå Žåã ãããã [.filename]#/etc/gettytab# ã«ç¹ã«å€æŽãå ããå¿
èŠã¯ãªãã¯ãã§ãã
===== å¯å€é床ã®èšå®
`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# ã«æ°ããªãšã³ããªã远å ããå¿
èŠããããŸãã 以äžã®äŸã¯ã14.4 Kbps ã®ã¢ãã ãã æå€§ã€ã³ã¿ãã§ãŒã¹é床ã 19.2 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ãããã®æ¥ç¶ãè¡ãããŸãã
äžèšã®äŸã§ã¯ããŸã 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 ãäœéã®ãã®ã§ãã£ãããCPU ã«å¯Ÿããè² è·ãé«ãå Žåã§ã16550A ç³»ã®ã·ãªã¢ã«ããŒããã䜿ãã§ãªãå Žåã 57.6 Kbps ã®æ¥ç¶ã«ãããŠã`sio` ã® "silo" ãšã©ãŒãçºçãããããããŸããã
[[dialup-ttys]]
==== [.filename]#/etc/ttys#
[.filename]#/etc/ttys# ãã¡ã€ã«ã®èšå®ã¯ã<<ex-etc-ttys>> ã§æ±ãããŠããŸãã ã¢ãã ã®èšå®ã䌌ããããªãã®ã§ããã`getty` ã«ç°ãªãåŒæ°ãæž¡ããŠãç°ãªã端æ«çš®å¥ãæå®ããªããã°ãªããŸããã åºå®é床ããã³å¯å€é床䞡æ¹ã«å
±éãã圢åŒã¯æ¬¡ã®ããã«ãªããŸãã
[.programlisting]
....
ttyd0 "/usr/libexec/getty xxx" dialup on
....
1 çªç®ã®é
ç®ã¯ããã®ãšã³ããªã§å¯Ÿè±¡ãšããããã€ã¹ã¹ãã·ã£ã«ãã¡ã€ã«ã§ãã äžã®äŸã§ã¯ `ttyd0` ãšããŠã [.filename]#/dev/ttyd0# ã `getty` ã«ç£èŠãããããšã衚ããŠããŸãã2 çªç®ã®é
ç® `"/usr/libexec/getty xxx"` (_xxx_ ã¯åææ®µéã§äœ¿ããã [.filename]#gettytab# ã®ãšã³ããªã«çœ®ãæããŠãã ãã) ãã`init` ããã®ãã£ãã€ã¹ã«å¯ŸããŠèµ·åããããã»ã¹ã§ãã3 çªç®ã® `dialup` ã¯ãããã©ã«ãã®ã¿ãŒããã«ã¿ã€ãã§ãã 4 çªç®ã® `on` ã¯ã ãã®è¡ãæå¹ã§ããããšã `init` ã«å¯ŸããŠç€ºããŠããŸãã5 çªç®ã®é
ç®ã« `secure` ãæå®ããããšãã§ããŸãããããã¯ã ããšãã°ã·ã¹ãã ã®ã³ã³ãœãŒã«ã®ããã«ã ç©ççã«å®å
šãªç«¯æ«ã«å¯ŸããŠã®ã¿æå®ããããã«ããŠãã ããã
ããã©ã«ãã®ã¿ãŒããã«ã¿ã€ã (äžèšã®äŸã§ã¯ `dialup`) ã¯ãããŒã«ã«ã®ãŠãŒã¶ã®å¥œã¿ã«ãã£ãŠç°ãªã£ãŠããŸãã ãŠãŒã¶ããã°ã€ã³ã¹ã¯ãªãããã«ã¹ã¿ãã€ãºããŠãã¿ãŒããã«ã¿ã€ãã `dialup` ã®æã«ã¯èªåçã«ä»ã®ã¿ãŒããã«ã¿ã€ããèšå®ã§ããããã«ã ãã€ã¢ã«ã¢ããã®ããŒãã®ããã©ã«ãã®ã¿ãŒããã«ã¿ã€ãã«ã¯ `dialup` ãäŒçµ±çã«çšããããŠããŸãã ããããçè
ã®ãµã€ãã§ã¯ãã»ãšãã©ã®ãŠãŒã¶ã VT102 ãšãã¥ã¬ãŒã·ã§ã³ã䜿ã£ãŠããã®ã§ã ãã€ã¢ã«ã¢ããã®ããŒãã®ããã©ã«ãã¿ãŒããã«ã¿ã€ããšã㊠`vt102` ãæå®ããŠããŸãã
[.filename]#/etc/ttys# ã®ä¿®æ£ãããã ãã 以äžã®ãããªã³ãã³ãã䜿ã£ãŠ `init` ããã»ã¹ã« HUP ã·ã°ãã«ãéãã[.filename]#/etc/ttys# ãèªã¿èŸŒã¿çŽãããŠãã ããã
[source,shell]
....
# kill -HUP 1
....
ãã ãããåããŠã·ã¹ãã ãèšå®ããŠããã®ã§ããã°ã ã¢ãã ãé©åã«èšå®ãããŠæ¥ç¶ããããŸã§ã¯ã `init` ã«å¯ŸããŠã·ã°ãã«ãéããªãæ¹ããããããããŸããã
===== åºå®é床ã®èšå®
é床ãåºå®ããèšå®ã§ã¯ã[.filename]#/etc/ttys# ã®äžã§ã`getty` ã«å¯Ÿã ãŠåºå®é床ã®ãšã³ããªãæå®ããå¿
èŠããããŸããããšãã°ã 以äžã®äŸã¯ããŒãã®ã¹ããŒãã 19.2 Kbps ã«åºå®ãããã¢ãã ã®ããã® [.filename]#ttys# ã®ãšã³ããªã§ãã
[.programlisting]
....
ttyd0 "/usr/libexec/getty std.19200" dialup on
....
ã¢ãã ãç°ãªãé床ã§åºå®ãããŠããå Žåã¯ã `std.19200` ã®ãããã« `std.speed` ãé©åãªå€ã«çœ®ãæãããã®ã«ããŠãã ããã [.filename]#/etc/gettytab# ã«æãã£ãŠããé©åãªçš®é¡ã䜿ãããã«ããŠãã ããã
===== å¯å€é床ã®èšå®
å¯å€é床ã®èšå®ã§ã¯ã[.filename]#ttys# ã®ãšã³ããªãã[.filename]#/etc/gettytab# ã®äžã®é©å㪠"èªåé床調æŽ" ã®åæèšå®ã®ãšã³ããªãåç
§ããŠããªããã°ãª ããŸããã ããšãã°ãããåè¿°ã® 19.2 Kbps ããæ¥ç¶ã詊ã¿ãå¯å€é床ã®èšå®äŸ (`V19200` ã® [.filename]#gettytab# ãšã³ããª)ããã®ãŸãŸ _ttys_ ã«è¿œå ããã®ã§ããã°ã [.filename]#ttys# ãšã³ããªã¯ä»¥äžã®ããã«ãªããŸãã
[.programlisting]
....
ttyd0 "/usr/libexec/getty V19200" dialup on
....
==== [.filename]#/etc/rc.serial#
V.32ãV.32bis ãŸã㯠V.34 ã¢ãã ã®ãããªé«éã¢ãã ãå©çšããå ŽåãããŒããŠã§ã¢ ([.filename]#RTS/CTS#) ãããŒå¶åŸ¡ãè¡ãå¿
èŠããããŸããFreeBSD kernel ã®ã¢ãã ããŒãã«ããŒããŠã§ã¢ãããŒå¶åŸ¡ã®ãã©ã°ãèšå®ããããã® `stty` ã³ãã³ããã [.filename]#/etc/rc.serial# ã«èšè¿°ã§ããŸãã
ããšãã°ãã·ãªã¢ã«ããŒã 1 çª ([.filename]#COM2#) ã®ãã€ã€ã«ã€ã³ããã³ãã€ã€ã«ã¢ãŠãåæåããã€ã¹ã« `termios` ãã©ã° `crtscts` ãèšå®ããã«ã¯ã次ã®è¡ã [.filename]#/etc/rc.serial# ã«è¿œå ãããšããã§ãããã
[.programlisting]
....
# Serial port initial configuration
stty -f /dev/ttyid1 crtscts
stty -f /dev/cuai01 crtscts
....
=== ã¢ãã ã®èšå®
ãããããªãã®ã¢ãã ããã©ã¡ãŒã¿ãäžæ®çºã©ã ã« ä¿åã§ããã¿ã€ããªãã°ãMS-DOS äžã® Telix ã FreeBSD äžã® `tip` ãªã©ã®ãããªéä¿¡ããã°ã©ã ã䜿ã£ãŠã ãã©ã¡ãŒã¿ãèšå®ããŠãã ããã`getty` ãå©çšããåæé床ã§ã¢ãã ã«æ¥ç¶ããŠã以äžã®æ¡ä»¶ãæºããã ãã«äžæ®çºã©ã ã®èšå®ã倿ŽããŠãã ããã
* æ¥ç¶æã« CD ä¿¡å·ããªã³ã«ãªã
* æ¥ç¶æã« DTR ããªã³ã«ãªãã ãªãã§åç·ãåæã㢠ãã ããªã»ããããã
* éä¿¡æãããŒå¶åŸ¡ã«ã¯ CTS ãå©çšã
* XON/XOFF ã«ãããããŒå¶åŸ¡ãè¡ããªãã
* åä¿¡æã®ãããŒå¶åŸ¡ã¯ RTS ã䜿çšã
* Quiet mode (ãªã¶ã«ã ã³ãŒããè¿ããªã)
* ã³ãã³ã ãšã³ãŒãè¿ããªãã
ããããå®çŸããããã®ã³ãã³ãããã£ãã ã¹ã€ããã®èšå®ã«é¢ããŠã¯ã㢠ãã ã®ããã¥ã¢ã«ãåç
§ããŠãã ããã
以äžã«ãUSRobotics Sportster ã® 14,400 bps ã®å€ã¥ãã¢ãã ã®èšå®äŸã瀺 ããŠãããŸãã
[.programlisting]
....
ATZ
ATC1D2H1I0R2W
....
ããšã®ã€ãã§ã«ãããšãã°ãV42.bis ã MNP5 ã®ããŒã¿å§çž®ã䜿çšãããã© ãããªã©ã®ã¢ãã ã®ä»ã®èšå®ã«ã€ããŠç¢ºèªã 調æŽããŠããã®ããããããã㟠ããã
ããã«ãUSRobotics Sportster ã® 14,400 bps ã®å€ã¥ãã¢ãã ã§ã¯ã以äžã® ãããªãã£ãã ã¹ã€ããã®èšå®ãå¿
èŠã§ããä»ã®ã¢ãã ãã䜿ãã®æ¹ãã以 äžã®äŸãèšå®ã®åèã«ããŠãã ããã
* ã¹ã€ãã 1: UP - DTR æšæº
* ã¹ã€ãã 2: N/A (ãªã¶ã«ãã³ãŒããåèªåœ¢åŒã«ãããæ°å€åœ¢åŒã«ããã)
* ã¹ã€ãã 3: UP - ãªã¶ã«ãã³ãŒããè¿ããªã
* ã¹ã€ãã 4: DOWN - ã³ãã³ããšã³ãŒãè¿ããªã
* ã¹ã€ãã 5: UP - èªåçä¿¡
* ã¹ã€ãã 6: UP - CD æšæº
* ã¹ã€ãã 7: UP - äžæ®çºã©ã ããããã©ã«ãå€ãããŒããã
* ã¹ã€ãã 8: N/A (Smart Mode/Dumb Mode)
ãªã¶ã«ã ã³ãŒããè¿ããªãããã«èšå®ããŠãããªããšã `getty` ã誀㣠㊠`login:` ããã³ãããã³ãã³ã ã¢ãŒãã®ã¢ãã ã«éä¿¡ããŠããŸã£ãå Ž åã«ã ã¢ãã ããã®å
¥åããšã³ãŒãããããã®å
¥åã«å¯Ÿãããªã¶ã«ã ã³ãŒã ãè¿ããŠããŸã£ããããããšã«ãªããŸãããã®çµæãšããŠã ã¢ãã ãš `getty` ã®éã§å»¶ã
ãšç¡æå³ãªãããšããç¶ããŠããŸãå¯èœæ§ããããŸãã
==== åºå®é床ã®èšå®
åºå®é床ã®èšå®ã§ã¯ã ã¢ãã ãšã³ã³ãã¥ãŒã¿éã®éä¿¡é床ãã¢ãã ãšã¢ãã é ã®æ¥ç¶é床ã«é¢ä¿ãªããåžžã«äžå®ã«ä¿ã€ããã«ã ã¢ãã ãèšå®ããå¿
èŠããã ãŸããUSRobotics Sportster ã® 14,400 bps å€ã¥ãã¢ãã ã®å Žåã以äžã®ã³ ãã³ãã§ã ã¢ãã ãšã³ã³ãã¥ãŒã¿éã®é床ããã³ãã³ãéä¿¡æã®é床ã«åºå®ã ããŸãã
[.programlisting]
....
ATZ
ATB1W
....
==== å¯å€é床ã®èšå®
å¯å€é床ã®èšå®ã§ã¯ãã·ãªã¢ã« ããŒãã®é床ãã çä¿¡é床ã«å¿ããŠå€åãã ããã«èšå®ããªããã°ãããŸããã USRobotics Sporster ã® 14,400 bps å€ ã¥ãã¢ãã ã®å Žåã 以äžã®ã³ãã³ãã§ããšã©ãŒè𿣿©èœãå©çšããéä¿¡ã®å Žå ã¯ã ã³ãã³ããéä¿¡ããæã®éä¿¡é床ã«ã·ãªã¢ã« ããŒãã®é床ãåºå®ãããš ã©ãŒè𿣿©èœãå©çšããªãæ¥ç¶ã§ã¯ã ã·ãªã¢ã« ããŒãã®é床ãå€åãããã ã«èšå®ãããŸãã
[.programlisting]
....
ATZ
ATB2W
....
==== ã¢ãã ã®èšå®ã®ç¢ºèª
ã»ãšãã©ã®é«éã¢ãã ã«ã¯ã çŸåšã®èšå®ãããçšåºŠäººéã«ãçè§£ã§ãã圢åŒã« ããŠè¡šç€ºãããã³ãã³ãããããŸããUSRobotics Sporster ã® 14,400 bps å€ã¥ãã¢ãã ã®å Žåã¯ã`ATI5` ã³ãã³ãã§ãçŸåšã®äžæ®çºã©ã ã®èšå®ã 衚瀺ããããšãã§ããŸãã ããã«ããã£ãã ã¹ã€ããã®èšå®ãå«ããçŸåšã® èšå®ã確èªããããã«ã¯ã`ATZ` ã³ãã³ããéä¿¡ããŠããã`ATI4` ã³ãã³ããéä¿¡ããŠãã ããã
ä»ã®ã¡ãŒã«ãŒã®ã¢ãã ãã䜿ãã®å Žåã¯ã ã¢ãã ã®ããã¥ã¢ã«ã§èšå®å€ã®ç¢ºèª æ¹æ³ã確èªããŠãã ããã
=== ãã©ãã«ã·ã¥ãŒãã£ã³ã°
以äžã®æé ã§ãã€ã¢ã« ã¢ãã ã¢ãã ã®åäœã確èªããããšãã§ããŸãã
==== FreeBSD ã·ã¹ãã ã®åäœç¢ºèª
ã¢ãã ã FreeBSD ã·ã¹ãã ã«æ¥ç¶ãã ã·ã¹ãã ãããŒãããŸããããªãã®ã¢ ãã ã«ã¢ãã ã®ç¶æ
ã確èªããããã®ã€ã³ãžã±ãŒã¿ãããã°ã DTR ã®ã€ ã³ãžã±ãŒã¿ã®ç¶æ
ã«æ³šç®ããŠãã ãããããã ã·ã¹ãã ã®ã³ã³ãœãŒã«ã« `login:` ããã³ããã衚瀺ãããæã«ãDTR ã®ã€ã³ãžã±ãŒã¿ãç¹ç¯ ããã°ãFreeBSD ãé©åãªããŒãã«å¯Ÿã㊠`getty` ãèµ·åããã¢ãã ãž ã®çä¿¡ãåŸ
ã£ãŠããç¶æ
ã§ããããšãæå³ããŠããŸãã
ãã DTR ã®ã€ã³ãžã±ãŒã¿ãç¹ç¯ããªãå Žåã¯ãã·ã¹ãã ã®ã³ã³ãœãŒã«ãã FreeBSD ã«ãã°ã€ã³ããŠã`ps ax` ãå®è¡ãã FreeBSD ãé©åãªããŒãã«å¯ŸããŠ``getty`` ããã»ã¹ãèµ·åããããšããŠããã®ãã©ãã確èªããŠãã ããã ããã»ã¹ã«é¢ããæ
å ±ã®äžã«ã 以äžã®ãããªè¡ã衚瀺ãããã¯ãã§ãã
[source,shell]
....
114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1
....
ã¢ãã ã«ãŸã çä¿¡ããªãç¶æ
ã®æã«ã 以äžã®ããã«äžãšã¯ç°ãªãåºåããã£ã å Žåã`getty` ã¯æ¢ã«ã¢ãã ããŒãã®ãªãŒãã³ãçµäºãããšããããšã« ãªããŸãã
[source,shell]
....
114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0
....
`getty` ã¯ãCD (carrier detect) ä¿¡å·ããªã³ã®ç¶æ
ã«ãªããŸã§ã ããŒãã®ãªãŒãã³ãå®äºããããšã¯ã§ããŸããã®ã§ã ãã®å Žåã¯æ¥ç¶ã«åé¡ã ãããããããã¯ã¢ãã ã®èšå®ã«åé¡ãããããšãèããããŸãã
ãããæåŸ
ãã [.filename]#ttydN# ããŒãããªãŒãã³ããããšããŠãã `getty` ãèŠããããªãå Žåã¯ãå床 [.filename]#/etc/ttys# ã®å
容ã確èªãã æžåŒãªã©ã«èª€ãããªãã 調ã¹ãŠã¿ãŠãã ããããŸãããã° ãã¡ã€ã« [.filename]#/var/log/messages# ã« `init` ããã³ `getty` ããäœãåºåããªããã©ããã確èªããŠã¿ãŠã ã ããã ããäœãã¡ãã»ãŒãžãèšé²ãããŠããããå床 [.filename]#/etc/ttys#ã [.filename]#/etc/gettytab# ã®äºã€ã®èšå®ãã¡ã€ã«ãšã ãã£ãã€ã¹ ã¹ãã·ã£ã«ãã¡ã€ã« [.filename]#/dev/ttydN# ã確èªãã èšè¿°ã«èª€ãããªãããè¶³ããªããšã³ããªããªããã è¶³ããªããã£ãã€ã¹ ã¹ãã·ã£ã«ãã¡ã€ã«ããªãããšãã£ã ç¹ã«ã€ããŠèª¿ã¹ãŠã¿ãŠãã ããã
==== ã¢ãã ã§æ¥ç¶ããŠã¿ã
å®éã«ã¢ãã ã䜿ã£ãŠå¥ã®ã³ã³ãã¥ãŒã¿ãã æ¥ç¶ããŠã¿ãŠãã ããããã®æã8 ããããããªãã£ãªãã 1 ã¹ããããããã§æ¥ç¶ããããã«ããŠãã ããã æ¥ç¶åŸããã«ããã³ãããè¿ã£ãŠããªãå Žåãã ç¡æå³ãªæååã衚瀺ããã å Žåã¯ã1ç§ã«1åãããã®å²åã§ Enter ããŒãæŒããŠã¿ãŠãã ããã ãã°ãããã£ãŠããªãã `login:` ããã³ãããçŸããªãå Žå ã¯ã`BREAK` ä¿¡å·ãéä¿¡ããŠã¿ãŠãã ããããã®æã端æ«åŽã§äœ¿ã£ãŠ ããã¢ãã ãé«éã¢ãã ãªãã°ã ãã®ã¢ãã ã®ã€ã³ã¿ãã§ãŒã¹ã®æ¥ç¶é床ãåº å®ããŠããã å床ãã€ã¢ã« ã€ã³ããŠã¿ãŠãã ããã(ããšãã°ãUSRobotics Sportster ã®å Žåã¯ã`ATB1`)
ããã§ããŸã `login:` ããã³ããã衚瀺ãããªãå Žåã¯ã [.filename]#/etc/gettytab# ã®ä»¥äžã®ç¹ã«ã€ããŠå床確èªããŠã¿ãŠãã ããã
* [.filename]#/etc/ttys# ã®å¯Ÿå¿ããè¡ã® 2çªç®ã®é
ç®ã§ã[.filename]#/etc/gettytab# ã®äžã§å®çŸ©ãããŠãããšã³ããªãæå®ãããŠããã
* å `nx=` ã§ [.filename]#/etc/gettytab# ã®äžã§å®çŸ©ãããŠãããã® ãæå®ãããŠããã
* å `tc=` ã§ [.filename]#/etc/gettytab# ã®äžã§å®çŸ©ãããŠãããã® ãæå®ãããŠããã
ãããã€ã¢ã« ã€ã³ããŠããFreeBSD ã·ã¹ãã åŽã®ã¢ãã ãå¿çããªãå Žåã¯ãFreeBSD åŽã®ã¢ãã ã DTR ããªã³ã«ãªã£ãæã«é»è©±ã«ã§ãããã«èšå®ã ããŠãããã確èªããŠãã ããã ããã¢ãã ã®èšå®ã«åé¡ããªããããªãã°ã ã¢ãã ã®ã€ã³ãžã±ãŒã¿ (ãããããã°) ã§ã DTR ããªã³ã«ãªã£ãŠããã ã確èªããŠãã ããã
ãã®ç¢ºèªã®ã¹ããããæ°åç¹°ãè¿ããŠã ããŸããããªãå Žåã¯ãäžåºŠäŒæ©ããŠã ãã°ãããã£ãŠããææŠããŠã¿ãŸããããããã§ãã ããªãã ãããã {freebsd-questions} ã«ããªãã®ã¢ãã ã«ã€ããŠã®æ
å ±ãšåé¡ãæžããã¡ãŒã«ãéã ã°ã ã¡ãŒãªã³ã° ãªã¹ãã®ã¡ã³ããŒãåé¡ã®è§£æ±ºãå©ããã¹ãåªåããŠããã ã§ãããã
[[dialout]]
== ãã€ã¢ã«ã¢ãŠããµãŒãã¹
以äžã¯ã¢ãã ãå©çšããŠä»ã®ã³ã³ãã¥ãŒã¿ã𠿥ç¶ããæ¹æ³ã説æããŠããŸãã ããã¯ãªã¢ãŒããã¹ããšã¿ãŒããã«æ¥ç¶ã確ç«ããããã® é©åãªæ¹æ³ã§ãã
ãã㯠BBS ã«æ¥ç¶ãããšãã«ãã䜿ããŸãã
ãã®çš®ã®æ¥ç¶ã¯ PPP æ¥ç¶ã«åé¡ãããå ŽåãInternet äžã«ãããã¡ã€ã«ã 転éããã®ã«éåžžã«åœ¹ã«ç«ã¡ãŸããFTP ã§äœããã®ãã¡ã€ã«ã転éãããã®ã« PPP æ¥ç¶ã確ç«ã§ããªãå Žåã¯ããã¡ã€ã«ã FTP 転éããããã«ã¿ãŒããã«ã»ãã·ã§ã³ ãå©çšããŸãããã㊠ZMODEM ãå©çšããŠãã¡ã€ã«ã転éããŸãã
=== ç§ã® Hayes ã¢ãã ã¯ãµããŒããããŠããŸããã ã©ãããã°ããã§ããã?
å®éã`tip` ã® ããã¥ã¢ã«ããŒãžã¯å€ããªã£ãŠããŸããæ¢ã« Hayes ãã€ã¢ã©ãçµã¿èŸŒãŸããŠããŸãã[.filename]#/etc/remote# ãã¡ã€ã«äžã§ `at=hayes` ã䜿ã£ãŠãã ããã
Hayes ãã©ã€ãã¯ãæè¿ã®ã¢ãã ã®æ°ããæ©èœã§ãã ``BUSY``ã``NO DIALTONE``ã ``CONNECT 115200``ãªã©ã®ã¡ãã»ãŒãžã èªèã§ããã»ã©è³¢ãã¯ãªããåã«æ··ä¹±ãèµ·ããã ãã§ãã ``tip``ã䜿ãå Žåã«ã¯ã (``ATX0W`` ãšãããªã©ããŠ) ãããã® ã¡ãã»ãŒãžã衚瀺ãããªãããã«ããªããŠã¯ãããŸããã
ãŸãã`tip` ã®ãã€ã¢ã«ã®ã¿ã€ã ã¢ãŠã㯠60ç§ã§ããã¢ãã ã® ã¿ã€ã ã¢ãŠãèšå®ã¯ããããçããã¹ãã§ããã ããããªããš `tip` ã¯éä¿¡ã«åé¡ããããšå€æããã§ãããã `ATS7=45W` ãå®è¡ããŠãã ããã
[NOTE]
====
ããã©ã«ãã® `tip` ã¯ã Hayes ã¢ãã ã«å®å
šã«å¯Ÿå¿ããŠããããã§ã¯ãããŸãããè§£æ±ºæ¹æ³ã¯ [.filename]#/usr/src/usr.bin/tip/tip# ã®äžã® [.filename]#tipconf.h# ã倿Žããããšã§ãã ãã¡ããããã«ã¯ãœãŒã¹é
åžãã¡ã€ã«ãå¿
èŠã§ãã
`#define HAYES 0` ãšèšè¿°ãããŠããè¡ã `#define HAYES 1` ãšå€æŽãããã㊠`make`, `make install` ãå®è¡ããŸããããã§ããŸãåäœããã§ãããã
====
[[direct-at]]
=== ãããã® AT ã³ãã³ããå
¥åããã«ã¯?
[.filename]#/etc/remote# ãã¡ã€ã«ã®äžã§ "direct" ãšã³ããªãäœããŸããããšãã°ã¢ãã ã 1çªç®ã®ã·ãªã¢ã«ããŒãã§ãã [.filename]#/dev/cuaa0# ã«æ¥ç¶ãããŠããå Žåãæ¬¡ã®ããã«ããŸã:
[.programlisting]
....
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
....
ã¢ãã ããµããŒãããæå€§ã® bps ã¬ãŒãã br ãã£ãŒã«ãã«äœ¿ããŸãããã㊠`tip cuaa0` ãå®è¡ãããšãã¢ãã ãå©çšã§ããããã«ãªããŸãã
[.filename]#/dev/cuaa0# ãã·ã¹ãã ã«ååšããªãå Žåã¯ã次ã®ããã«ããŸã:
[source,shell]
....
# cd /dev
# sh MAKEDEV cuaa0
....
ãŸã㯠`root` ã«ãªã£ãŠä»¥äžã®ããã« `cu` ã³ãã³ããå®è¡ããŸã:
[source,shell]
....
# cu -lline -sspeed
....
_line_ ã«ã¯ã·ãªã¢ã«ããŒããæå®ããŸã (äŸãã° [.filename]#/dev/cuaa0#)ããã㊠_speed_ ã«ã¯æ¥ç¶ããé床ãæå®ããŸã (äŸãã° `57600`)ããã®åŸ AT ã³ãã³ããå®è¡ããããkbd:[~.] ãšå
¥åããã°çµäºããŸãã
=== pn æ©èœã® `@` èšå·ã䜿ããŸãã!
é»è©±çªå· (pn) æ©èœã®äžã§ã® `@` èšå·ã¯ã tip ã« [.filename]#/etc/phone# ã«ããé»è©±çªå·ãåç
§ããããã«äŒããŸããããã `@` ã®æå㯠[.filename]#/etc/remote# ã®ãã㪠èšå®ãã¡ã€ã«ã®äžã§ã¯ç¹æ®æåãšãªããŸãã ããã¯ã¹ã©ãã·ã¥ã䜿ã£ãŠãšã¹ã±ãŒãããããªããŸã:
[.programlisting]
....
pn=\@
....
=== ã³ãã³ãã©ã€ã³ããé»è©±çªå·ãæå®ããã«ã¯?
"generic" ãšã³ããªãšåŒã°ãããã®ã [.filename]#/etc/remote# ã«è¿œå ããŸãã äŸãã°æ¬¡ã®ããã«ããŸã:
[.programlisting]
....
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
....
ãããŠ
[source,shell]
....
# tip -115200 5551234
....
ã®ããã«å©çšã§ããŸãã `tip` ãã `cu` ã䜿ãããå Žåã `cu` ã® generic ãšã³ããªã䜿ããŸãã
[.programlisting]
....
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
....
ãããŠ
[source,shell]
....
# cu 5551234 -s 115200
....
ãšå®è¡ããŸãã
=== æ¯å bps ã¬ãŒããå
¥åããªããã°ãããŸããã?
`tip1200` ã `cu1200` çšã®ãšã³ããªãèšè¿°ããé©åãªéä¿¡é床ã br ãã£ãŒã«ãã«èšå®ããŸãã`tip` 㯠1200 bps ãæ£ããããã©ã«ãå€ã§ãããšã¿ãªãã®ã§ã `tip1200` ãšã³ããªãåç
§ããŸãããã¡ãã 1200 bps ã䜿ããªããã°ãªããªãããã§ã¯ãããŸããã
=== ã¿ãŒããã«ãµãŒããçµç±ããŠè€æ°ã®ãã¹ããžã¢ã¯ã»ã¹ãããã§ã
æ¯åæ¥ç¶ãããã®ãåŸ
ã£ãŠ `CONNECT host` ãšå
¥åãã ãããã«ãtip ã® `cm` æ©èœã䜿ããŸãã äŸãã°ã[.filename]#/etc/remote# ã«æ¬¡ã®ãããªãšã³ããªã远å ããŸã:
[.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/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
....
ããã§ã`tip pain` ã `tip muffin` ãšå®è¡ãããš pain ã muffin ã®ãã¹ãã«æ¥ç¶ããããšãã§ãã `tip deep13` ãå®è¡ãããšã¿ãŒããã«ãµãŒãã«æ¥ç¶ããŸãã
=== tip ã䜿ã£ãŠããããã®ãµã€ãã® è€æ°ã®åç·ã«æ¥ç¶ã§ããŸãã?
ããã¯å€§åŠã«é»è©±åç·ãããã€ããã£ãŠ æ°å人ã®åŠçãæ¥ç¶ããããšãã å Žåã«ããããåé¡ã§ãã
ããªãã®å€§åŠã®ãšã³ããªã [.filename]#/etc/remote# ãã¡ã€ã«ã«äœæããŠã`pn` ã®ãã£ãŒã«ãã«ã¯ `@` ã䜿ããŸã:
[.programlisting]
....
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
....
ãã㊠[.filename]#/etc/phone# ãã¡ã€ã«ã«å€§åŠã®é»è©±çªå·ã®äžèŠ§ãæžããŸã:
[.programlisting]
....
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
....
`tip` ã¯äžé£ã®é»è©±çªå·ã詊ã¿ãŠã æçµçã«æ¥ç¶ã§ããªããã°ãããããŸãã ãªãã©ã€ãç¶ãããããå Žåã¯ã`tip` ã while ã«ãŒãã«å
¥ã㊠å®è¡ããŸãã
=== kbd:[Ctrl+P] ã 1 åéãããã« kbd:[Ctrl+P] ã 2 床æŒãå¿
èŠãããã®ã¯ãªã?
kbd:[Ctrl+P] ã¯ããã©ã«ãã® "force (匷å¶)" æåã§ããã `tip` ã«æ¬¡ã®æåã ãªãã©ã«ããŒã¿ã§ããããšãäŒããŸããforce æå㯠"倿°ã®èšå®" ãæå³ãã `~s` ãšã¹ã±ãŒãã«ãã£ãŠä»ã®æåã«ããããšãã§ããŸãã
`~sforce=single-char` ãšå
¥åããŠæ¹è¡ããŸãã_single-char_ ã¯ãä»»æã® 1 ãã€ãæåã§ãã _single-char_ ãçç¥ãããš NUL æåã«ãªãããã㯠kbd:[Ctrl+2] ã kbd:[Ctrl+Space] ãæŒããŠãå
¥åã§ããŸãããŸãã _single-char_ ã« kbd:[Shift+Ctrl+6] ãå²ãåœãŠãæ¹æ³ã䜿ã£ãŠããã¿ãŒããã«ãµãŒãããããŸãã
[.filename]#$HOME/.tiprc# ã«æ¬¡ã®ããã«å®çŸ©ããããšã§ãä»»æã®æåã force æåãšããŠå©çšã§ããŸã:
[.programlisting]
....
force=single-char
....
=== æã¡èŸŒãã æåãçªç¶ãã¹ãŠå€§æåã«ãªããŸãã??
kbd:[Ctrl+A] ãæŒããŠããŸããcaps-lock ããŒãå£ããŠããå Žåã®ããã«èšèšããã `tip` ã® "raise character" ã¢ãŒãã«å
¥ã£ãã®ã§ãããã æ¢ã«è¿°ã¹ãããã« `~s` ã䜿ã£ãŠã `raisechar` ãããé©åãªå€ã« 倿ŽããŠãã ããããããããäž¡æ¹ã®æ©èœã䜿çšããªãã®ã§ããã°ã force æåãšåãèšå®ã«ããããšãã§ããŸãã
以äžã¯ kbd:[Ctrl+2] ã kbd:[Ctrl+A] ãªã©ãé »ç¹ã«äœ¿ãå¿
èŠã®ãã Emacs ãŠãŒã¶ã«ãã£ãŠã€ãã® .tiprc ãã¡ã€ã«ã®ãµã³ãã«ã§ãã
[.programlisting]
....
force=^^
raisechar=^^
....
^^ 㯠kbd:[Shift+Ctrl+6] ã§ãã
=== `tip` ã§ãã¡ã€ã«ã転éããã«ã¯?
ããä»ã® Unix ã®ã·ã¹ãã ãšæ¥ç¶ããŠãããªãã `~p`(put) ã `~t`(take) ã§ãã¡ã€ã«ã®éåä¿¡ãã§ããŸãããããã®ã³ãã³ãã¯ çžæã®ã·ã¹ãã ã®äžã§ `cat` ã `echo` ãå®è¡ããããšã§ éåä¿¡ãããŸãã æžåŒã¯ä»¥äžã®ããã«ãªããŸã:
`~p` ããŒã«ã«ã®ãã¡ã€ã«å [ ãªã¢ãŒãã®ãã¡ã€ã«å ]
`~t` ãªã¢ãŒãã®ãã¡ã€ã«å [ ããŒã«ã«ã®ãã¡ã€ã«å ]
ãã®æ¹æ³ã§ã¯ãšã©ãŒãã§ãã¯ããããªããŸããã®ã§ãzmodem ãªã©ã®ä»ã®ãããã³ã«ã䜿ã£ãæ¹ãããã§ãããã
=== `tip` ãã zmodem ãå®è¡ããã«ã¯?
ãã¡ã€ã«ãåä¿¡ããã«ã¯ã ãªã¢ãŒãåŽã§éä¿¡ããã°ã©ã ãèµ·åããŸãããã㊠`~C rz` ãšå
¥åãããšãããŒã«ã«åŽãžã®ãã¡ã€ã«ã®åä¿¡ã å§ãŸããŸãã
ãã¡ã€ã«ãéä¿¡ããã«ã¯ã ãªã¢ãŒãåŽã§åä¿¡ããã°ã©ã ãèµ·åããŸãããã㊠`~C sz files` ãšå
¥åãããšã ãªã¢ãŒãåŽãžã® ãã¡ã€ã«ã®éä¿¡ãå§ãŸããŸãã
[[serialconsole-setup]]
== ã·ãªã¢ã«ã³ã³ãœãŒã«ã®èšå®
[[serialconsole-intro]]
=== å°å
¥
FreeBSD ã¯ã ã³ã³ãœãŒã«ãšããŠã·ãªã¢ã«ããŒãäžã®ãã 端æ«ããæããªãã·ã¹ãã ã§ãèµ·åããŸãã ãã®æ§ãªæ§æã¯ãã£ã𿬡ã®ãããªäºçš®é¡ã®äººéã«äŸ¿å©ã§ããããããã¯ã ããŒããŒããã¢ãã¿ã®ãªããã·ã³ã« FreeBSD ãã€ã³ã¹ããŒã«ãããã·ã¹ãã 管çè
ãšã ã«ãŒãã«ãããã€ã¹ãã©ã€ãããããã°ãããéçºè
ã§ãã
crossref:boot[boot,FreeBSD ã®èµ·åã®ããã»ã¹] ã§èª¬æãããŠããããã«ã FreeBSD 㯠3 ã¹ããŒãžæ§æã®ããŒãã¹ãã©ãããçšããŠããŸãã æåã® 2 ã€ã®ã¹ããŒãžã¯ã ããŒããã£ã¹ã¯ã«ãã FreeBSD ã¹ã©ã€ã¹ã®æåã«æ ŒçŽãããŠããã ããŒããããã¯ã®ã³ãŒããè¡ããŸãã ããããããŒããããã¯ã¯ã第 3 ã¹ããŒãžã®ã³ãŒããšããŠããŒãããŒã ([.filename]#/boot/loader#) ãèªã¿èŸŒã¿ãå®è¡ããŸãã
ã·ãªã¢ã«ã³ã³ãœãŒã«ãèšå®ããããã«ã¯ãããŒããããã¯ã³ãŒãã ããŒãããŒãã³ãŒããã«ãŒãã«ãèšå®ããå¿
èŠããããŸãã
[[serialconsole-howto]]
=== ã·ãªã¢ã«ã³ã³ãœãŒã«ã®èšå®
[.procedure]
====
. ã·ãªã¢ã«ã±ãŒãã«ãçšæããŠãã ããã
+
ãã«ã¢ãã ã±ãŒãã«ã ãããã¯æšæºã·ãªã¢ã«ã±ãŒãã«ãšãã«ã¢ãã ã¢ããã¿ãå¿
èŠãšãªããŸãã ã·ãªã¢ã«ã±ãŒãã«ã«ã€ããŠã¯ <<serial-cables-ports>> ãã芧ãã ããã
. ããŒããŒããã¯ãããŠäžããã
+
ãããŠãã® PC ã·ã¹ãã 㯠Power-On Self-Test (POST) ã®éã«ããŒããŒããæ€åºããããèŠã€ãããªããã°ãšã©ãŒãš ãªããŸãããŸããããŒããŒãããªãããšã倧ããªé³ã§ç¥ããã ããŒããŒããæ¥ç¶ããããŸã§ã¯èµ·åãäžæãããããªãã·ã³ããããŸãã
+
ã³ã³ãã¥ãŒã¿ããšã©ãŒã衚瀺ããŠããŠãã ãšã«ããèµ·åãããªãç¹å¥ãªå¯Ÿå¿ã¯å¿
èŠãããŸãã (Phoenix BIOS ãæèŒããŠãããã·ã³ã«ã¯ã `Keyboard failed` ãšè¡šç€ºãããŠããæ£åžžã«èµ·åãããã®ããããŸã)ã
+
ããªãã®ã³ã³ãã¥ãŒã¿ãããŒããŒããæ¥ç¶ããŠããªãç¶æ
ã§ èµ·åããªããããªãã(ããå¯èœãªãã°) ãšã©ãŒãç¡èŠããããã« BIOS ãèšå®ããå¿
èŠããããŸããèšå®æ¹æ³ã®è©³çްã«ã€ããŠã¯ã ãã¶ãŒããŒãã®ããã¥ã¢ã«ã調ã¹ãŠãã ããã
+
[TIP]
======
BIOS ã®èšå®ã§ããŒããŒãã "Not installed" ã«ãããšããããšã¯ãããŒããŒãã䜿ããªããšããããšã æå³ããŠããããã§ã¯__ãããŸãã__ãããã¯ãBIOS ãããŒããŒãããªããŠãæå¥ãèšããªãããã«ã黿ºæå
¥æã«ã¯ ããŒããŒããæ¢ããªããšæç€ºããã ãã§ãããã®ãã©ã°ã "Not installed" ã«ããŠããŠãããŒããŒãã æ¥ç¶ãããŸãŸã«ã§ããŸãããã¡ãããšåäœããŸãã
======
+
[NOTE]
======
ããªãã®ã·ã¹ãã ã PS/2 ããŠã¹ã䜿ã£ãŠãããªãã ããããããŠã¹ãããŒããŒãåæ§ã«ã¯ããå¿
èŠãããã§ãããã ãšããã®ã¯ãPS/2 ããŠã¹ã¯éšåçã«ããŒããŒããšããŒããŠã§ã¢ã å
±æããŠãããããŠã¹ãæ¥ç¶ãããŸãŸã«ããŠãããšã ããŒããŒããååšããããšèª€ã£ãŠæ€åºããŠããŸãå¯èœæ§ãããããã§ãã AMI BIOS ãæã€ Gateway 2000 Pentium 90MHz ã·ã¹ãã ã¯ããã«è©²åœãããšèšãããŠããŸãã äžè¬çã«ããã¯åé¡ã§ã¯ãããŸããããªããªããã©ã£ã¡ã«ããŠã ããŠã¹ã¯ããŒããŒããªãã§ã¯ããããŠåœ¹ã«ç«ããªãããã§ãã
======
+
. [.filename]#COM1# ([.filename]#sio0#) ã«ãã 端æ«ãæ¥ç¶ããŠãã ããã
+
ãã 端æ«ããªããã°ããããã«å€ã PC/XT ã§ã¢ãã ããã°ã©ã ãèµ°ãããŠäœ¿ã£ãããã·ãªã¢ã«ããŒãã«ä»ã® Unix ãã·ã³ãç¹ãã ãã§ããŸããããã [.filename]#COM1# ([.filename]#sio0#) ããªããã°ãäœæããŠãã ããã ä»ã®ãšããã[.filename]#COM1# 以å€ã®ããŒãã éžæããããã«ã¯ããŒããããã¯ã®åã³ã³ãã€ã«ãå¿
èŠã§ãã ãã§ã« [.filename]#COM1# ãä»ã®è£
眮㫠䜿ã£ãŠããå Žåã¯ãäžæçã«ãã®è£
眮ãã¯ãã㊠ãã£ãã FreeBSD ãããŸãåäœããŠããã æ°ããããŒããããã¯ãšã«ãŒãã«ãã€ã³ã¹ããŒã«ããŠãã ããã (äžèšã¯ãšã«ãããã¡ã€ã«/æŒç®/端æ«ãµãŒãã® [.filename]#COM1# ãå©çšå¯èœã§ãããšä»®å®ã㊠ããŸããããªããæ¬åœã«äœãã®ããã« [.filename]#COM1# ãå¿
èŠ (ã§ããªããã€ãã®äœãã [.filename]#COM2# ([.filename]#sio1#) ã«ä»ãæ¿ããããšãã§ããªã) ãªãã°ãå€åããããã æ©ãã§ãå Žåã§ã¯ãããŸããã)
. ã«ãŒãã«ã³ã³ãã£ã°ãã¡ã€ã«ã® [.filename]#COM1# ([.filename]#sio0#) ã«é©åãªãã©ã°ã èšå®ããŠããããšã確èªããŠãã ããã
+
é¢é£ãããã©ã°:
+
`0x10`:::
ãã®ããŒãã®ã³ã³ãœãŒã«ãµããŒããæå¹ã«ããŸãã ãã®ãã©ã°ãèšå®ãããªãå Žåãä»ã®ãã©ã°ã¯ç¡èŠãããŸãã çŸåšã®ãšãããäžã€ã®ããŒãããã³ã³ãœãŒã«ãµããŒããæå¹ã« ã§ããŸããã(config ãã¡ã€ã«ã«æžãããé çªã§) æåã«ãã®ãã©ã°ã æå®ãããããŒããéžæãããŸãã ãªãããã®ãªãã·ã§ã³ãæå®ããã ãã§ã·ãªã¢ã«ããŒãã ã³ã³ãœãŒã«ãšããŠäœ¿ããããã§ã¯ãããŸããã ãã®ãã©ã°ãšäžç·ã«ã以äžã®ãã©ã°ãæå®ãããããã㯠`-h` ãªãã·ã§ã³ã䜿ã£ãŠãã ããã
`0x20`:::
åŸè¿°ããã `-h` ãªãã·ã§ã³ ãç¡èŠããŠã(ä»ã«åªå
床ã®é«ãã³ã³ãœãŒã«ããªãéã) ãã®ããŒããã³ã³ãœãŒã«ãšããŠæå®ããŸãã ãã®ãã©ã°ã¯ FreeBSD ããŒãžã§ã³ 2._X_ ã® `COMCONSOLE` ãªãã·ã§ã³ã«å¯Ÿå¿ãããã®ã§ãã ãã©ã° `0x20` ã¯å¿
ã ãã©ã° `0x10` ãšäžç·ã«æå®ãããªããã°ãªããŸããã
`0x40`:::
(`0x10` ãšçµã¿åãããããšã§) ãã®ããŒããäºçŽããéåžžã®ã¢ã¯ã»ã¹ãã§ããªã ããã«ããŸãã ãã®ãã©ã°ã¯ãã·ãªã¢ã«ã³ã³ãœãŒã«ãšããŠäœ¿ãããããŒãã« æå®ãã¹ãã§ã¯ãããŸããã å¯äžã®äœ¿ãéã¯ããŠããããã«ãŒãã«ã®ãªã¢ãŒããããã°çš ã§ããããšãæå®ããããšã§ãã ãªã¢ãŒããããã°ã®è©³çްã«ã€ããŠã¯ extref:{developers-handbook}[The Developer's Handbook] ãåç
§ããŠãã ããã
+
[NOTE]
======
FreeBSD 4.0 以éã§ã¯ã ãã©ã° `0x40` ã®æå³ãè¥å¹²ç°ãªãã ã·ãªã¢ã«ããŒãã«ãªã¢ãŒããããã°ãæå®ããããã«ã¯ã å¥ã®ãã©ã°ã䜿ããŸãã
======
+
äŸ:
+
[.programlisting]
....
device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4
....
+
詳现ã«ã€ããŠã¯ man:sio[4] ã®ããã¥ã¢ã«ãåç
§ããŠãã ããã
+
ãããããã®ãã©ã°ãã»ãããããŠããªããã°ã(å¥ã®ã³ã³ãœãŒã«ã§) UserConfig ãå®è¡ãããã ã«ãŒãã«ãåã³ã³ãã€ã«ããå¿
èŠããããŸãã
. ããŒããã©ã€ãã® `a` ããŒãã£ã·ã§ã³ã® ã«ãŒããã£ã¬ã¯ããªã« [.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`ãããŒããŒããååšããªãå Žå
|ã·ãªã¢ã«
|===
+
ãã®ã¡ãã»ãŒãžã衚瀺ãããåŸã ããŒããããã¯ãããŒãããŒãã®ããŒããåéãã ä»ã®å
šãŠã®ã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«è¡šç€ºããããŸã§ã è¥å¹²æéãããããŸããéåžžã®ç°å¢ã§ã¯ãããŒããããã¯ã« å²ã蟌ã¿ããããå¿
èŠã¯ãããŸãããã ã¡ãããšã»ããã¢ãããããŠãããã©ãã確ãããããã«ã å²ã蟌ã¿ããããããšãã§ããããã«ãªã£ãŠããŸãã
+
ããŒãããã»ã¹ã«å²ã蟌ã¿ããããã«ã¯ã ã³ã³ãœãŒã«ã® (Enter 以å€ã®) ããŒãããããŠäžããã ããŒããããã¯ã¯ãã®æãæäœãæå®ããããã®ããã³ããã衚瀺ããŸãã ãããªé¢šã«è¡šç€ºãããã§ãããã
+
[source,shell]
....
>> FreeBSD/i386 BOOT
Default: 0:wd(0,a)/boot/loader
boot:
....
+
äžã«ç€ºããã¡ãã»ãŒãžããã·ãªã¢ã«ãå
èµã ãããã¯ãã®äž¡æ¹ãšãã£ãã[.filename]#/boot.config# ã§æå®ãããšããã®ã³ã³ãœãŒã«ã«è¡šç€ºãããããšã確èªããŠäžããã ã¡ãã»ãŒãžãæ£ããã³ã³ãœãŒã«ã«è¡šç€ºããããã Enter ããŒãæŒããŠããŒãããã»ã¹ãç¶ç¶ããŠãã ããã
+
ãããã·ãªã¢ã«ã³ã³ãœãŒã«ãå©çšããããã«èšå®ããŠããã®ã« ã·ãªã¢ã«ç«¯æ«ã«ããã³ãããåºãŠããªãå Žåã¯ã èšå®ã®ã©ããã«ééãããããŸãã ããŒããããã¯(ãšããŒãããŒããã«ãŒãã«)ã«å¯Ÿã㊠ã·ãªã¢ã«ããŒããã³ã³ãœãŒã«ã«äœ¿ãããšãäŒããããã å²ã蟌ã¿ããããæã« `-h` ãå
¥åãã (å¯èœãªãã°) Enter/Return ããŒãæŒããŠäžããããããŠã äžåºŠã·ã¹ãã ãèµ·åãããŠãããã©ããæªãã®ãããã§ãã¯ããŠäžããã
====
ããŒãããŒããããŒããããããŒãããã»ã¹ã®ç¬¬äžã¹ããŒãžã« ããæã«ã¯ããŸã å
èµã³ã³ãœãŒã«ãšã·ãªã¢ã«ã³ã³ãœãŒã«ãåãæ¿ããããšãã§ããŸãã ããã«ã¯ããŒãããŒãã®ç°å¢å€æ°ãé©åã«èšå®ããã¯è¯ãã®ã§ããã 詳现ã«ã€ããŠã¯ <<serialconsole-loader>> ãåç
§ããŠãã ããã
[[serialconsole-summary]]
=== ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§æ±ã£ãããŸããŸãªèšå®ãšã æçµçã«éžæãããã³ã³ãœãŒã«ã«é¢ãããŸãšãã§ãã
==== Case 1: [.filename]#sio0# ã® flags ã« 0x10 ãã»ããããå Žå
[.programlisting]
....
device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4
....
[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
| /boot.config å
ã®ãªãã·ã§ã³
| ããŒããããã¯å®è¡äžã®ã³ã³ãœãŒã«
| ããŒãããŒãå®è¡äžã®ã³ã³ãœãŒã«
| ã«ãŒãã«ã®ã³ã³ãœãŒã«
|ãªã
|å
èµ
|å
èµ
|å
èµ
|`-h`
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|`-D`
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|å
èµ
|å
èµ
|`-Dh`
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|`-P`ãããŒããŒããååšããå Žå
|å
èµ
|å
èµ
|å
èµ
|`-P`ãããŒããŒããååšããªãå Žå
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|===
==== Case 2: sio0 ã® flags ã« 0x30 ãã»ããããå Žå
[.programlisting]
....
device sio0 at isa? port "IO_COM1" tty flags 0x30 irq 4
....
[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
| /boot.config å
ã®ãªãã·ã§ã³
| ããŒããããã¯å®è¡äžã®ã³ã³ãœãŒã«
| ããŒãããŒãå®è¡äžã®ã³ã³ãœãŒã«
| ã«ãŒãã«ã®ã³ã³ãœãŒã«
|ãªã
|å
èµ
|å
èµ
|ã·ãªã¢ã«
|`-h`
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|`-D`
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|å
èµ
|ã·ãªã¢ã«
|`-Dh`
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|`-P`ãããŒããŒããååšããå Žå
|å
èµ
|å
èµ
|ã·ãªã¢ã«
|`-P`ãããŒããŒããååšããªãå Žå
|å
èµãã·ãªã¢ã«ã®äž¡æ¹
|ã·ãªã¢ã«
|ã·ãªã¢ã«
|===
[[serialconsole-tips]]
=== ã·ãªã¢ã«ã³ã³ãœãŒã«ãå©çšããäžã§åœ¹ã«ç«ã€æ
å ±
==== ã·ãªã¢ã«ããŒãã®éä¿¡é床ããã£ãšéããã®ã«èšå®ããã«ã¯
ããã©ã«ãã®ã·ãªã¢ã«ããŒãéä¿¡é床ã¯ã9600 ããŒã 8 ããããããªãã£ãªããã¹ãããããã 1 ã§ãã éä¿¡é床ã倿Žãããå Žåã«ã¯ãå°ãªããšã ããŒããããã¯ã®åã³ã³ãã€ã«ãå¿
èŠã«ãªããŸãã [.filename]#/etc/make.conf# ã«æ¬¡ã®ãããªè¡ã远å ããŠã æ°ããããŒããããã¯ãã³ã³ãã€ã«ããŠäžããã
[.programlisting]
....
BOOT_COMCONSOLE_SPEED=19200
....
ãããã·ãªã¢ã«ã³ã³ãœãŒã«ãããŒãæã® `-h` ãªãã·ã§ã³ä»¥å€ã®æ¹æ³ã§èšå®ãããŠãããã ã«ãŒãã«ãå©çšããã·ãªã¢ã«ã³ã³ãœãŒã«ã ããŒããããã¯å®è¡äžã®ãã®ãšç°ãªãå Žåã«ã¯ã ã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã«æ¬¡ã®ãªãã·ã§ã³ã远å ããŠã æ°ããã«ãŒãã«ãã³ã³ãã€ã«ããªããã°ãªããŸããã
[.programlisting]
....
options CONSPEED=19200
....
[[serialconsole-com2]]
==== [.filename]#sio0# 以å€ã®ã·ãªã¢ã«ããŒãã ã³ã³ãœãŒã«ãšããŠäœ¿ãã«ã¯
[.filename]#sio0# 以å€ã®ããŒããã³ã³ãœãŒã«ãšããŠäœ¿ãã«ã¯ãåã³ã³ãã€ã«ãå¿
èŠã§ãã ãããã©ããªçç±ã§ãããä»ã®ããŒãã䜿çšããå Žåã«ã¯ ããŒããããã¯ãããŒãããŒããã«ãŒãã«ã 次ã®ããã«ããŠåã³ã³ãã€ã«ããŠäžããã
[.procedure]
====
. ã«ãŒãã«ãœãŒã¹ãååŸãã (crossref:cutting-edge[updating-upgrading,FreeBSD ã®ã¢ããããŒããšã¢ããã°ã¬ãŒã] ãã芧ãã ãã)ã
. [.filename]#/etc/make.conf# ãç·šéãã `BOOT_COMCONSOLE_PORT` 㫠䜿çšãããããŒãã®ã¢ãã¬ã¹(0x3F8ã0x2F8ã0x3E8 or 0x2E8)ã èšå®ããŠãã ããã䜿çšå¯èœãªã®ã¯ [.filename]#sio0# ãã [.filename]#sio3# ([.filename]#COM1# ãã [.filename]#COM4#) ãŸã§ã§ã ãã«ãããŒãã·ãªã¢ã«ã«ãŒãã¯äœ¿ããŸããã ãŸããããã§å²ã蟌ã¿ã®èšå®ãããå¿
èŠã¯ãããŸããã
. èšå®ã倿Žããããã«æ°ããªã«ãŒãã«ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãäœæãã 䜿ãããã·ãªã¢ã«ããŒãã®ãã©ã°ãé©åã«èšå®ããŸãã äŸãã°ã[.filename]#sio1# ([.filename]#COM2#) ãã³ã³ãœãŒã«ã«ããããã°ã
+
[.programlisting]
....
device sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3
....
+
ãŸãã¯ã
+
[.programlisting]
....
device sio1 at isa? port "IO_COM2" tty flags 0x30 irq 3
....
+
ãšããŸãããã®éã ä»ã®ã·ãªã¢ã«ããŒãã«ã³ã³ãœãŒã«ãã©ã°ãã€ããŠã¯ãããŸããã
. ããŒããããã¯ãåã³ã³ãã€ã«ããã€ã³ã¹ããŒã«ããã
+
[source,shell]
....
# cd /sys/boot/i386/boot2
# make
# make install
....
+
. ããŒãããŒããåã³ã³ãã€ã«ããã€ã³ã¹ããŒã«ããã
+
[source,shell]
....
# cd /sys/boot/i386/loader
# make
# make install
....
+
. ã«ãŒãã«ãåæ§ç¯ããã€ã³ã¹ããŒã«ããã
. man:disklabel[8] ã䜿ã£ãŠããŒããããã¯ãããŒããã£ã¹ã¯ã«æžã蟌ã¿ã æ°ããã«ãŒãã«ããèµ·åããã
====
==== ã·ãªã¢ã«ããŒããã DDB ãããã¬ãèµ·åããã«ã¯
ã·ãªã¢ã«ã³ã³ãœãŒã«ããã«ãŒãã«ãããã¬ãèµ·åããã(ãã㯠ãªã¢ãŒãã§èšºæããéã«äŸ¿å©ã§ãããããããã㪠BREAK ä¿¡å·ãã·ãªã¢ã«ããŒãã«éããããããªå Žåã«ã¯å±éºã§ã!) å Žåã«ã¯ã次ã®ãªãã·ã§ã³ã䜿ã£ãŠã«ãŒãã«ãã³ã³ãã€ã«ããŠäžããã
[.programlisting]
....
options BREAK_TO_DEBUGGER
options DDB
....
==== ã·ãªã¢ã«ã³ã³ãœãŒã«ã«ãã°ã€ã³ããã³ããã衚瀺ãããã«ã¯
ã·ãªã¢ã«ã³ã³ãœãŒã«ããããŒãã¡ãã»ãŒãžã確èªãããã ã·ãªã¢ã«ã³ã³ãœãŒã«ãçµç±ããŠã«ãŒãã«ãããã°ã»ãã·ã§ã³ã«å
¥ãããšã ã§ããã®ã§ãããã¯å¿
èŠããªããããããŸãããã _login_ ããã³ãããã·ãªã¢ã«ããŒãã« åºåããããã«èšå®ããããšãã§ããŸãã ããã«ã¯ã次ã®ããã«ããŸãã
ãšãã£ã¿ã§ [.filename]#/etc/ttys# ãšãããã¡ã€ã«ãéãã æ¬¡ã«ç€ºãè¡ã«ç§»åããŠäžããã
[.programlisting]
....
ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off secure
....
`ttyd0` ãã `ttyd3` ã¯ã [.filename]#COM1# ãã [.filename]#COM4# ã«å¯Ÿå¿ããŠããŸãã èšå®ãããããŒãã® `off` ã `on` ã«å€æŽããŠäžããã ãŸããããã·ãªã¢ã«ããŒãã®éä¿¡é床ã倿ŽããŠãããªãã `std.9600` ãå®éã®éä¿¡é床ã«ãªãããã«ã äŸãã° `std.19200` ã®ããã«å€æŽããŠäžããã
ããã«ãå®éã®ã·ãªã¢ã«ç«¯æ«ã«åãããŠã 端æ«ã¿ã€ãã `unknown` ãã倿Žããããšãå¯èœã§ãã
ãã¡ã€ã«ã®ç·šéãçµäºãããã 倿Žãæå¹åããããã« `kill -HUP 1` ãå®è¡ããªããã°ãªããŸããã
[[serialconsole-loader]]
=== ããŒãããŒãããã³ã³ãœãŒã«ã倿Žããã«ã¯
åã»ã¯ã·ã§ã³ã¯ãããŒããããã¯ã®èšå®ã倿Žããããšã§ã·ãªã¢ã«ã³ã³ãœãŒã«ã ã»ããã¢ããããæ¹æ³ã«ã€ããŠè§£èª¬ããŠããŸããã ãã®ã»ã¯ã·ã§ã³ã§ã¯ãããŒãããŒããžã®ã³ãã³ãå
¥åãšç°å¢å€æ°èšå®ã§ ã³ã³ãœãŒã«ã®æå®ãè¡ãªãæ¹æ³ã玹ä»ããŸãã ããŒãããŒããããŒããããã¯ã®åŸã ããŒãããã»ã¹ã®ç¬¬äžã¹ããŒãžã§åŒã³åºããããšãã ããŒãããŒãã®èšå®ã«ã¯ãããŒããããã¯ã®èšå®ããã®ãŸãŸäœ¿ãããŸãã
==== ã·ãªã¢ã«ã³ã³ãœãŒã«ãã»ããã¢ãããã
ããŒãããŒããšã«ãŒãã«ã«å¯Ÿã㊠ã·ãªã¢ã«ã³ã³ãœãŒã«ã䜿çšããããã«èšå®ããã«ã¯ã åã« [.filename]#/boot/loader.rc# ã®ãã¡ã€ã«ã«ã次ã®ãããªäžè¡ãæžãã ãã§å®çŸã§ããŸãã
[.programlisting]
....
set console=comconsole
....
ããã¯ãåã»ã¯ã·ã§ã³ã§æ±ã£ãããŒããããã¯ã®èšå®ã« å
šãé¢ä¿ãªãæ©èœããŸãã
äžã«ç€ºããè¡ã¯ã [.filename]#/boot/loader.rc# ã®æåã®è¡ã«æžã蟌ãŸãªããŠã¯ãããŸããã ããã¯ã§ããã ãæ©ããããŒãã¡ãã»ãŒãžãã·ãªã¢ã«ã³ã³ãœãŒã«ã« åºåãããããã«å¿
èŠãªããšã§ãã
åæ§ã«ããŠã次ã®ããã«å
èµã³ã³ãœãŒã«ãæå®ããããšãã§ããŸãã
[.programlisting]
....
set console=vidconsole
....
ãããããŒãããŒãã®ç°å¢å€æ° `console` ãèšå®ãããŠããªãå Žåã ããŒãããŒãããããŠãã®æ¬¡ã«èµ·åããã«ãŒãã«ã¯ ããŒããããã¯ã§æå®ããã `-h` ãªãã·ã§ã³ã« 瀺ãããã³ã³ãœãŒã«ã䜿çšããŸãã
3.2 以éã®ããŒãžã§ã³ã«ãããŠã¯ [.filename]#/boot/loader.rc# ã§ã¯ãªãã [.filename]#/boot/loader.conf.local# ã [.filename]#/boot/loader.conf# ã«ã³ã³ãœãŒã«æå®ãæžã蟌ã¿ãŸãã ãã®å Žåã [.filename]#/boot/loader.rc# ã¯æ¬¡ã®ããã«ãªã£ãŠããªããã°ãªããŸããã
[.programlisting]
....
include /boot/loader.4th
start
....
ããããã[.filename]#/boot/loader.conf.local# ãäœæããŠã次ã®è¡ãããã«è¿œå ããŠäžããã
[.programlisting]
....
console=comconsole
....
ãããããã¯
[.programlisting]
....
console=vidconsole
....
ã§ãã詳现ã«ã€ããŠã¯ãman:loader.conf[5] ãåç
§ããŠäžããã
[NOTE]
====
ãã®éãããŒãããŒãã¯ãªãã·ã§ã³æå®ãªã (ããŒããããã¯ã« `-P` ãªãã·ã§ã³ãæå®ãããã®ãšç䟡)ã«ãªãã ããŒããŒãã®ååšã調ã¹ãŠ å
èµã³ã³ãœãŒã«ãšã·ãªã¢ã«ã³ã³ãœãŒã«ãèªåçã«éžæããæ©èœã¯åããŸããã
====
==== [.filename]#sio0# 以å€ã®ã·ãªã¢ã«ããŒãã ã³ã³ãœãŒã«ãšããŠäœ¿ãã«ã¯
[.filename]#sio0# 以å€ã®ã·ãªã¢ã«ããŒãã ã³ã³ãœãŒã«ãšããŠäœ¿ãã«ã¯ãããŒãããŒããåã³ã³ãã€ã«ããå¿
èŠããããŸãã ããã«ã¯ã <<serialconsole-com2>> ã«æžãããŠãã説æã«ãããã£ãŠäžããã
[[serialconsole-caveats]]
=== 泚æ
ã·ãªã¢ã«ã³ã³ãœãŒã«ãšããã¢ã€ãã¢ã¯ã ã°ã©ãã£ãã¯åºåçšã®ããŒããŠã§ã¢ãããŒããŒããæ¥ç¶ãããŠããªã å°çšãµãŒãã®ã»ããã¢ãããå¯èœã«ããããã®ãã®ã§ãã ã»ãšãã©ã®ã·ã¹ãã ã¯ããŒããŒããªãã§èµ·åã§ããŸããã äžå¹žã«ããã°ã©ãã£ãã¯ã¢ããã¿ãªãã§ã¯èµ·åã§ããªãã·ã¹ãã ã¯ãããããããŸãã AMI BIOS ãæ¡çšããŠãããã·ã³ã§ã¯ãCMOS èšå®ã® `graphics adapter` ã `Not Installed` ã«ããã ãã§ã ã°ã©ãã£ãã¯ã¢ããã¿ããªããšãèµ·åã§ããããã«èšå®ããããšãã§ããŸãã
ããããªãããå€ãã®ãã·ã³ã¯ãã®ãããªãªãã·ã§ã³ãæã£ãŠããŸãããã ãã£ã¹ãã¬ã€ããŒããŠã§ã¢ãã·ã¹ãã ã«ååšããªããšèµ·åããªãããã« ãªã£ãŠããŸãããã®ãããªãã·ã³ã§ã¯ã ã¢ãã¿ãæ¥ç¶ããå¿
èŠããªãã£ããšããŠãã é©åœãªã°ã©ãã£ãã¯ã«ãŒã(ã¢ãã¯ãã®ãžã£ã³ã¯åã§ãæ§ããŸãã)ã æ¿å
¥ãããŸãŸã«ããŠããå¿
èŠãããã§ãããã ãŸããAMI BIOS ãã€ã³ã¹ããŒã«ããããšããæããããŸãã