Comfortable Life with NetBSD

赤外線通信で遊ぼう

最近のノートには赤外線ポートがついてますよね。カタログを見ていると 4Mbps とかひと昔前のノートでも 115Kbps とかの速度が出ると書いてあります。 これってホントに実用に耐えるんだったら便利そうですよね。 というわけで、ここでは赤外線通信で遊ぶのを目標に、NetBSD に おけるシリアル通信についてまとめてみようかと思います。おまけとして serial console もできたりしてしまいます。Serial console を使うと ディスプレイのないサーバマシンのメンテナンスなどに威力を発揮するので 便利です。頑張りましょう。

準備するもの

設定

あと kermit を実行する人が /dev/tty00 を r/w で open できるように設定します。setuid を使うのも良し、 permission を変えるのもよしですが、サイトの security policy に 従って下さい。

設定がうまくいってるかどうかの確認

Server の tty00 で getty(8)が走ってるかどうか確認します。

    [server]# ps xauww | grep getty | grep tty00
    root       367  0.0  0.7    48  356 00  Ss+   5:16PM    0:00.04 /usr/libexec/getty std.57600 tty00
  

TTY(出力の7番目) が指定した tty (この場合は 00) になっていない場合、 初期化? がうまく出来ていません。一度 getty を off にして、 ttyflagsを実行しましょう。

client で kermit を実行します。

    [tamp]~% kermit    
    C-Kermit 6.0.192, 6 Sep 96, for NetBSD
     Copyright (C) 1985, 1996,
       Trustees of Columbia University in the City of New York.
    Default file-transfer mode is TEXT
    Type ? or HELP for help.
    [/var/users/tacha] C-Kermit>c
    Connecting to /dev/tty00, speed 57600.
    The escape character is Ctrl-\ (ASCII 28, FS)
    Type the escape character followed by C to get back,
    or followed by ? to see other options.

    NetBSD/i386 (tera1.trun.org) (tty00)

    login: 
  

つながっちゃいました。:-) あとは細かなパラメータを設定すれば いいんじゃないでしょうか?

赤外線の場合

赤外線ポートはハードウェアレベルで com に見えるようになっているらしいです。 実際、dmesg では
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
のように普通の com として認識されている様子が見られます。

つまり、有線で通信がうまくいった場合、赤外線でうまくいかない理由は ありません。ただし、赤外線の場合は、full duplex ではなくて、half duplex らしいので、 kermit の設定で
set duplex half
を加えます。実際に ThinkPad 560EThinkPad 570 (2644-AAJ)で /netbsd を転送してみたところ compression を有効にして

距離転送レートtimeoutdameged再送
6cm 6463cps 000
50cm 5263cps1680
100cm 5726cps1200
150cm 5279cps1862
160cm 1527cps2431371
有線(参考) 5459cps1750

位になりました。これくらいで使えるのならば、まぁよしとしましょう。

測定条件は です。高さが違っていたり、赤外線ポートの向きがずれてたりすると もっと近くで苦しくなります。

おまけ

シリアルコンソールにするためには kernel の configuration file に

    options     "CONSDEVNAME=\"com\""
    options     CONADDR=0x3f8
    options     CONSPEED=57600
  

を加えます。最後の CONS_OVERRIDEを付け加えないと console の 設定は boot loader から与えられた値か初期値になるようです。最初化け化けで 泣いてしまいました。初期値は、マニュアル console(4) に書かれているので参考に して下さい。 boot loader も /sys/arch/i386/stand/ の下に biosboot_com0 とか biosboot_ser が あるので作り直せば、single user mode で立ち上げたいときも メニューがシリアルに出てくるようになるので OK です。


Return to Comfortable Life With NetBSD


Driven By NetBSD Accesses to this page:


Valid HTML 4.01! tacha@tack.fukui-med.ac.jp
$Tera: serial.html,v 1.1 2001/08/23 08:46:29 tacha Exp $
Copyright(C) 1999-2001 Tatoku Ogaito. ALL RIGHTS RESERVED.