2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自宅に自営PHSを構築して2000年代のPDA通信を蘇らせる

Posted at

1.jpg

概要

Windows CE 搭載の PDA CASSIOPEIA l'agenda BE-500 を発掘したので、2000 年代初期の「モバイラー」が辿ってきた道である、 PHS によるデータ通信を現代に蘇らせようと思います。

とはいえ、日本国内での公衆 PHS はすべてサービスを終了しており、 PDA 用の通信カードを手に入れるだけでは PHS による通信は行えません。

そこで、自宅内に自営 PHS を構築し、 自営 PHS に子機として通信カードを収容することで、 64K PIAFS 通信を楽しめるようにしてみます。

さらに、本来プロバイダが担う PPP サーバーを Linux で構築することで、インターネットに出るための通信が自宅内で完結する構成にします。そのため、実験のために追加のプロバイダ契約をしたり、通信料を支払う必要はありません。

必要な物

  • Ubuntu 24.04 をインストールした PC
    • 例えば Raspberry Pi + Raspberry Pi OS などでも可
  • PHS 親機 (後述)
  • PHS 通信カード (後述) また、子機登録作業のため、以下のいずれかが必要
    • PDA 上で子機登録する場合: Pocket Tera Term などのターミナルソフト
    • PC 上で子機登録する場合: CF → PC カードアダプタと、 PC カードスロットのあるラップトップ
  • RS-232C シリアルケーブル
  • RS-232C USB 変換ケーブル

PHS 親機

自営 PHS を構築するには、自宅内に親機を設置する必要があります。

私が調べた限り、

  • 自営 PHS の親機として利用可能
  • 親機と子機の間で PIAFS による内線データ通信が可能
  • 親機と PC を RS-232C で接続可能

という条件を満たすのは、以下の 3 機種です。

今回は IWX70 と、その子機である RS20 のセットを手に入れました。 (なお RS20 は実験には使用しません)

自営 PHS 親機として一部で有名な Aterm WM56 は、親機と子機の間での内線データ通信には対応していないようです。
WM56 に RS20 などを収容し、子機と子機の間で内線データ通信することは可能ですが、速度は 32kbps となります。

他にも自営 PHS の親機として利用可能な機種 (ビジネスホン等) がありましたら、ぜひ教えてください。

PHS 通信カード

CASSIOPEIA l'agenda などの PDA は本体に CF カードスロットを搭載しており、対応している通信カードを装着することで PHS によるデータ通信を行えます。

対応品は PDA の機種により様々ですが、 l'agenda に関しては以下のカードに対応しているようです。

  • P-in comp@ct
  • P-in m@ster
  • P-in Free 1P
  • P-in Free 1S

今回は P-in m@ster を手に入れました。

構成図

今回の構成を図にすると以下のようになります。

Linux 側セットアップ

配線

IWX70 背面の RS-232C ポートにシリアルケーブルを繋ぎ、 RS-232C USB 変換ケーブルを経由して Linux PC へ接続します。

ケーブル接続後、Linux に /dev/ttyUSB0 が作成されていることを確認してください。

IWX70 の背面には USB ポートもありますが、 USB 接続は Linux では認識しません。

このような古いハードウェアは、専用ドライバが必要な USB よりも、むしろ RS-232C を変換した方が容易に接続・認識が可能というのはよくあることです。

パッケージのインストール

必要なパッケージをインストールします。

sudo apt install ppp screen

pppd の設定

/etc/ppp/peers/piafs を作成します。

/etc/ppp/peers/piafs
/dev/ttyUSB0
115200
connect "/usr/sbin/chat -v -f /etc/ppp/chat-connect"
local
passive
noauth
nodetach
ms-dns 8.8.8.8
192.168.50.1:192.168.50.2
debug

chat の設定

/etc/ppp/chat-connect を作成します。これは、 /dev/ttyUSB0CONNECT が出力されるまで処理を待機するために必要です。

/etc/ppp/chat-connect
CONNECT ''

PHS 子機登録

今回の要である、PHS 通信カードを PHS 親機に収容する手順について説明します。

親機側準備

IWX70 のシリアルコンソールに接続します。

sudo screen /dev/ttyUSB0 115200

試しに AT コマンドを入力し、IWX70 と疎通できるか確認します。

AT

正しく疎通できれば OK と表示されます。
続いて、以下の AT コマンドを入力します。

ATI4

正しく疎通できれば AtermIW NEC Corporation, OK と表示されます。

screen コマンドは Ctrl+A → K で終了できます。

子機側準備

P-in m@ster を子機として登録するために、 P-in m@ster のシリアルコンソールに AT コマンドを入力する必要があるのですが、そのためには以下のいずれかが必要です。

PDA 上で子機登録

PDA に Pocket Tera Term などのターミナルソフトをインストールします。私はこの方法を選択しました。

2.jpg

PC 上で子機登録

PDA が Pocket Tera Term などのターミナルソフトに対応していない、または PDA の小さな画面で AT コマンドを入力するのが辛い場合、 PC カードスロットのある PC に、 PC カードアダプタ経由で P-in m@ster を装着する方法があります。どちらかというとこちらのほうが一般的な方法かと思います。

PC には Tera Term などのターミナルソフトをインストールします。もしくは、Windows XP またはそれ以前の Windows であれば、 OS 付属のハイパーターミナルが利用可能です。

なお、 Windows への P-in m@ster の認識にはドライバが必要です。記事末尾の付録を参照してください。

P-in m@ster にシリアル接続する

ターミナルソフトに以下の設定を入力し、 P-in m@ster と接続します。

項目 設定値
ポート P-in m@ster が接続されている COM ポート
ボーレート 115200
データ 8bit
パリティ none
ストップビット 1bit
フロー制御 none

試しに AT コマンドを入力し、P-in m@ster と疎通できるか確認します。

AT

正しく疎通できれば OK と表示されます。
続いて、以下の AT コマンドを入力します。

ATI4

正しく疎通できれば NTT DoCoMo P-in m@ster, OK と表示されます。

子機側登録コマンド

P-in m@ster のシリアルコンソールに以下のコマンドを入力し、登録作業に入ります。

AT#SOMODE

OK が表示されると、子機登録モードに入ります。

続いて、以下のコマンドを入力します。まだ Enter キーで実行はしません。

AT#SO1,00,1,92,0000

このときのそれぞれのパラメータには、以下のような意味があります。

パラメータ 内容 補足
00 登録モード 128 で登録解除モード
1 OS モード番号 番号を変えると親機を 3 つまで登録することが可能
92 内線番号 IWX70 では 9196 が利用可能
ただし 91 は RS20 に割り当て済みのため 92 を設定
0000 暗証番号 親機と暗証番号を揃えること

続いて、親機側の操作に移ります。

親機側登録コマンド

IWX70 のシリアルコンソールに、以下のコマンドを入力します。まだ Enter キーで実行はしません。

AT#ZSB0000

このときのそれぞれのパラメータには、以下のような意味があります。

パラメータ 内容 補足
B 内線番号 IWX70 では AF が利用可能
それぞれが 9196 に対応する。つまり B は内線 92
0000 暗証番号 子機と暗証番号を揃えること

(なお、登録解除の場合は AT コマンド末尾に /d を追加)

子機で Enter キーを押しコマンド AT#SO1,00,1,92,0000 を実行したら、すぐに親機でも Enter キーを押しコマンド AT#ZSB0000 を実行します。

すると、IWX70 と P-in m@ster との間で子機登録を試みます。このとき、 IWX70 本体液晶には SOトウロクチュウ と表示されます。

登録に成功すると、お互いのシリアルコンソールに OK が表示され、 IWX70 本体液晶には SOトウロクOK と表示されます。 P-in m@ster には内線番号 92 が割り当てられます。

3.jpg

接続

PPP サーバーの待ち受け

Linux で pppd コマンドを実行し、通信を待ち受けます。

sudo pppd call piafs

PDA 側の操作

以下の内容で通信設定を作成します。

項目 設定値
電話番号 #*81
ユーザー名 空欄
パスワード 空欄
モデムの種類 NTT_DoCoMo-P-in_m@ster
トーン/パルス トーン
ボーレート 115200
データ 8bit
パリティ none
ストップビット 1bit
フロー制御 none

#*81 は IWX70 のシリアルポートを表す内線番号です。

PDA の「接続」ボタンを押すと接続が実行されます。

ルーティングの設定

接続に成功すると、 Linux には ppp0 というネットワークデバイスが作成されます。

ip address
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet 192.168.50.1 peer 192.168.50.2/32 scope global ppp0
       valid_lft forever preferred_lft forever

PDA が Linux を経由してインターネットに出られるように、IP フォワーディングを追加します。

接続先のネットワークデバイス名 enp0s3 は適宜変更してください。

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
sudo iptables -A FORWARD -i ppp0 -o enp0s3 -j ACCEPT
sudo iptables -A FORWARD -i enp0s3 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

上記設定が完了すれば、晴れて PDA が自営 PHS 経由でインターネットに繋がり、あの頃の「モバイラー」の姿が蘇ります!

4.jpg

参考文献

付録: P-in m@ster のドライバ

NTT docomo の Web サイトからは P-in m@ster に関するページがすでに削除されているので、ドライバが必要な場合は Internet Archive Wayback Machine から手に入れる必要があります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?