Linux による ISDN 接続のためのスクリプト
このメモは金田の
Linux マシンにターミナル・アダプタ MN128 を接続するためのスクリプトに
ついて書いたものです.
「Linux と Macintosh への ISDN 接続に
関する報告」とあわせて,みてください.
Created: 96-2-4, Modified: 96-3-13.
64k 同期接続のためのスクリプト
#!/bin/sh
#
# Set up a 64k ISDN PPP link
#
PPPDIR=/usr/sbin
DEVICE=cua1
setserial -W -b /dev/cua1 spd_vhi
rm /etc/resolv.conf
echo "nameserver $NAMESERVER" > /etc/resolv.conf
# /etc/resolv.conf をかきかえて DNS を指定している.複数のプロバイダと
# 接続するには DNS をダイナミックに変更する必要があるので,こんな強引な
# ことをやっている.もっとスマートな方法があったら,おしえてくれーー.
(
stty 38400 -tostop
if $PPPDIR/chat -v -t 15 ABORT "LINE OFF" \
"" ATZ0Y1\\\\Q0\&Q5%B12E1Q0V1X3 OK ATD$PHONE_NUMBER-S12 CONNECT ""
then
$PPPDIR/pppd /dev/$DEVICE -am +ua $PASSFILE \
noipdefault -crtscts defaultroute -detach &
echo "OK chat" 1>&2
exit 0
else
echo "PPP call failed" 1>&2
exit 1
fi
) < /dev/$DEVICE > /dev/$DEVICE
上記のスクリプトをつかって特定の接続をするためのスクリプトの例 :
#!/bin/sh
PHONE_NUMBER=XXXX-XXXX
PASSFILE=XXX-id
NAMESERVER=XXX.XXX.XXX.XXX
export PHONE_NUMBER PASSFILE NAMESERVER
ppp64on
ファイル XXX-id の内容 (実際の ID, パスワードにおきかえる) :
USER_ID
PASSWORD
ただし,この ID, パスワードの指定法は旧式であることをことわっておく.
38k 非同期接続のためのスクリプト
#!/bin/sh
#
# Set up a 38k ISDN PPP link
#
PPPDIR=/usr/sbin
DEVICE=cua1
setserial -W -b /dev/cua1 spd_vhi
rm /etc/resolv.conf
echo "nameserver $NAMESERVER" > /etc/resolv.conf
(
stty 38400 -tostop
if $PPPDIR/chat -v -t 15 ABORT "LINE OFF" \
"" ATZ0Y1\\\\Q0\&Q2%B8E1Q0V1X3 OK ATD$PHONE_NUMBER-S8 CONNECT ""
then
$PPPDIR/pppd /dev/$DEVICE -am +ua $PASSFILE \
noipdefault -crtscts defaultroute -detach &
echo "OK chat" 1>&2
exit 0
else
echo "PPP call failed" 1>&2
exit 1
fi
) < /dev/$DEVICE > /dev/$DEVICE
このスクリプトのつかいかたは同期のばあいと同様なので省略する.
なお,このスクリプトをはしらせたあと (回線切断後) に MN128 の状態が
異常になり,パワー・オン・リセットが必要になってしまう.原因不明だが,
スクリプトになにか問題があるのだとかんがえられる.
関連ページ :
[Linux と Macintosh への ISDN 接続に
関する報告],
[この件に関するニュースへの投稿記事]
(C) Copyright 1996 by
Y. Kanada