最終更新日: 2002/06/27
「やっぱりルータの設定は、 ウェブブラウザとかteletぢゃなくって、 コンソールからだよな」 と思ってましたが、RTA55iは これまで使ってたRTA50iやRTA52iと違い、 シリアルコンソールをつなぐポート(要するにRS232Cポート) がありません。
ルータの設定は、 FreeBSDマシンからシリアルでつないでやるのが好みだったんで、 同じようにできないか (telnetやブラウザを使わずに済ませられるか) と思ってましたが、 Windowsなんかだと、付録のCDからドライバを入れるかなんかしたら (実はよく知らない ;^^) USBがコンソールポートになるってことで、 いろいろ試してみました。
USBが使える状態のFreeBSDマシン (Panasonic CF-B5, FreeBSD 4.4R) に、RTA55i付属のUSBケーブルで つないでみると、/var/log/messagesに
ugen0: YAMAHA Corporation RTA55i, rev 1.10/46.16, addr 2こんなのが出て、一応認識してる模様。 usbdevs(8)コマンドを使うと、
% usbdevs addr 1: UHCI root hub, Intel addr 2: RTA55i, YAMAHA Corporationこんな感じ。
「USBモデムで認識するんとちゃうんかなぁ」と一瞬悩みましたが、 実は、カーネルに umodem を組み込んでませんでした(自爆)。 そこで、umodemを組み込んだカーネルを作りなおしてみると、 /var/log/messagesには
umodem0: YAMAHA Corporation RTA55i, rev 1.10/46.16, addr 2, iclass 2/2 umodem0: data interface 1, has CM over data, has no break device_probe_and_attach: umodem0 attach returned 6 ugen0: YAMAHA Corporation RTA55i, rev 1.10/46.16, addr 2こんな感じ。なんか失敗してますね〜。
しゃーないんで、カーネルコンフィグファイルに
options UMODEM_DEBUG追加して、これだけやと「そんなオプション知らん」って怒られるから /usr/src/sys/conf/options にも
UMODEM_DEBUG opt_usb.hを追加してカーネル作りなおすと、
umodem0: data interface 1, has CM over data, has no break umodem0: umodem_set_comm_feat: feature=1 failed, err=17 umodem_attach: BAD -> DYING device_probe_and_attach: umodem0 attach returned 6こんなのが。 ま、どこで umodem から ugen に落ちてるかが判明。ってことで、 /usr/src/sys/dev/usb/umodem.c を quick and dirty hack (爆)。
*** umodem.c.2002-06-26 Mon Feb 26 13:23:08 2001 --- umodem.c Thu Jun 27 00:35:37 2002 *************** *** 318,323 **** --- 318,325 ---- err = umodem_set_comm_feature(sc, UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED); + #if 0 /* 2002-06-26 */ if (err) goto bad; + #endif sc->sc_cm_over_data = 1; }単に ugen に落とすところを #if 0 でコンディションアウトしただけ だったりします (笑)。
カーネルを作りなおしてつないでみると、
umodem0: YAMAHA Corporation RTA55i, rev 1.10/46.16, addr 2, iclass 2/2 umodem0: data interface 1, has CM over data, has no break umodem0: umodem_set_comm_feat: feature=1 failed, err=17 umodem_attach: tty_attach 0xc0e6cc00 umodem_attach: make_dev: umodem0おお、なんかうまいこといったv(^^)。
このあと、seyon(1) を -modem /dev/umodem0 つけて動かして、
atz at@c0 ← デフォをコンソールモードに設定 at&w ← 設定書き込み at&r ← コンソールモードへすると見事にコンソールモードへ移行。ばっちり:-)。 コンソールから serial ta すると、ATコマンドモードへも戻れます。
実際にseyon(1)でつなぐと以下のような感じです。
% script -a rta55i-setting.log /usr/X11R6/bin/seyon -modem /dev/umodem0 -noemulator Script started, output file is rta55i-setting.log Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf. All rights reserved. Version 2.1 rev. 4b i386-FreeBSD root@gohan15.freebsd.org 04/19/01 18:23:06. Locating Modems... >> Error: ioctl-set: Invalid argument. >> Error: ioctl-set: Invalid argument. >> Error: ioctl-set: Invalid argument. Modem ``/dev/umodem0'' is Available. Password: RTA55i Rev.4.06.16 (Mon Apr 15 20:23:24 2002) Copyright (c) 1994-2002 Yamaha Corporation. Copyright (c) 1998-2000 Tokyo Institute of Technology. Copyright (c) 2000 Japan Advanced Institute of Science and Technology, HOKURIKU. Copyright (c) 2002 RSA Security Inc. All rights reserved. 00:a0:de:xx:xx:xx, 00:a0:de:xx:xx:yy Memory 8Mbytes, 2LAN, 1BRI > show config # RTA55i Rev.4.06.16 (Mon Apr 15 20:23:24 2002) # MAC Address : 00:a0:de:xx:xx:xx, 00:a0:de:xx:xx:yy # Memory 8Mbytes, 2LAN, 1BRI serial default console console character ascii console lines infinity ip lan1 address 192.168.0.1/24 ip lan1 routing protocol none ip lan1 rip listen none ip lan2 address 192.168.254.254/24 ip lan2 routing protocol none ip lan2 rip listen none ip lan2 nat descriptor 1 ip route default gateway 192.168.254.1 nat descriptor type 1 masquerade nat descriptor timer 1 28800 nat descriptor address outer 1 192.168.254.254 nat descriptor address inner 1 192.168.0.1-192.168.0.254 nat descriptor masquerade rlogin 1 on httpd service off dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.0.2-192.168.0.191/24 dns server 192.168.254.1 dns private address spoof on analog supplementary-service pseudo call-waiting analog extension dial prefix line analog extension dial prefix sip 9#