============================================================================ seyon ミニ HowTo (第2版) 1997年6月1日 川岸 良治 kawagishi@pa.aix.or.jp KFA02544@niftyserve.or.jp 1,2,3,5,11,12章、および全体の編集 このドキュメントの作成にあたり、以下の方々のご協力を得ました。 大森 康夫 ohmori@sunfield.or.jp KGG00203@niftyserve.or.jp 4章 小倉 俊昌 toshi@kakaa.or.jp PXR00371@niftyserve.or.jp 4章 司馬 遼 BXI05301@niftyserve.or.jp 4章 中田 伸悦 7L3VZI@B.C.Shambleau GEA02117@niftyserve.or.jp 4章 難波 清一 sn@asahi-net.email.ne.jp GBC00441@niftyserve.or.jp 7,10章 松永 千春 VYQ04154@niftyserve.or.jp 4,6,8,9章 花高 信哉 hanataka@abyss.rim.or.jp 2章[参考2] ---------------------------------------------------------------------------- 目 次 1.seyonとは? 2.seyonの入手とインストール 3.seyonの基本設定 4.seyonで日本語表示するには? 5.seyonの使い方 6.seyonで日本語入力するには? 7.seyonで通信ログをファイルに落とすには? 8.seyonでテキストファイルをアップロードするには? 9.NiftyのBPlusでファイルをダウンロードするには? 10.ロックファイルの問題について 11.参考資料 12.改版履歴 ============================================================================ 1.seyonとは? X Window-system 上で動作するターミナル・エミュレータです。 オートログイン、バイナリファイルのダウンロードなどを含むほとんどの操作が マウスで出来ます。パソコン通信用の通信ソフトとして使えます。 以下に述べる設定により、日本語の表示/入力が可能になります。 このドキュメントの内容は、以下のような環境で動作確認しました。 seyon : version 2.1 rev. 4b Slackware : 3.1.0 カーネル : 2.0.0 Xfree86 : 3.1.2 / 3.2 JE : 0.9.8a (但し、10章については Slackware : 3.0 です) ところで seyon とは、どういう意味なのか英語とフランス語の辞書で調べて みたのですが出ていませんでした。作者の Muhammad M. Saggaf という方の住所 がサウジアラビアの Dhahran とマニュアルに書いてあるので、そちらの方の言葉 と関係があるのかもしれません。ご存知の方は教えて下さい。 2.seyonの入手とインストール Slackware の場合、xap1 パッケージの中にバイナリファイルが入っています。 次のようにしてインストールします。 (1) # cd /cdrom/SLACK310/slakware/xap1 ディレクトリは CD-ROM によって異なります。 (2) # installpkg seyon.tgz (3) 念のため、どこに何がインストールされたか確認するには、 # pkgtool と入力後、view コマンドで seyon を指定して調べます。 (4) seyon のインストール直後にある /usr/X11/bin/seyon-emu を rm コマンドで削除します。 (このファイルは、xterm へのリンクが張られています) (5) kterm(ここでは、xterm でもよい)上で # seyon -noemulator -modem /dev/ttys0 と入力して seyon を起動すると、~/.seyon というディレクトリが作られ その下に各種設定ファイル(startup, phonelist, protocols など)が コピーされるので、すぐに Exit ボタンを押して終了させます。 [参考1] Linux には、COM1 から COM4 に対応する基本的なシリアルデバイス が4つあります。モデムがどのポートに接続されているかに合わせて 上記の /dev/cua0 のところを変えて下さい。 /dev/cua0, /dev/ttyS0 (COM1) address 0x3f8 IRQ 4 /dev/cua1, /dev/ttyS1 (COM2) address 0x2f8 IRQ 3 /dev/cua2, /dev/ttyS2 (COM3) address 0x3e8 IRQ 4 /dev/cua3, /dev/ttyS3 (COM4) address 0x2e8 IRQ 3 /dev/tty? は受信用に、また /dev/cua? は発信用に使われます。 詳しくは、JF の Serial HOWTO をご覧下さい。 この Serial HOWTO 日本語版には、この他にモデムの設定とか トラブル時の対応など役に立つことが書かれています。 [参考2] linux を始めとする unix 系の OS で、一つのシリアル・ポートに ttyS# と cua# 複数のデバイスが存在している理由ですが、歴史的に モデムがまだダイアル機能を内蔵していなかった大昔に遡ります。 この頃にはダイアラーと呼ばれるダイアルだけをする専用の装置があ り、それぞれのデバイスはモデム(ttyS#)とダイアラー(cua#)という 別々の装置につながっていました。 ダイアル機能を内蔵したモデムが一般的になってきた時に互換性を維 持するために ttyS# は cua# と同じシリアル・ポートに接続するよ うにし、 ・cua# は発呼用デバイスとしカーネル内部でロックを行ない、回線 が接続されていなくてもオープンできる。 ・ttyS# は通信用デバイスとしロック・ファイルを使ってロックを行 ない、回線が接続されていなればオープンできない。 という仕様にしました。 多くのソフトウェアがこれを前提に作られていたので、linux でも cua# が発呼用デバイス、ttyS# を受信用デバイスとされて来ました。 古いドキュメントにもそのように書かれたものが多くあります。 ただ、この仕組みには大きな問題があり、一つのモデムで発信と受信 の両方を行なおうとした場合にロック形式の違いなどによりデバイス の取り合いが発生してしまいます。それで最近の linux では発信も 受信も統一的にロック・ファイルを用いてロックを行ない、ttyS# を 用いて通信を行なうというのが一般的になっています。 発信しかしない場合には ttyS# と cua#との違いは気にならないかも しれませんが、cua#は歴史的遺物ですので積極的に使う理由はないと 思われます。使うとしたら古いソフトをそのままで動かしたい場合く らいでしょうか。 また、ソースを make してインストールする場合は以下のようにします。 (1) config.h を自分の環境に合わせて修正します。 (2) xmkmf を実行して make ファイルを作成します。 (3) make を実行して seyon をビルドします。 (4) make install と入力して、プログラムとサポートファイルをコピーします。 (5) make install.man と入力して、マニュアルをインストールします。 (6) ~/.seyon というディレクトリを作成し、そのディレクトリの下に startup, phonelist, protocols というファイルをコピーします。 3.seyonの基本設定 (1) ~/.seyon/startup の変更 このファイルには、モデムに関する設定を次のようにします。 set baud 19200 # デフォルトのボーレート set bits 8 # データのビット数 set parity 0 # パリティ無し set stopBits 1 # 1ストップビット set meta_tr off # (後述) set autozm on # zmodem でのダウンロードが半自動で行えます transmit "ATZ^M" # モデムの初期化コマンド。モデムに合わせて設定。 # 但し、多くのモデムはそれ自身の不揮発メモリの # 中に入っているのでここでの設定は不要です。 ボーレートは必要に応じて、300,1200,2400,4800,9600,19200,38400 の何れ かを指定します。14400 や 28800 が無いのは、kernel のシリアルドライバ がサポートしてないからです。 (2) ~/.seyon/phonelist の変更 このファイルには、BBS の電話番号、ネット名、そのネットのログインスク リプトのファイル名などを指定します。 123-4567 Kusanone BPS=19200 320-7470 Nifty-9600 BITS=8 BPS=9600 SCRIPT=script.NIFTY BPS= は必要に応じて、300,1200,2400,4800,9600,19200,38400 の何れかを 指定します。14400 や 28800 は無いので要注意。この BPS= を指定しない ときは ~/.seyon/startup で指定したデフォルトの値になります。 SCRIPT= にスクリプトファイル名を記述しておくと、それに従って自動的に オートログインできます。 (3) オートログイン用スクリプトファイルの作成 前項の例のように SCRIPT=script.NIFTY とした場合 script.NIFTY という ファイルを作成し、下記のように記述します。 これは、NIFTY ROAD-3 (9600bps)の場合の例です。 waitfor "HOST NAME?" 30 if not waitfor goto exits endif # connect NIFTY ROAD-3 (9600bps) waitfor "*" transmit "C NIF^M" waitfor "--->" 10 transmit "SVC^M" # send ID waitfor "--->" 10 transmit "ABC01234^M" #「ABC01234」の所は自分の ID を入れます。 # send PassWord waitfor "--->" 10 transmit "XYZ98765^M" #「XYZ98765」の所は自分のパスワードを入れます。 exits: 最初の方は、"HOST NAME?"という文字列が来るのを30秒間待って、来なけ れば exits: に飛びます。来たら"*" を待ち "C NIF^M" を送信する・・・ 以下同様で ID とパスワードを送信します。^M はENTERキーのことです。 (4) ~/.seyon/protocol の変更 ファイル転送に使うプロトコルやディレクトリを指定します。 Xmodem, Ymodem,Zmodem が使用できます。 Nifty Serve の BPlus については、 「8. Nifty の BPlus でダウンロードするには?」をご覧下さい。 4.seyonで日本語表示するには? 日本語表示の設定および起動には、下記のようにいくつかの方法があります。 4.1 seyon-emu を使う方法(その1) (1) seyon のインストール直後にある /usr/X11/bin/seyon-emu を削除します。 (このファイルは、xterm へのリンクが張られています) (2) 次のような内容(1行だけ)の同じ名前のファイルを作ります。 kterm -km sjis "$@" (3) このファイルを実行可にします。 chmod +x /usr/X11/bin/seyon-emu (4) .Xresources または .Xdefaults に以下のものを追加します。 seyon*modems: /dev/cua0 seyon*dialPrefix: ATDP seyon*dialSuffix: ^M Seyon*vt100*foreground: black Seyon*vt100*background: SkyBlue Seyon*vt100*geometry: 80x25+50+250 Seyon*vt100*scrollBar: true Seyon*vt100*SaveLines: 1000 foreground,background の色の名前は、/usr/X11R6/lib/X11/rgb.txt に 書かれているものの中から指定します。 このように設定後、seyon(リターン)と入力すると新たな kterm の ウィンドウが開きます。 4.2 seyon-emu を使う方法(その2) (1) インストール直後にある /usr/X11/bin/seyon-emu を削除します。 (このファイルは、xterm へのリンクが張られています) (2) kterm にリンクを張りなおすために # ln -s /usr/X11/bin/kterm /usr/X11/bin/seyon-emu と入力します。 (3) .Xresources を修正 [ 上記 4.1 の (4)項を参照 ] (4) 起動は # seyon -- -km sjis -sb -sl 1000 と入力すると、新たに kterm が起動します。 ここでは、シフトJIS と1000行のスクロールバーを指定しています。 (4) の -- というのが、それ以降のパラメータを kterm に渡しています。 しかし、これだと毎回 seyon を起動するたびに上記の長ったらしいのを 打ち込む必要があり不便なので次のように alias に定義します。 (シェルがbash の場合です。tcsh だと = の代わりにスペースです) % alias seyon='seyon -- -km sjis -sb -sl 1000' これを ~/.profile の中に記述しておけば、起動は % seyon と入力するだけで新たな kterm ウィンドウが開きます。 4.3 seyon-emu を使う方法(その3) (1) インストール直後にある /usr/X11/bin/seyon-emu を削除します。 (このファイルは、xterm へのリンクが張られています) (2) kterm にリンクを張りなおすために # ln -s /usr/X11/bin/kterm /usr/X11/bin/seyon-emu と入力します。 (3) ~/.Xdefaults に下記を追加します。 Seyon*vt100*geometry: 80x25 Seyon*vt100*KanjiMode: SJIS (4) 起動は # seyon & と入力すると、新たに kterm が起動します。 4.4 既存の kterm ウィンドウを使う方法 NIFTY-Serve の場合一般の漢字コードは SJIS ですが,漢字コードを指定して 受信することができます。これはログイン時に指定できます。 例えば 3.(3)のスクリプトファイルの transmit "SVC^M" を、 transmit "SVC/EUC^M" のように書き換えておけば,通常の kterm 上で seyon を使い,日本語表示が できます。kterm 上で seyon を起動するには % seyon -noemulator -modem /dev/ttys0 と入力します。 [参考]NIFTY-Serve では漢字コードとして以下のような指定ができます。 SVC(半角)→ SJIS SVC/EUC → EUC SVC/OJS1 → 旧JIS1 ......等 SVC(全角) → 漢字コードを自動識別する 4.5 FVWM95のメニューに追加する方法 ~/.fvwm2rc95 の 320 行目あたりに下記を追加します。 2行目と3行目は、実際には1行に続けて書きます。 =========ここから======================================================= AddToMenu "Applications" "Applications" Title + "Seyon" Exec kterm -rv -sb -sl 1000 -geometry 100x50-0+0 -km sjis -T Seyon -e seyon -modems /dev/cua0 -noemulator & =========ここまで======================================================= kterm 起動のパラメータの意味は、次のようになっています。 白黒反転表示 (-rv) スクロールバーを表示する (-sb) スクロールバッファは1000行分 (-sl 1000) 画面サイズ(100桁50行)と位置 (-geometry 100x50-0+0) shift-jis モードにする (-km sjis) ウィンドウのタイトルを「Seyon」と表示 (-T Seyon) seyon を起動 (-e Seyon) /dev/cua0 につながっているモデムを使用 (-modems /dev/cua0) ターミナルエミュレータ (xtermとか kterm) を新規に起動しない (-noemulator) 使い方は FVWM95 の Start ボタンをクリックし、Applications をクリック seyon をクリックで OK です。 ( 使用環境は、解像度1280*1024 、文字shift-jis ) 5.seyonの使い方 (1)ダイアリング seyon を起動すると、seyon のターミナル・エミュレータ・ウィンドウ と seyon command center というウィンドウが開きます。 「Dial」ボタンをクリックすると phonelist ファイルに記述した BBS の 一覧が表示されるので接続したい BBS を選択してダブルクリックするか、 または「GO」ボタンをクリックします。 ログインスクリプトファイルが正しく設定してあれば、オートログインします。 (2)ファイル転送 seyon command center の「Transfer」ボタンをクリックするとファイル転送用 のウィンドウが開き、protocol ファイルに記述したプロトコルのコマンド一覧 が表示されます。 プロトコルを選んでから「GO」ボタンをクリックするとファイル転送を開始し ます。 (3)通信の終了 通信終了時、BBS のホスト側で回線を切断されればよいのですが、自分で切断 したいときは seyon command center の「Hangup」ボタンをクリックします。 seyon を終了させるには seyon command center の「Exit」をクリックします。 (4)その他 seyon command center の「Set」ボタンで、モデムの設定等ができます。 「Shell」ボタンは、シェルコマンドを実行できます。 他にも「About」「Help」「Misc」というボタンがありますが 説明は省略します。 詳しくは、マニュアルを調べてください。 6.seyonで日本語入力するには? seyon のデフォルト設定のままでは、kterm の漢字コードを Shift-JIS にしても kinput2 を使っての漢字入力が出来ない(出来ているのかも知れないけれど エコーバックの字が消えてしまう)という問題が出るので次のようにします。 Seyon Command Center の中の Set ボタンをクリックします。 現れたメニューの中の Meta→ESC ボタンをクリックしてオフにします。 日本語を入力しても消えることなく、表示されるようになります。 seyon を立ち上げると同時に自動で日本語入力出来るようにするには ~/.seyon/startup というファイルの set meta_tr on という行を set meta_tr offと 書き直せば OK です。 [参考]上記の問題は、Seyon が Meta ビットの変換を非常に低レベルのルーチ ンで行なっているためです。 この変換処理は、実際には、MSB(Meta ビット)が立っている文字は、 ESC + MSB を削除した文字、という2文字に変換して送信する、という ものです。つまり、他のシステムにログインしているとき、 (Emacs などで) Meta (alt) key を使いたい、という理由で meta_tr on になってるのでしょう。 試したことは無いですが、JIS モードで接続している場合には、 meta_tr on でもうまくいくのではないかと思います。 7.seyonで通信ログをファイルに落とすには? seyon の capture 機能は,Control Center のダイアログから misc を選択し, capture ボタンを押すと capture on 状態になり、通信ログがデフォルトでは capture という名前のファイルに追加書き込みされます。 (ホスト別に、異なるファイル名のキャプチャ・ファイルに書き込むように することは、何らかの方法で出来ると思いますが試してません) この際、^@ や ^M, ^Q などのキャラクターもファイルに落とされます。 これがあると lmes などで閲覧ができません。 (lmes とは Nifty 会議室ログブラウザで、Nifty Serve の FUNIX フォーラム のデータライブラリ 17番に 360 VYX00311 97/03/15 115290 171 B lmes-200.tgz / Nifty 会議室ログ ブラウザ と登録されています) この問題を解決するには、以下のようにします。 まず、nif2unix という名前で下記のようなスクリプトファイルを作ります。 #!/bin/sh # For GNU tr. ---> ^M, ^@ (NUL), ^H, ^O, ^S, ^Q, ^V, ^C is deleted. # tr -d '\r\000\008\017\023\021\026\003' $i # tr -d '\r\000\021' $i # target IS CHANGED ! # ... and it is backupped as /tmp/nif2unix.backup. for i in $* do cp -f $i /tmp/nif2unix.backup tr -d '\r\000\017' $i rm /tmp/nif2unix.backup done 下から3行目の tr の行は、最初のほうにコメントで書いてある何れかに 換えたほうが良いかもしれません。次に、 nif2unix capture* などとして使います。元ファイルを書き換えてます。 お使いのブラウザが標準入力をサポートしてるなら、 tr -d '\r\000\008\017\023\021\026\003' だけのスクリプトにして、 nif2unix logfile | browser などとして起動すれば良いし、さらに面倒ならこの1行もスクリプトにして しまえば良いでしょう。tr については、man tr してみてください。 8.seyonでテキストファイルをアップロードするには? 会議室で発言するとき、いつもオン書きでは疲れます。(^^; そこで、作成したテキストファイルを通信中に画面に流し込む方法を探して みました。 (1) mule などのエディタで作成したテキストファイル(例えば uptext.euc) をホームディレクトリにもってきます。 (2) そのファイルを nkf -s uptext.euc > uptext.sjis のようにして, shift-JIS 形式のファイルを作成します。 (3) Seyon Command Center の Misc ボタンをクリックします。 (4) Divert ボタンをクリックします。 (5) File Name: と催促されますので (2) で変換したシフトJIS のテキスト ファイル名を入力します。 (6) OK ボタンをクリックします。 上記 (4) の Divert ボタンをクリックする前に、ファイル名や内容を確認 したい場合は、Suspend ボタンをクリックするとシェルのプロンプトが 表示されるので ls とか vi コマンドを使えば良いでしょう。 less コマンドだと字化けしました。 シェルを終了させるには、exit と入力します。 この Suspend ボタンによる方法の場合、オンラインとオフラインの表示が 同じ Seyon Terminal Emulator のウィンドゥに表示されますが、オフライン 表示、即ち Suspend ボタンをクリック〜 exit までの内容はホストには 送信されません 両方の表示が同じウィンドウに表示されるのはいやだという方は、別の kterm を起動して下さい。 9.NiftyのBPlusでファイルをダウンロードするには? Nifty-Serve の FUNIX フォーラムのデータライブラリ 13番 (Linux)の中に、 127 MHD01611 94/12/21 44463 896 B bpl52ux.lzh B Plus ファイル転送 というファイルをダウンロードします。( bpl52ux.lzh のダウンロードだけは DOS もしくは Windows 系の通信ソフトを利用するしかないみたいです) これを展開して make すれば、bpl が生成されますので、それを /usr/local/bin にコピーします。 次に、~/.seyon/protocols というファイルの一番最後の行に次のように付け 加えます。 ============ここから================== "RECEIVE - B-PLUS" "$cd ~/; bpl" n ============ここまで================== 各フォーラムのデータライブラリや ftp サイトでダウンロードするときは、 次のような流れになります。 ============ここから================== プロトコル (1:XMODEM 2:BPLUS E:終了) :2 ダウンロードファイルを格納する準備をしてください(BPLUS) 123456789バイトあります ファイル名 (改行のみで終了) :hogehoge.lzh −ダウンロード開始− ここで、Seyon Command Center のダイアログから、Transfer を選択し RECEIVE - B-PLUS を選択すれば、ダウンロードが開始されます。 ============ここまで================== [参考]FFMHOB フォーラムの9番会議室(3131,3135)で bpl62src.lzh について 討論がなされています。bpl について興味のある方は、参考にされたら よいと思います。 10.ロックファイルの問題について (この章については Slackware : 3.0 で確認した内容です。 slackware 3.1, 3.2 で、ロックについて seyon が修正されているか どうかに関してはわかりません。ご存知の方は是非お知らせ下さい) ロックファイルとは何か?ということについては、JF の Serial HOWTO の 後の方に書いてあるのでご参照下さい。 seyon は、結構古いアプリケーションなので、伝統的なディレクトリ /usr(var)/spool/uucp にある LCK..cua* といったロックファイルを使います。 最近の Linux の FSSTND (File System Standard) 仕様では、BSD (POSIX ?) と同様のロックディレクトリ/var/lock(s) が標準のロックファイルのディレク トリになっています。 最近の ppp, mgetty などは、新しいロックディレクトリ /var/lock(s) を 見ますから、これらと併用すると、ロックディレクトリや、ロックファイル の不一致により、色々な不都合が生じます。たとえば、mgetty との併用で うまく発信できない、他人がシリアルポートを使っているのに、Seyon が起 動できてしまう、などといった問題です。 オリジナルの Seyon を FSSTND 仕様に合せるためには、seyon のソースを 修正してコンパイルし直す必要があります。たとえば、slackware 3.0 など に収録されているバイナリはこの問題が修正されていません。 下記のパッチを当てて、コンパイルしなおしてください。作業手順は、 (1) slackware 3.0 のソースディレクトリ(たとえば /cdrom/SLACK300/source/xap/seyon) にある Seyon-2.14c.tar.gz を適当 な作業用ディレクトリで解凍します。 tar zvxf /cdrom/SLACK300/source/xap/seyon/Seyon-2.14c.tar.gz (2) ディレクトリ seyon に移動してから下記パッチリストの内容を当てる。 cd seyon patch -p1 < PATCHFILE (3) コンパイル、インストール。 make ; su ; make install 下記のパッチが素直に当たらない場合は、パッチを参考にして手作業でソー スを修正してください。 ちなみに、このロックディレクトリ/ロックファイルは、シリアルポートを 用いる全てのアプリケーションで整合している必要があります。 Seyon のように、オリジナル状態で FSSTND 仕様を満たしておらず、修正が 必要なものとしては、たとえば、Linux に移植されている iij-ppp0.94beta2 などがあります。 一方、FSSTND 仕様に対応済みのものは 2.2.0f 以降の ppp や mgetty 1.0.0、 kermit 5A(190) などがあります。mgetty の場合は、ロックファイルについ ては policy.h の変更により種々のカスタマイズが可能です。kermit 5A(190) には FSSTND 仕様でコンパイルするためのスイッチがあります。 なお、下記のパッチでは、ついでに、kermit 5A(190) や、ppp-2.2.0f、デ フォルトの mgetty-1.0.0 などと同じように ASCII_PID の lock file を用 いるようにしてあります。 diff -ur seyon/SePort.c seyon-linux-ffstnd/SePort.c --- seyon/SePort.c Wed Apr 21 22:38:31 1993 +++ seyon-linux-ffstnd/SePort.c Tue May 13 12:36:44 1997 @@ -1031,7 +1031,7 @@ } #if LF_USE_ASCII_PID - sprintf(pidstr, "%10d\n", pid); + sprintf(pidstr, "%010d\n", pid); /* Just like kermit, ppp */ write(lfd, pidstr, 11); #else write(lfd, (char*)&pid, sizeof(pid)); diff -ur seyon/config.h seyon-linux-ffstnd/config.h --- seyon/config.h Wed Apr 21 21:47:48 1993 +++ seyon-linux-ffstnd/config.h Tue May 13 12:29:43 1997 @@ -292,8 +292,12 @@ * HDB uucp does) rather than in binary form as other uucp prgrams do */ #ifndef LF_USE_ASCII_PID +#ifdef linux +#define LF_USE_ASCII_PID YES /* Just like kermit, ppp, default mgetty.. */ +#else #define LF_USE_ASCII_PID NO #endif +#endif /* * Wether you want lock files to be in the form LK.inode.major.minor @@ -309,7 +313,11 @@ */ #ifndef LF_PATH +#ifdef linux +#define LF_PATH "/var/lock" /* Linux FSSTND spec. */ +#else #define LF_PATH "/usr/spool/uucp" +#endif #endif /* #ifdef linux はもっと前のほうに書く場所があったような…。ま、いいか。 strings `which seyon` | grep ^/ とでもすれば、どこにロックが書かれるかわかります。 11.参考資料 seyon, kterm, xterm, tr の各マニュアル /usr/doc/seyon ディレクトリ下の各マニュアル JF の Serial HOWTO 12.改版履歴 第1版 1997年5月22日:初版発行 第2版 1997年6月 1日: 2章 (5) の /dev/cua0 を /dev/ttys0 に変更。 また、[参考2]として ttyS? と cua? の違いの説明を追加。 同様に、4章4 も /dev/ttys0 に変更。 1章および3章 (2) を少し修正。12章を追加。