初版: 2003/01/10
最終更新日:
2004/02/12
コンパイルの手順は以下のとおりです。
まず、適当なディレクトリに移動してソースを展開します。
% lha xet ppm02.lzh % mv hosoku.txt hosoku02.txt % mv readme.txt readme02.txt % lha xetf ppm03.lzh % mv hosoku.txt hosoku03.txt % patch < source.dif % lha x hpb00.lzh hpbsrc.lzh % lha xet hpbsrc.lzh patch.dif % patch < patch.dif次にメイクファイルを生成します。 このときに、「CC=gcc」行を書き換えて、 クロスコンパイラを使うようにしておきます。 そのあと、メイクします。
% cpp -DGCCUNIX < makefile.cpp | sed 's+CC=gcc+CC=/compat/linux/opt/Embedix/tools/bin/arm-linux-gcc+' > makefile % make /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall ppm.c ppm.c:906: warning: return type of `main' is not `int' /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall chat.c /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall codeconv.c /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall mimeconv.c /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall tty.c /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -o ppm ppm.o chat.o codeconv.o mimeconv.o tty.o /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -c -Wall ppmsend.c ppmsend.c:1154: warning: return type of `main' is not `int' /compat/linux/opt/Embedix/tools/bin/arm-linux-gcc -o ppmsend ppmsend.o chat.o codeconv.o mimeconv.o tty.o「main()関数の型がintとちゃいますなぁ」とウォーニングが出ますが、 これはまぁいいでしょう。これだけでコンパイル終了です。 簡単ですね(笑)。
なお、コンパイルに必要なソースをまとめたアーカイブは こちら (ppm03-src-slzaurus.lzh) にあります。 実行形式は こちら (ppm03-bin-slzaurus.tgz) です。
次に設定ファイルppm.iniを適当なディレクトリに置いて 編集します。電話番号とパスワードが必須設定項目です。 この二つを必ず現在使っているものに書き換えてください。
SLザウルスでは、PHSデータカードを接続して電源を入れると、 カードが自動的に認識されて「/dev/ttyS3」に割り当てられ、 「/dev/modem」からシンボリックリンクが張られるようです。 というわけで、PPMの起動時に指定するデバイスファイルは 「/dev/modem」にします。
さて、準備ができたので実行してみます。 SLザウルスの「ターミナル」から「ppm /dev/modem」で 起動してみます。
bash-2.05$ ppm /dev/modem ppm: establishing connection with the PHS…動きません(泣)。
PCカードを使う前には、「認識」させるだけではなく、 何かコマンドを入れて「有効」にしておかないといけないのではないか、 と思い、イロイロ調べてみることにしました。 手始めに、 /etc/pcmcia/の下にあるスクリプトを読んでみたり、 syslogdを動かして ログを/var/log/messagesに吐かせてみたりしました。 さらに、 Linuxの日本語マニュアルの作成と配布を行っている 「JM Project」 (linux.or.jp/JM/) でマニュアルを漁ってみました。
その結果、cardctlコマンドを使えばいいのでは… という結論に達しました。 そこで、PHSデータカードを接続した状態で、 カードの状態を調べてみます。
bash-2.05$ cardctl status Socket 0: 3.3V 16-bit PC Card [suspended] Socket 1: no cardカードを接続して電源を入れると、カードを認識して初期化したあと、 休止(サスペンド)状態になっているみたいです。節電のためでしょうか。
カードがサスペンドしてたら使えるわけはありませんので、 有効化してみます。
bash-2.05$ cardctl resume bash-2.05$ cardctl status Socket 0: 3.3V 16-bit PC Card function 0: [ready], [wp], [bat dead], [bat low] Socket 1: no cardこれでなんとかいけそうです。
bash-2.05$ ppm /dev/modem ppm: establishing connection with the PHS ppm: dialing... ppm: connected ppm: connecting e-mail server ppm: you have 1 messages ppm: reading message #1 ppm: deleting message #1 ppm: disconnectingとなり、無事にパルディオEメールを読むことができましたv(^^)。
拙作PPMは、他のUNIX系OS同様にSLザウルスでも使うことができました。 SLザウルスで使う場合は、デバイスファイルとして、 「/dev/modem」を指定し、 実行の直前に「cardctl resume」を実行しておく必要がありました。
bash-2.05$ cardctl resume bash-2.05$ ppm /dev/modem bash-2.05$ cardctl suspendこんな↑感じですね。