[リストへもどる]

一括表示

▼ ポケ3と組み合わせられるかな - としき@家主 2007/05/10 10:11 No.932
  ┣Re: ポケ3との組み合わせに挫折 - としき@家主 2007/05/15 00:08 No.935
  ┃┣APRS-11いじり - としき@家主 2007/05/22 07:10 No.941
  ┃┃┗Re: APRS-11いじり - としき@家主 2007/06/11 13:33 No.960
  ┃┃ ┗Re^2: APRS-11いじり - としき@家主 2007/06/22 13:02 No.969
  ┃┃  ┗Re^3: APRS-11いじり - としき@家主 2008/12/19 23:40 No.1502
  ┃┣Re: APRS-11いじり - としき@家主 2007/05/24 19:22 No.942
  ┃┃┗Re^2: APRS-11いじり - としき@家主 2008/07/25 23:04 No.1342
  ┃┃ ┗Re^3: APRS-11いじり - としき@家主 2008/08/09 22:10 No.1372
  ┃┣Re: APRS-11の使い道? - としき@家主 2007/06/01 21:50 No.948
  ┃┃┗Re^2: APRS-11いじり - としき@家主 2007/10/12 22:21 No.1055
  ┃┗だけどヘンなマシンだな - としき@家主 2007/06/24 23:09 No.970
  ┃ ┗Re: APRS-11自動時刻設定に挑戦 - としき@家主 2007/07/15 18:53 No.985
  ┃  ┣Re^2: APRS-11自動時刻設定に挑戦 - としき@家主 2007/08/21 00:00 No.1013
  ┃  ┃┗Re^3: APRS-11自動時刻設定あと少し - としき@家主 2007/09/22 11:33 No.1041
  ┃  ┗Re^2: APRS-11自動時刻設定1歩後退 - としき@家主 2008/04/30 13:06 No.1235
  ┗Re: ポケ3と組み合わせられるかな - としき@家主 2008/10/13 20:11 No.1478
   ┣Re^2: ポケ3と組み合わせられるかな - としき@家主 2008/10/18 11:08 No.1479
   ┃┣Re^3: ポケ3と組み合わせられるかな - としき@家主 2008/11/20 18:49 No.1495
   ┃┗Re^3: ポケ3と組み合わせられるかな - としき@家主 2009/02/02 19:29 No.1520
   ┃ ┗Re^4: ポケ3と組み合わせられるかな - としき@家主 2009/02/14 16:11 No.1524
   ┃  ┗Re^5: ポケ3と組み合わせられるかな - としき@家主 2009/02/17 23:15 No.1525
   ┃   ┗Re^6: ポケ3と組み合わせられるかな - としき@家主 2009/03/12 21:26 No.1530
   ┣AP-11(本当はAPR-11)調教中 - としき@家主 2008/11/13 23:05 No.1494
   ┗Re^2: ポケ3と組み合わせられるかな - としき@家主 2008/12/06 00:25 No.1500
    ┗Re^3: ポケ3と組み合わせられるかな - としき@家主 2009/01/04 12:35 No.1506
タイトルポケ3と組み合わせられるかな
記事No932
投稿日: 2007/05/10(Thu) 10:11
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
先日、某所のHARD OFFに行った時のことです。
ジャンク売り場で、コレガの旧式のルータを売っていました。うろ覚えの記憶で
は、確か、最大で10Mbps、実測で2Mbpsくらいのもの。こんなものでも、発売当初
は数万円していたかと思うのですが、なんと税込み525円。いい時代になった
と言っていいのかな。買いませんけどね。
その隣に、同じくコレガの無線LANの装置がありました。無線LANの方面に
はあまり興味がないので、見ただけでは正体はわかりません。だって、本体上面
には「corega」「Wireless LAN」程度しか記載がありません。形状からは、旧式
な無線アクセスポイントのように見えました。
普段の私なら素通りするところ、ひょいと手に取って見たところ、「10BASE-T」
と書かれたUTPポートのとなりにD−SUBのポートが付いていて、そこには
「SERIAL」と書いてある。これって何だろう、RS−232Cも無線で延長して
くれる装置なのかな、「SERIAL」ではなく「CONSOLE」と書いてあればポケ3と組
み合わせていろいろなことができそうなんだけどな、等と思いつつ、さらにしげ
しげと眺めたところ、なんとMACアドレスの記載がある。いやね、本当に旧式
の無線アクセスポイントならHUBと同じなんでMACアドレスなんてないだろ
うと予想していたのですよ。でも、これがあるという事は、この装置はもしかし
たらルータかもしれない、そして仮にこれがルータでシリアルがついているとあ
れば、そこにポケ3を繋いでほげほげという事ができるはずだ、と考えて、発作
的に買ってしまいました。いや、散々逡巡したんですが。税込み420円。

自宅に持って帰って調べたところ、これは見事に無線アクセスポイント付ルータ
「APRS−11」であることが判明。残念ながらデフォルトではコンソールか
らはほとんど何もできないものの、ファームウェアにちょっとパッチを当てれば
Linuxのリモートコンソール的に使えるようになるとの事。
このへんは http://www.nurs.or.jp/~calcium/corega/index.html を参照。

ということで、さっそくパッチを当てたファームをアップロード。ネットワーク
経由のアップロードを試してみたら、最初はうまく行かなかったので、やはりシ
リアルからでないと無理かな、と思ったのですが、ユーザ設定をすべて初期化す
るように指定したら、特にトラブルもなく書き換え成功、そしてシリアルからの
ログインにも成功。

以下次回。多分、今度の週末には続きを書ける予定。
 

タイトルRe: ポケ3との組み合わせに挫折
記事No935
投稿日: 2007/05/15(Tue) 00:08
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元932
さて、超小型linuxマシンが手に入ったのはいいけれど、ちょっと調べた範囲では
どうも大したことはできなさそう。
ポケ3を繋いだ時に一番使いたかったtelnetクライアントは入っていないみたい。
ftpクライアントは入っているので、回線さえあればどこからでもポケ3で自分の
サイトの更新ができそうだけど、私にはあまりニーズがない。
pingとcronはあるので、定期的にpingを飛ばすなんてこともできるけど、あまり
意味はなさそう。全くの無意味でもないけど。
一番役に立ちそうなのはWEBサーバのソフト。ただ、これ、CGIも使えるよ
うなんだけど、でも、使える言語は実質的にはシェルスクリプトのみ。試しに、
WWW用のディレクトリに自分でcatを使ってテスト用にオリジナルなHTMLフ
ァイルを置いてみたら、見事に表示成功。一応、ディスクスペースにはまだまだ
余裕があるので、WEBサーバマシンに仕立てるのが一番現実的かな。もし、こ
の装置を使って、ある程度大量のデータを提供したいという事になっても、既存
で入っている設定用やステータス表示用のHTMLファイルをすべて消せば結構
な量のディスクスペースが確保できるけど、これをやってしまうと、サーバ(こ
のルータ)のメンテナンスだの設定変更だのがすべてコンソール経由でないとで
きなくなってしまって、これは不便。せめてtelnetサーバがあれば、かなり違う
んだけどねぇ。
一応、rlogindは起動していて、513番ポートも開いてはいるようなんだけど、
私には使い方がよくわからないもので。
 

タイトルAPRS-11いじり
記事No941
投稿日: 2007/05/22(Tue) 07:10
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元935
まず訂正。

> 一応、rlogindは起動していて、513番ポートも開いてはいるようなんだけど、
> 私には使い方がよくわからないもので。

rlogindというかinetdは、デフォルトでは起動していませんでした。
存在はしているので、手動で起動可能。
起動すれば、当然、それなりのクライアントを使えばリモートログインできます。
とりあえず、最低限の使い方は勉強しました。

そこで、まず、inetdを自動起動したい、ということで、起動シーケンスを追いか
けてみる。ところが、私のスキルレベルでは、どうにも太刀打ちできない。
当初、テキストで書かれた起動スクリプトか何かがあると想像していたのですよ。
が、どうもそんなものは見つからない。
分かった範囲では、電源投入時(またはリセット時)の挙動は以下のような感じ。

・ROMのブートローダが起動。
・ブートローダがフラッシュディスクの中のイメージファイルをRAMディスク
 に展開。
・RAMディスクのプログラムに従って、あとは通常のlinux起動シーケンス。

イメージファイルの中には、rc.dをはじめとするモロモロの起動用の設定が入っ
ているはずなので、それを書き換えてやれば、理屈ではinetdの自動起動は可能な
はず。ただし、よっぽど気をつけてやらないと、ファイルシステムを破壊してし
まったりする可能性あり。簡単には、何かのスクリプトに寄生させるんでしょう
ね。そうすれば、どっかのコメント文を削ったりして、ファイルサイズが変わら
ないようにできるでしょうから。もちろん、本来的には、独立のファイルを1つ
作るべきなのでしょうが、それこそファイルシステムへの細工が大変。
ファイルシステムは、多分、i-nodeなのだろうなぁ。

あと、もう一つ、WEBサーバが表示するHTMLファイルなどのデータも圧縮
してフラッシュディスクに格納されており、これも起動時にRAMディスクに展
開されます。これを書き換えてやれば、独自のWEBサーバにするのは簡単。
この、HTMLの元データの展開を行っているのがブートローダなのか通常の起
動シーケンスの中でなのかはまだ不明。ブートローダ中で行っているのであれば、
この圧縮データの中に、/etc/rc.dへ展開されるようなデータを紛れ込ませてやる
という方法が取れるかも。でも、特定ディレクトリというか、WEB公開用のデ
ィレクトリへしかデータが展開されないなら無理だけど。
ブートローダではなく通常の起動シーケンスでデータの展開が行われるのであっ
ても、この、データ紛れ込ませ作戦は有効かもしれない。でも、データの展開が
起動シーケンスの最終段階で行われるようであれば無意味。最初の方の段階で展
開されれば、最後の方でinetdを起動させるスクリプトを潜り込ませることが有効
だけど。

手動起動の方法は考えられるかな。
例えば、HTMLデータの中には、設定用の各種CGIも入っています。
それに加えて、inetd起動用のCGIも追加しておく。
再起動があった時、というか、リモートログインができない時は、まずWEBで
アクセスしてこのCGIを叩く。以降はリモートログイン可能となる寸法。
問題は、WEBサーバのチャイルドプロセスとして起動するような形になるのか
もしれないので、そうすると、CGIの出力が終わった段階でプロセスが強制的
に終了させられてしまい、inetdも落されてしまうのではないか、ということ。こ
の辺はCGIの中身の記述方法で何とかうまく回避できるのかなぁ。
 

タイトルRe: APRS-11いじり
記事No960
投稿日: 2007/06/11(Mon) 13:33
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元941
> そこで、まず、inetdを自動起動したい、ということで、起動シーケンスを追いか

inetdを自動起動しようとして大失敗。
リカバリがうまく行くか、内心冷汗たらたら。
何をしたかというと、

> ・ブートローダがフラッシュディスクの中のイメージファイルをRAMディスク
>  に展開。

イメージファイルを書き換えたのですね。
だけど、APRS-11内には、バイナリエディタのようなものは入っていません。
なにせ、テキストエディタすら入っていないのですから。
そこで、DOSに転送してからパッチを当てようとしました。
ところが、DOS上でファイルを開いて初めて知ったのですが、このイメージフ
ァイルはgzipで圧縮されていました。そこで、普通に展開。
ここでできるのが、本当のイメージファイルというかドライブ丸ごとファイル。
i-nodeだと思うけど、ファイルシステムごと全部入っています。
あとは、バイナリエディタでrc3.dに入っているファイルを適当に探し、コメント
部分を削って、その代わりにinetdを起動するように書き足しておしまい。
ここまでは順調だったのですよ。ところがその後がいけない。
再圧縮をDOS上のgzipで行ったのですが、この時、圧縮レベルが異なったか何
かしたのでしょうね。でき上がった圧縮ファイルのサイズが、元のサイズと微妙
に異なる。でも、中身を書き換えているわけだから当然バイナリ一致するわけも
ない。もしかして、APRS-11内のgzipが対応していない形式になっていたらどうし
ようと、いささかの不安も感じながらも、そのまま書き戻してしまいました。

そして再起動。・・・立ち上がらず(涙)。

ファームウェアを書き戻せば元に戻るはずですが、立ち上がってくれないとIP
アドレスなんかが設定されないので、ネットワークからのファームの書き換えが
できない。でも、ファームを書き換えないと立ち上がらない。ありがちな状態に
おもいっきり陥ってしまったわけです。
うぅん、このAPRS-11は燃えないゴミとなってしまったか。
またジャンクを調達してくればよいのだけど。
最後の一縷の望みをかけて、シリアルポートからのファームの書き換えに挑戦し
てみました。シリアルからなら、ROMのブートローダの段階で読み込んでくれ
るかもしれないと思ったからです。
ということで、びくびくしながらファーム書き換え実行・・・成功。
非常にほっとしました。
 

タイトルRe^2: APRS-11いじり
記事No969
投稿日: 2007/06/22(Fri) 13:02
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元960
前回の失敗に懲りて、イメージファイル内寄生方式でのinetd自動起動はあきらめ
ることにしました。DOS上のgzipのどんなオプション設定ならAPRS-11のgzipで
展開できるのか、いろいろなオプションを総当たりで試すという方法もないわけ
ではないけど、さすがに効率が悪そうなんで。
そこで、もう一つの方法を試してみました。
どうやら、追加パッケージ方式というらしいです。
早い話が、

> あと、もう一つ、WEBサーバが表示するHTMLファイルなどのデータも圧縮
> してフラッシュディスクに格納されており、これも起動時にRAMディスクに展
> 開されます。これを書き換えてやれば、独自のWEBサーバにするのは簡単。
> この、HTMLの元データの展開を行っているのがブートローダなのか通常の起
> 動シーケンスの中でなのかはまだ不明。ブートローダ中で行っているのであれば、
> この圧縮データの中に、/etc/rc.dへ展開されるようなデータを紛れ込ませてやる

こういう事なんですが、いろいろと調べてわかったことが一つ。
これは、フラッシュディスクの中のetcディレクトリにtar+gzipで圧縮したファイ
ルを入れておけば、どんなものでも自動的に展開してくれる模様です。つまり、
既存ファイルに寄生させるのでなくとも、同じ形式の新しいファイルを追加パッ
ケージとしてそのディレクトリに入れておくだけでよいので、結構お手軽。
しかも、tarでまとめる時にディレクトリ付の階層構造で格納しておけば、同じデ
ィレクトリに展開してくれるようです。一応、tarもgzipも、APRS-11に内蔵され
ていますし。
そこで早速、/etc/rc3.dに91inetdというファイルを作成。これはテキストファイ
ルなんで、catコマンドでお手軽に作成。
次に、tarでアーカイブファイルを作ろうとしたのですが、ここでまたも問題発生。
なんと、APRS-11付属のtarには、アーカイブの作成機能がない。アーカイブから
の取出ししかサポートしていない。なんてこったい。ちなみに、gzipは展開機能
だけではなく、きちんと圧縮機能もサポートしている事を確認。
仕方ないので、gzip圧縮だけはAPRS-11で行うことにして、アーカイブファイル作
成はDOS上で行うこととする。gzip圧縮をDOSで行うと、また前回と同じ失
敗をしてしまいそうだし。
使ったtarは、常用している「kmtar 2.00 パワーアップキット3.7」。
階層構造込みのアーカイブでないといけないので、一時的にサブディレクトリを
掘って、その中に入れた91inetdをアーカイブファイル作成。
んが、ここでも絶対に引っかかる点が1つと、もしかしたら引っかかる可能性が
ありそうなところが1つ、計2つの問題点を発見。
絶対に引っかかる点は、ファイルに実行属性がついていないという事。
そりゃそうだ、そんなファイル名ではDOS上では絶対に実行できないのだから。
もう一つの方は、ユーザ名とグループ名。
普通、DOS上では、いずれも存在しない。でも、APRS-11に元から付属している
追加パッケージでは、どれもowner/groupsがroot/rootとなっている模様。
こちらの方は、どんな値になっていても多分大丈夫だろうけど、すこしでも危険
は排除しておきたい。
両方の問題とも、自分がrootのunixマシンがあれば全然問題ではないんだけど。
あるいは、オプションでいろんな値を任意に設定できるDOS版のtarがあれば解
決するのだろうけど、そんなもん、見たこともない。

そこで採った解決策。
1つ目の問題点は、ファイル名を書き換えることでクリア。
具体的には、.batという拡張子をつけました。
これで、DOS上のtarは見事に実行属性をつけてくれます。
linux上では、実行属性のついていることが重要で、拡張子なんかどうでもいいわ
けです。もしこれでだめなら、拡張子を.exeにしたかもしれません。
2つ目の問題点は、半分はあきらめました。他のバージョンとか、Windows上の版
ではどうかわかりませんが、上記の版では、どうやってもグループ名をつけるこ
とができませんでした。が、ユーザ名の方は、環境変数USERを読み取って、それ
をそのまま設定してくれることが判明。こんなこと、ドキュメントには書いてい
ないんだけどな。今回ばかりはアンドキュメントな仕様にたすけられました。
もしかして、当り前すぎて書かれていないというパターンかな。

ということで、紆余曲折はあったものの、DOS上で作ったアーカイブ作成。
これをAPRS-11に転送。そちらでgzipで圧縮し、フラッシュディスクに格納。

そして再起動。・・・やった、見事にinetdが起動しました。
もちろん、リモートログインもOKです。

次は、pingを打って、応答がなければftpを実行するシェルスクリプトかな。
そして、cronの設定のお勉強。
それができれば、サーバ障害時の自動ごめんなさい表示機能が完成。
いつになることやら。
 

タイトルRe^3: APRS-11いじり
記事No1502
投稿日: 2008/12/19(Fri) 23:40
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元969
相変わらず、この装置で遊んでいます。
初心に返ってというか、サービス制御スクリプトって言うんですかね、こいつを
全部読んでみました。結果、判ったこと。

> どうやら、追加パッケージ方式というらしいです。
> 早い話が、
> 
> > あと、もう一つ、WEBサーバが表示するHTMLファイルなどのデータも圧縮
> > してフラッシュディスクに格納されており、これも起動時にRAMディスクに展
> > 開されます。これを書き換えてやれば、独自のWEBサーバにするのは簡単。
> > この、HTMLの元データの展開を行っているのがブートローダなのか通常の起
> > 動シーケンスの中でなのかはまだ不明。ブートローダ中で行っているのであれば、
> > この圧縮データの中に、/etc/rc.dへ展開されるようなデータを紛れ込ませてやる
> 
> こういう事なんですが、いろいろと調べてわかったことが一つ。
> これは、フラッシュディスクの中のetcディレクトリにtar+gzipで圧縮したファイ
> ルを入れておけば、どんなものでも自動的に展開してくれる模様です。つまり、
> 既存ファイルに寄生させるのでなくとも、同じ形式の新しいファイルを追加パッ
> ケージとしてそのディレクトリに入れておくだけでよいので、結構お手軽。

rc.boot というディレクトリのなかに 50plug というファイルがありました。
ここに、こんな記述があります。

PKGS=`ls /mnt/etc/*.pkg`

つまり、フラッシュディスクの中のこのディレクトリにこのようなファイル名で
格納しておけば、なんでもRAMディスクに展開できる、ということ。もちろん、
シェルスクリプトでもOK。サービス制御スクリプトでも問題はないけど、当然、
実行タイミングは展開後でないとまずいので、49aaa なんてファイルではだめな
はずだけど、51bbb ならOKなはず。試していないけど。どうせやるなら、無難
に、rc3.d あたりに展開されるようにします。

もうひとつ。
#1013 に以下のように書きました。

> なので、フラッシュメモリにコピーしました。これで、次に電源を入れた時には
> コピー一発でOK、と思いきや、電源再投入後に確認するとコピー前だというの
> になぜか既に存在している。いろいろと試したところ、なんと、電源投入時にフ
> ラッシュメモリから自動でコピーされていることが判明。多分、正しい位置に置
> いておけば自動でコピーされるファイルって、他にもいっぱいあるんだろうなぁ。

これについても、同じ rc.boot というディレクトリのなかに 20cp_base という
ファイルがありまして、ここで設定されています。こんな感じ。↓

# cp files
CPFILE="ap.conf passwd resolv.conf rc.d/inet.conf pcmcia/config.add"
for f in $CPFILE; do

う〜ん、いまいちあんまりどうも、という感じ。
20cp_base ファイルそのものを書き換えて対象ファイルを増やすことも可能だけ
ど、書き換えたファイルをどうやって保存するかという問題があって、現実性は
まるでなし。その上、あんまりメリットもないし。素直に追加パッケージ方式で
行くことにしましょう。
 

タイトルRe: APRS-11いじり
記事No942
投稿日: 2007/05/24(Thu) 19:22
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元935
このマシン、CPUは386あたりに互換性があるらしいけど、このマシンの中
には開発環境なんかは全く入っていない。という事は、これようのツールを作る
となると、アセンブラでガシガシ書くことは可能でも、その場合には標準入出力
やソケット操作に関するライブラリ関係も全て1から書く必要があって、そうす
るとIOポート番号も調べなければならず・・・と、とてつもなく大変。
やるのであれば、

> pingとcronはあるので、定期的にpingを飛ばすなんてこともできるけど、あまり

pingクライアントの逆汗ぐらいから始めるかな。
これで、コマンドラインからのパラメータの入力法、ソケットアクセスの方法、
標準出力への出力方法がわかるから、WEBサーバにアクセスして結果を標準出
力に吐き出すHTTPクライアントソフトくらいは作れるけれど、いかんせん、
稼動がかかりすぎ。でも、このソフトがあると、とてつもなく使い勝手が向上す
るんだよなぁ。
 

タイトルRe^2: APRS-11いじり
記事No1342
投稿日: 2008/07/25(Fri) 23:04
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元942
> pingクライアントの逆汗ぐらいから始めるかな。

ping だけでなく、多くの実行ファイルの正体は busybox でした。
でも /bin と /usr/bin の両方にきちんとパスが通っているのだけど、よく見た
ら、sed だけは全く同じサイズの同じファイルが両方のディレクトリに存在して
いる。これって何か意味があるのかな。片方は消してしまってもいいような気が。
そうすれば、ざっと 100KB は記憶容量の節約になるわけだし。

> このマシン、CPUは386あたりに互換性があるらしいけど、このマシンの中

ふと、適当な linux のパッケージからバイナリの実行ファイルを持ってきたら、
運が良ければ動くんじゃないか、と思いました。ただ、あんまり新しすぎても、
ライブラリのバージョンが異なってしまってダメだろうけど。そこで、さっそく
実行。図書館に行って、97年頃の Red Hat のCD−ROM付の本を借り出して
きました。CD−ROMの中を覗いたところ、運良く、gawk のバイナリがある。
さっくりとメインマシンにコピーして、メインマシンで ftp サーバを起動、そし
て APRS-11 で ftp クライアントで get。chmod で実行属性を付与して、実行!
・・・玉砕。ライブラリだかなんだかが見つからないという表示が多数出てくる。
さすがに暴走する事はなくて、きちんとコマンドプロンプトには帰ってくるので、
マシン語レベルでは386か486で互換性があることは間違いなさそう。

APRS-11 に入っているプログラムをバイナリエディタで開きたかったのですが、
この機械にはバイナリエディタが入っていない。しかたないので ftp でメインマ
マシンに転送して、Red Hat のCD−ROMに入っていたソフトと比較してみま
した。ファイルの形式としては、両者とも ELF。だから実行できたのでしょう。
で、やっぱり、要求しているライブラリが異なる。バージョンもそうなんですが、
ライブラリの存在を期待している位置(パス)がそもそも異なっている。
うぅん、これはダメだ。

でも、なんとなく、もっと古い、例えば96年頃の Slackware なんかが入手でき
れば、そういうのでも試してみたい気はします。
  

タイトルRe^3: APRS-11いじり
記事No1372
投稿日: 2008/08/09(Sat) 22:10
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1342
> いる。これって何か意味があるのかな。片方は消してしまってもいいような気が。
> そうすれば、ざっと 100KB は記憶容量の節約になるわけだし。

試しに消してみましたが、全然空き容量が増えない。あれ?
いろいろと試してみた結果、ハードリンクって言うんでしたっけ、シンボリック
リンクではないやつ、それで多くのファイルが作られているのでした。
ちょっと残念。


さて。

> ping だけでなく、多くの実行ファイルの正体は busybox でした。

busybox を作る際、もしライブラリがスタティックリンクしてあれば、ライブラ
リのバージョンに依存せず、このマシンで動かす事が可能かもしれません。さら
に、もし busybox の中に gawk が含まれていれば、その busybox をこのマシン
にポーティングする事により、あれやこれやができるようになるのでは・・・と
妄想が広がりました。でも、残念ながら、自宅に linux でコンパイルが行えるよ
うな環境はありません。

ということで、コンパイル済みの(そしてスタティックリンクでリンク済みの)
busybox を探すことにしました。まず、昔、会社の金で受けた通信教育の教材で
2001年頃の turbolinux の円盤がどっかにあるはずなのですが、残念ながら
発見できず。部屋に食われてしまった模様。
仕方ないので、再度、図書館からCD−ROM付の本を何冊も借り出してきまし
た。今度は、ライブラリのバージョンは新しかろうが古かろうが関係なく、問題
は busybox が入っているかどうか、という1点だけです。今回、借りてきた円盤
に入っているバージョンは以下の通り。

Red Hat 4.2              (1997年頃)
Red Hat 7.2              (2001年頃)
turbolinux Workstation 8 (2002年頃)
Fedora Core 4            (2005年頃)

が、残念ながら玉砕。busybox が入っているのなんて、一つもないでやんの。

もしかしたら順番があべこべかもしれませんが、ようやっとここで、ネットワー
クから入手することにしました。結果、探せばあるものなんですね、スタティッ
クリンクされていると明記されているコンパイル済みの busybox を入手しました。
もちろん、x86 用。
が、gzip と tar を解いてみて愕然。ファイルサイズが1MBを越えるでやんの。
この装置の空きは 600KB くらいだから全然足らん。いろんなファイルを消しまく
ればこの程度の空きはひねり出せる可能性はあるけど、さすがにそれを行うだけ
の覚悟はない。

う〜ん、linux をインストールして、自分で好きなオプションを指定してコンパ
イルしてみるしかないのかなぁ。
telnet クライアントと awk が動く程度でいいんだけどなぁ。
会社のマシンに VirtualPC がインストールしてあるんで、そっちに linuxを入れ
るのが一番速そうだけど、それもなかなか。
   

タイトルRe: APRS-11の使い道?
記事No948
投稿日: 2007/06/01(Fri) 21:50
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元935
> pingとcronはあるので、定期的にpingを飛ばすなんてこともできるけど、あまり

ただpingを飛ばしても面白くないけど、cronでシェルスクリプトを動かして、そ
の中でpingを飛ばす、というのはいいかもしれない。
飛ばし先は、自宅サーバ。自宅サーバのとなりに設置して、5分に1回pingを飛
ばし、応答がなくなればサーバダウンと判断して、今度はftpでプロバイダのサー
バにアクセス。自宅サーバにリンクを張っている掲示板のフレームファイルを書
き換えて、「現在、板塀倒壊中」みたいなメッセージを表示させるようにする、
と。
ん〜、ネットワークのあちこちを似非二重化しているような感じ。
拾ってきたマシンを使って、サーバの本格的二重化を図ってもいいんだけど。
似非二重化の方が、いかにも私の性格を表しているようで、楽しくていいな。
 

タイトルRe^2: APRS-11いじり
記事No1055
投稿日: 2007/10/12(Fri) 22:21
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元948
> ただpingを飛ばしても面白くないけど、cronでシェルスクリプトを動かして、そ
> の中でpingを飛ばす、というのはいいかもしれない。
> 飛ばし先は、自宅サーバ。自宅サーバのとなりに設置して、5分に1回pingを飛
> ばし、応答がなくなればサーバダウンと判断して、今度はftpでプロバイダのサー
> バにアクセス。自宅サーバにリンクを張っている掲示板のフレームファイルを書
> き換えて、「現在、板塀倒壊中」みたいなメッセージを表示させるようにする、

#1022にも書いたけど、うちの自宅サーバ、よく起こる機能停止状態では、なぜか
pingに応答してしまうので、上記の方法ではうまく行かないことがわかりました。
ただ、この装置、その他に入っているツールとしてはftpクライアントくらいしか
ない。そこで、次の手段としては当然、ftpでサーバダウンを検知しようと考えま
した。ところが、これまた困ったことが判明。

10月10日朝、サーバ停止状態になったので、この装置からftpでサーバにアク
セスし、どんな応答が返るかチェックしようとしました。が・・・返ってこない。
約10分間待ったのですが、タイムアウトにならないのです。仕方なくリセット。
もしかして、ftpサーバが動いていないものに対してアクセスしようとした場合に
は必ずこうなるのかな、と思い、再起動後、再びこの装置から自宅LAN内の各
ホストに向けてftpでアクセスしてみましたが、ほとんどはすぐに応答無しで切断
されます。が、ひとつだけ、同じように、全然タイムアウトにならないホストが
ありました。よりによって、自宅内ゲートウェイのルータです。しばらく待ちま
したが、約10分であきらめて切断しました。
最後に、ftpクライアントはどれも同じような実装になっているのかな、と思い、
今度はメインマシンの生DOSのftpクライアントで止まっているサーバにアクセ
スしてみたのですが、これも応答なし、かつ、タイムアウトにもならず。これも
約10分待って、あきらめました。サーバの方は、この段階でリブート実施。

一応、追試というか、その後の調査で、この装置から自宅内ゲートウェイのルー
タにftpでアクセスした場合、約30分待てばタイムアウトになることがわかりま
した。という事は、もしかしたら、倒れている自宅サーバに対しても同様の挙動
を示すかもしれません。ただねぇ、ちょっとこれはあまり現実的ではないですね。

ということで、ftpでサーバがこけていることを検知するのもあきらめました。
となると、あとは何が残っているかな。
DNSサーバを立ち上げて、nslookupで検知できるかなぁ。
  

タイトルだけどヘンなマシンだな
記事No970
投稿日: 2007/06/24(Sun) 23:09
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元935
> さて、超小型linuxマシンが手に入ったのはいいけれど、ちょっと調べた範囲では
> どうも大したことはできなさそう。

大したことができないどころではなく、この機械、とっても変。
どうも、標準では時刻設定ができないような感じ。
私が設定方法を見落としているだけかも知らんけど、WEBからもシリアルから
も、なんか設定画面そのものが見つからない。そりゃぁ、ただのアクセスポイン
トとして使うのであればHUBと同じようなもんだから時刻設定なんて関係ない
んだけどさ。設定によってはルータとしても使えるわけで、それなのに時刻設定
がないとなると、欠陥マシンと言う人もいるかもしれない。
パッチを当てた現在では、linux標準のdateコマンドで時刻設定可能。
ついでに言うと、装置内部にはsyslogdはあるようだけど、ntpクライアントは入
っていない模様。正しく時刻設定せずにsyslog取得しても非常に無意味なんです
けど、どうなってんのかな。

そういえば、以前使っていたルータ、この装置と同じくコレガ製なんだけど、こ
ちらも時刻関係は変だった。一応、ntpクライアントは入っていたんだけど、設定
できるサーバが固定というか自社のサーバのみ。ところがそのサーバ、動いてい
なかったんですよ。製品が思わず売れすぎてアクセス集中してダウンしてしまっ
たとか、ありそうな気もする。
実は、裏ワザでサーバ設定を変えられるようなんですが、その方法を知ったのは、
故障して廃棄してから数週間後というか、つい先日。

う〜ん、どうもコレガって、面白い機能を持った製品を安価に出すのはいいけど、
イマイチ詰めが甘いような気がする。
自分が使う新しいルータを今すぐ買うとすると、価格に糸目を付けないのであれ
ばアライドテレシス・ヤマハ・マイクロ総研あたりのブランドがいいかな。次点
としてはプラネックス・IOデータ・NECあたり。一応、比較対象にコレガと
バッファローも追加するけど、この2者はよっぼど面白い機能が搭載されていて、
とてつもなく安価で、かつ、ネット上の評判も慎重に調べてからでないと、実際
に手を出すのは控えたいな。
 

タイトルRe: APRS-11自動時刻設定に挑戦
記事No985
投稿日: 2007/07/15(Sun) 18:53
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元970
ほとんど何も設定されていない物を一から調教していくというのも、なかなか面
白いものではありますな。かなり面倒だけど。
例えばこのマシン、標準でnslookupは入っています。が、そのままコマンドを叩
いてなにか検索しようとしても、DNSサーバが未登録、という意味のつれない
返事を返してそれっきり。けっ、使えね〜な〜、と思ったら、単にresolv.confが
設定されていないだけだったり。DHCPクライアントをONにしてやれば自動
設定されるのですが、今回はネットワーク関係を全部手動で設定していたために、
思いっきり無設定状態だったのでした。きちんと手で書いてやったら、なんてこ
となくホスト名の検索ができるようになりました。



さて。

> どうも、標準では時刻設定ができないような感じ。

現状では、電源をOFF/ONするだけで時刻が初期化されてしまい、5年くら
い前の日時になってしまう。元々、出荷時に時刻があわせてあって、現在は時刻
バックアップ用の電池が飛んでしまっているのかなぁ。だとしても、標準で時刻
設定の手段が用意されていないというのは、やっぱり変。
起動時にいちいち手動で時刻を合わせてやってもいいけど、それも面倒。何と言
ってもネットワーク機器なんだから、できればネットワーク経由で時刻を合わせ
たい。まぁ、自然にも徐々に時刻はずれるかもしれないけど、大幅に狂うのは起
動時だけなのだから、起動時に自動で合ってくれれば十分、かな。

では、どうするか。
もはや誰も使わないようなtimeプロトコルは当然として、ntpはもちろんのこと、
telnetやhttpのクライアントすら入っていないマシンで、いったいどうやって自
動的に時刻を設定するか、というのはちょっとした頭の体操。でも、結論はほと
んど見えていて、ftpを使うしかないのですね。
ということで、自宅サーバにftpのデーモンを導入。
自宅ゲートウェイでポートを開けていないので、外からはアクセスできません。
このサーバはWindowsマシンなので、例えば、win386.swpなんてファイルが頻繁に
更新されていて、わりと現在に近い時刻を持っています。そこで、このファイル
の時刻を取得。このファイルの時刻の方が古ければ何もせずに終了、逆に新しけ
ればAPRS-11の時刻をこのファイルの時刻に合わせる。うん、なかなかよさげ。
あ〜、でも、年が合わないな。これは手動設定と割り切るか。

ということで、途中まで完成したシェルスクリプト。

ftp -n < ftp.ftp > ftpdate.lst
grep "WIN386.SWP" ftpdate.lst > ftptime.lst
sed -e "s/.* \([A-Z][a-z][a-z]\) /\1 /" < ftptime.lst > ftptime2.lst
sed -e "s/ [^ ]*$//" < ftptime2.lst > ftptime3.lst

普通ならヒアドキュメントで記述するであろうftpの制御コマンドは、今回は別フ
ァイルとしました。だって、曲がりなりにもエディタと名のつくものはsedしかな
い、viすら入っていないマシンですから、基本的にcatコマンドでテキストファイ
ルを作っているのですよ。だから、あとから1文字だけ間違いを発見した、なん
て時も、基本的に全部新たに書き直し。なので、大きいファイルを作りたくない
んです。
参考までに、ftp.ftpの内容はこんな感じ。

open myserver
user toshiki password
ls
ls windows/w*.*
bye

とりあえず、これで、年を除いた月日時分は取得成功。
こんな感じで取得できました。

Jul 15 15:23 

なお、現在日時は

date > nowtime.txt

とすれば

Sun Jul 15 16:07:00 JST 2007 

という形式で取得できるので、さて、これをどうやって比較するかなぁ。
今度はtestコマンドの勉強をしなくちゃ。

ついでに言うと、今年が何年かは取得できなくても、去年が何年かは取得できそう。

sed -e "s/.* \([0-9][0-9][0-9][0-9]\) /\1 /" ftpdate.lst | sort -r > ftpyear.lst
sed -n -e "1s/ / /p" < ftpyear.lst | sed -e "s/ .*//" > lastyesr.txt

このsedもかなりクセがあって大変。
まず、pコマンドというものが存在していない。
なので、1行目だけ出力したいのに"1p"と書けない。
苦肉の策が、上記の2行目の最初の記述。デフォルト出力を抑止し、1行目だけ
無意味な変換をさせて、変換があった行だけ出力する、というもの。
さらに妙なのが、2行目の2番目の記述の結果。
空白以降行末まで削除、というなんて事のない記述なんだけど、なんと、改行符
号まで削除されてしまう。ホールドスペースを使わずに行の結合ができるのは面
白いけど、でも、やっぱりなんか変というか、馴染めない仕様。

これで、前年は取得できたとして、では今年の年号はどうすれば求められるかと
いうと、これがかなり難しい。だって、このマシン、exprコマンドを搭載してい
ないんですもの。ということで、今のところは挫折中。


あ〜、でも、話が戻っちゃうけど、電源投入時の自動起動はなんか面倒そう。
どうせcronの勉強もするのだし、1日1回くらいの自動時刻合わせとしようかな。
 

タイトルRe^2: APRS-11自動時刻設定に挑戦
記事No1013
投稿日: 2007/08/21(Tue) 00:00
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元985
> 返事を返してそれっきり。けっ、使えね〜な〜、と思ったら、単にresolv.confが

電源を落すと、RAMディスクに構成されている全てのファイル、が消えてしま
います。当然、resolv.confも消えてしまいます。そのたびに1から書くのも面倒
なので、フラッシュメモリにコピーしました。これで、次に電源を入れた時には
コピー一発でOK、と思いきや、電源再投入後に確認するとコピー前だというの
になぜか既に存在している。いろいろと試したところ、なんと、電源投入時にフ
ラッシュメモリから自動でコピーされていることが判明。多分、正しい位置に置
いておけば自動でコピーされるファイルって、他にもいっぱいあるんだろうなぁ。


> ついでに言うと、今年が何年かは取得できなくても、去年が何年かは取得できそう。

この方式ではうまく行かないことが判明。
ftpのls -lで年を表示するか否かって、サーバ側の日時に依存しているかと思っ
ていたのですが、クライアント側の日時に依存しているという事がわかったから
です。電源投入時のこのマシンのデフォルト日時と実際の日時を考えれば実害は
ないというか現実的には全く問題はないはずですが、やはり少々美しくないので、
別の方法を検討しました。
ファイルそのものの日時を使えないとなると、使えるものは、ファイルの中身し
かありません。ファイルの中身で年情報が書き込まれていて頻繁に更新されてい
るものというと、一番良いのは、この掲示板のログです。新しい年になれば、き
っと誰かが何かを書き込むでしょうから、最新の年情報を取り出した場合にそれ
が前年のままであるというのは、本当に年の初めの数日間だけでしょう。
ただ、この方法には致命的な欠陥があって。
ftpで取得する場合は、ファイルを丸ごとgetで取得しなければならないのですが、
このログファイル、とにかく巨大なんです。1MBを越えています。ところが、
この装置の空き容量は高々450KB。とてもじゃないが収まりません。ということで
却下。
小さくて年情報が記載されているファイルは他に何かないかと探したら、1つ見
つけました。このサイトのindex.htmlです。
これ、サイトの更新があるたびに、copyrightのところの年情報もきちんと更新を
かけています。そして、今のところ、月に1回はサイトの更新を行っています。
つまり、年情報が前年のままである期間は、最大でも1ヶ月程度以下であること
が期待できます。まぁね、そのうち月1回更新をやめてしまう予定ではあります
が、あと2〜3年はなんとか維持する予定ですから、当面はこれでいいかな。な
んとなく、開設10周年を持って2ヶ月に1回更新とか不定期更新に移行するよ
うな予感がします。いや、私はカセイジンではないので、予感はアテにならない
と思いますけど。
#わからないネタだなぁ。


ということで、日時を自動で設定するスクリプト。
ちょっと改行が入っているところがあるけど、それは勘弁ね。

#!/bin/sh                                                                       
ftp -n < ftp2.ftp                                                               
grep -i copyright year.html > year1.txt                                         
sed -e "s/^.*\(2[0-9][0-9][0-9]\).*$/\1/" year1.txt > year2.txt                 
rm year.html                                                                    
                                                                                
ftp -n < ftp.ftp | grep "WIN386.SWP" > ftptime.lst                              
sed -e "s/.* \([A-Z][a-z][a-z]\) /\1 /" < ftptime.lst > ftptime2.lst            
sed -e "s/ [^ ]*$//" < ftptime2.lst > ftptime3.lst                              
sed -e "s/Jan / 01/" < ftptime3.lst | sed -e "s/Feb / 02/" | sed 
 -e "s/Mar / 03/" | sed -e "s/Apr / 04/" | sed -e "s/May / 05/" | sed 
 -e "s/Jun / 06/" | sed -e "s/Jul / 07/" | sed -e "s/Aug / 08/" | sed 
 -e "s/Sep / 09/" | sed -e "s/Oct / 10/" | sed -e "s/Nov / 11/" | sed
 -e "s/Dec / 12/" > ftptime4.lst                  
sed -e "s/ \([0-2][0-9]\):/\1/" ftptime4.lst > ftptime5.lst                     
sed -e "s/^ /date /" < ftptime5.lst > ftptime5.sh                               
cat year2.txt >> ftptime5.sh                                                    
. ./ftptime5.sh                                                                 
rm ftptime*.lst                                                                 
rm year*.txt                                                                    


> このsedもかなりクセがあって大変。

改行符号が削除されてしまう、というのは前回も書いたけど、この仕様のおかげ
で助かった点があったこともまた確か。ただ、今回、他にも変な仕様を見つけて
しまって。ただ、今回見つけたのは、EUCが基本であるはずのlinux上における
シフトJIS文字の扱いだから、責めるのは酷かもしれないというのは理解して
いるけど、挙動があまりにも妙だから一応紹介します。
具体的にどんなものかというと、「.」(ピリオド)で任意の文字にマッチさせる
と、ピリオド1つが1バイトに対応して、ピリオド2つでシフトJIS1文字に
対応してくれました。では、ということで、次に[^0-9]という文字クラスを使っ
たら、これがなんと、シフトJISにマッチしてくれない。む〜、謎。これのせ
いで、ちょっとはまってしまいました。


ということで、スクリプトは完成したから、あとはどうやってこのスクリプトを
起動させるかだなぁ。基本的に電源投入時に1回起動させるだけでいいものだか
ら、cronに仕掛けて何回も起動させるのは無駄だし。やはり起動時スクリプトか
なぁ。できればログインスクリプトに仕掛けたいような気がするけど、この装置
で使っているシェルの場合、どのディレクトリのなんというファイル名をログイ
ンスクリプトとして実行してくれるのか、今のところ不明。
もうちょっと検討してみます。
 

タイトルRe^3: APRS-11自動時刻設定あと少し
記事No1041
投稿日: 2007/09/22(Sat) 11:33
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1013
> ら、cronに仕掛けて何回も起動させるのは無駄だし。やはり起動時スクリプトか
> なぁ。できればログインスクリプトに仕掛けたいような気がするけど、この装置
> で使っているシェルの場合、どのディレクトリのなんというファイル名をログイ
> ンスクリプトとして実行してくれるのか、今のところ不明。

とりあえず、こいつは判明しました。
/etc/profileというシェルスクリプトを作っておけば、ログイン時に自動で実行
してくれました。ただ、問題は、このファイルも一旦電源を落すと消えてしまう
という事。電源を落した直後のログインが重要だというのに、なんだかなぁ。
残念ながら、resolv.confみたいに

> になぜか既に存在している。いろいろと試したところ、なんと、電源投入時にフ
> ラッシュメモリから自動でコピーされていることが判明。多分、正しい位置に置
> いておけば自動でコピーされるファイルって、他にもいっぱいあるんだろうなぁ。

フラッシュメモリに置いておいても自動でコピーされるようなことはありません
でした。うぐぅ。
仕方ないので、これも追加パッケージ方式でなんとかしましょう。

ということで、自動時刻設定編はほぼ完結。
その次は、いよいよ、板塀倒壊検知機能の作り込みになることでしょう。
 

タイトルRe^2: APRS-11自動時刻設定1歩後退
記事No1235
投稿日: 2008/04/30(Wed) 13:06
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元985
いまだにこの装置、実戦投入せずに遊んでいますが、さて。

> このサーバはWindowsマシンなので、例えば、win386.swpなんてファイルが頻繁に

サーバマシンのダウン頻度低下を狙って、最近、サーバマシンのチューニングを
実施しました。その中に、win386.swpを極力使わない、なんて項目があったりし
ました。結果、以前ほど頻繁にはこのファイルが更新されなくなってしまいまし
た。どの程度かというと、マシンの再起動から数時間、下手をすると数日間はこ
のファイルが0バイトのまま、なんて状況だったりします。ま、この変更のせい
か他の項目のせいかはわかりませんが、以前よりはるかに安定するようになった
のは確かです。
が、この装置の時刻合わせにこのファイルが使えなくなったのも確か。
別のファイルを探さねば。
サーバのログファイルあたりがいいかなぁ。

ちなみに、サーバマシンのダウン検知は、やはりというか、ftpを使うことにしま
した。ただ、直接検知は使えないので、間接検知。具体的にどうするかというと、
現在、1時間に1回、サーバマシンでネットワーク回線の断線検知用バッチファ
イルが稼動しています。これにもう一働きしてもらうか、別のバッチを作るかし
て、1時間に1回程度、何らかのファイルを家主のサーバにアップロードします。
そして、この装置ではそのファイルの時刻情報を取得して、例えば、3時間以上
更新がなければサーバがダウンしたものとみなす、というロジックにします。

ただ、まぁ、このシステムがいつ稼動するかは全くの謎。
計画倒れに終わる確率は50%以上かも。
 

タイトルRe: ポケ3と組み合わせられるかな
記事No1478
投稿日: 2008/10/13(Mon) 20:11
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元932
#1398 に書きましたが、類似品の APR-11 というマシンを入手しました。外見は、
こちらは PCMCIA のスロットがないというぐらいで、ほとんど違いはありません。
さらに、APR-11 と同じ筐体の AP-11 という、ルータとしての機能が省かれた純
粋な無線LANのアクセスポイント商品もあることがわかりました。

まず、ファームの書き換えの前に、それぞれのファームにどんな違いがあるのか
を調査してみました。結果、判った事。
APRS-11 のファームウェアの最新版は Ver4.5.6L。
APR-11 と AP-11 の最新版は V4.5.5L。このバージョンでは両者に差異はありま
せん。バイナリコンペアして確認済み。という事は、筐体だけでなく、内部も同
じものということなんでしょうね。
さらに AP シリーズを2台対向というか無線で直結するための Peer to Peer 用
のファームウェアというのもあって、これの最新版は Ver3.5.0 なんですが、な
んと APRS-11 と APR-11 と AP-11 で同一。つまり、APRS-11 だけに搭載されて
いる PCMCIA スロットを使わない限りにおいては、このシリーズの3機種の内部
構造に違いはないという事ですね。
一応、AP-11 専用のルータ機能無しバージョンのファームウェアというのもあっ
て、これの最新版は Ver1.1.2。

これから遊び倒すにあたって、記憶領域の空きが少しでも多いファームを母体に
しようと思いました。ということで、APRS-11 用を除いた、APR-11 で使用可能な
ファームを全て一通り流し込んでみた結果、当り前というか、一番機能の少ない
AP-11 用のルータ機能なしが一番空き容量が大きいと判明。以後はこれで遊ぶこ
とにします。

今回は、ファームのパッチ当てを、

http://mobilehackerz.jp/archive/corega/index.html

にあったパスワードファイル変造ではなく、

http://arak.jp/diary/?200501a

こちらの環境変数無効化で実施してみました。このページでは、シリアルポート
はコンソールとして機能しなかったような事がちらっと書いてありましたが、私
のところでは、なんかきちんと機能しているような感じ。私の誤解かもしれませ
んが。
1つ問題だったのは、私の入手したファームウェアは、該当しそうな環境変数の
記述がなぜか3ヵ所くらいあって、どれが正解かわからなかったので、全て書き
換えました。多分、ディスクイメージをそのままファームウェアに落したんだと
思うので、ディスク上のゴミデータまで残ってしまったのではないかなぁ。
 

タイトルRe^2: ポケ3と組み合わせられるかな
記事No1479
投稿日: 2008/10/18(Sat) 11:08
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1478
さて、調教の第1歩は、余計な無線通信を行わないようにする事。
一番手っ取り早いのは、分解して内部の無線LANカードを引っこ抜く方法。で
も、私は、暗号化やMACアドレスフィルターなどの設定でお茶を濁しました。
これ、設定ファイルを書き換えてフラッシュに保存するだけなんだけど、シェル
で行うのが面倒だったので、WEB設定で実施。
これが終われば、WEB用の html やら gif やら cgi のファイルが不要になり
ますので、ばさっと削除。結果、RAMディスクの記憶容量の空きは約 1.2MB。
その他、フラッシュメモリの空きも約 200KB 強あります。
これだけあれば、最新の busybox も入れられそう。
早速、ネット上で i386 アーキテクチャでスタティックリンクなバイナリ配布パ
ッケージを収集。でも、入手できたのは ubuntu 用のものが5つと debian 用の
ものが3つだけ。その他に RedHat のバイナリ配布のものもあったけど、残念な
がら動的リンクと書いてあったので入手しませんでした。
とにかく、新規に8種類入手できたので、新しいバージョンから順に転送して動
作確認。が、ほとんどがNG。実行させても空しく

FATAL: kernel too old

というメッセージが出るだけ。busybox が新しすぎるんでしょう。
結局、8種類のうち、曲がりなりにもヘルプメッセージというかコマンド一覧の
表示までたどりつけたのは以下の2種類のみ。

BusyBox v1.01 (Debian 1:1.01-4ubuntu3) multi-call binary
(ubuntu 用、実行ファイルサイズが 1206352bytes、タイムスタンプ:2006/04/03)

BusyBox v0.60.5 (2004.10.29-22:08+0000) multi-call binary
(debian 用、実行ファイルサイズが 959320bytes、タイムスタンプ:2004/10/30)

ちなみに、もとからこの装置に入っていた busybox は以下のようなもの。

BusyBox v0.43 (2000.09.27-10:36+0000) multi-call binary -- GPL2
(実行ファイルサイズ 85724bytes、タイムスタンプ:2000/09/27)


えへへ、大きくて新しい方のバージョンだと awk が入っているなぁ。
どっちのバージョンでも、telnet もあるし wget もあるし、time プロトコルで
時刻合わせができる rdate まで入っている。こりゃいいわい。変なスクリプトで
無理矢理時刻を合わせるようなやり方を使わずに済むので、とっても嬉しい。あ
いにく、今時こんなプロトコルの公開サーバって無いようだけど、自宅LANで
はきちんと機能する。自宅サーバに自作のサーバプログラムを仕込んであるので
すよ。まさかこんなところで自作の time プロトコルのサーバが役に立つとは思
わなかった。ちなみに、自宅サーバはインターネット上のサーバと sntp で同期
しています。
あと、tar も、元から入っていたものだと新しいアーカイブを create できなか
ったのだけど、今回入手した busybox に入っているものなら新規作成可能。これ
が可能になると、フラッシュメモリに格納しておけば起動時に自動的に展開して
くれる .pkg ファイルを自前で作製できるようになるので、色々なパッチ当てと
いうか機能拡張がさらに容易。あ、でも、追記オプションがない。これはちょっ
と残念というか面倒。
ただ、telnetd を試しに起動してみようとしたら、ソケットがつかめないと言っ
て起動できなかった。おそらく、こんな感じで、なんかの理由で動かないコマン
ドもたくさんありそうな気がする。
一番いいのは、必要なコマンドだけを含めるような形で再コンパイルする事なん
でしょう。でも、現在は自宅に linux 環境がありません。仮に、自宅に環境を整
えてコンパイルした結果が、カーネルが古すぎる、のメッセージで終わってしま
うと悲しい。ということで、当面は、今回バイナリで入手した busybox で遊ぶこ
とにします。
 

タイトルRe^3: ポケ3と組み合わせられるかな
記事No1495
投稿日: 2008/11/20(Thu) 18:49
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1479
> えへへ、大きくて新しい方のバージョンだと awk が入っているなぁ。

ちと問題なのは、新しく入手した busybox、サイズが大きすぎるので、不揮発性
のフラッシュメモリに入りきらない。RAM 領域は当然ながら揮発性ですから、電
源が切れると消えてしまうわけで、でもフラッシュに置いておけないという事は
つまり、起動するたびにネットワーク経由で RAM に落しこまなければならないと
いうこと。
ということで、この辺の事を行ってくれるサービス制御スクリプトのようなもの
をでっち上げてみました。以下のような感じです。

/rc3.d/91busybox

>--------------------------------------------------<
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

cd /var
rm www/*.*
rm www/image/*.*
rm tpl/*.*
cd /etc
ftp -n < busybox.ftp
if [ -f /usr/bin/busybox ]; then
    cd /usr/bin
    chmod +x busybox
    ln busybox telnet
    ln busybox wget
    ln busybox awk
    ln busybox more
    ln busybox tar
    rm /bin/tar
    ln busybox grep
    rm /bin/grep
    ln busybox ls
    rm /bin/ls
fi
>--------------------------------------------------<

やっている事は簡単で、不要なファイルをバサッと消して、ftp で自宅サーバか
ら busybox をダウンロードし、いくつかハードリンクを設定しているだけ。
ん〜、古い方の busybox を完全に置き換えるようにしてもいいのだけど、微妙に
仕様が異なるものがあると恐いので、今のところは残してあります。古い方を消
してしまえば、あと 80KB 以上空き領域が増えるけど、ま、いいか。
 

タイトルRe^3: ポケ3と組み合わせられるかな
記事No1520
投稿日: 2009/02/02(Mon) 19:29
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1479
> 一番いいのは、必要なコマンドだけを含めるような形で再コンパイルする事なん
> でしょう。でも、現在は自宅に linux 環境がありません。仮に、自宅に環境を整
> えてコンパイルした結果が、カーネルが古すぎる、のメッセージで終わってしま
> うと悲しい。ということで、当面は、今回バイナリで入手した busybox で遊ぶこ
> とにします。

昔、会社の通信教育でもらった Turbo Linux のインストール用CDがでてきまし
た。2000年ころのものなので、バージョンは6か7ぐらい。いかん、忘れている。
この時代のものであれば、カーネルのバージョンが古すぎるだの新しすぎるだの
の問題は出ないと思いましたので、会社で貸与されている自分用マシンにインス
トールしてみました。実際は、会社のマシンに Virtual PC をインストールして、
そこに仮想マシンを設定してインストールしました。

busybox のサイトに行って最新版のパッケージを取得し、ゲストOSに転送して
make。が、エラー多発。コンパイラのエラーメッセージが理解できないのですが、
どうもなんとなく、ソースの方ではコンパイラの新しいバージョンで具備された
機能を使っているけれど、コンパイラの方のバージョンが古すぎてダメな模様。
これは make allnoconfig を使って最小構成にしても同様。もしかしたら、うま
く設定してやればなんとかなるのかもしれませんが、あいにくと私にそんなこと
はできない。
そこで、ちょっと古く、2004年ころの BusyBox 1.00 というのを取ってきました。
こちらも、そのまま make するとエラー多発なんですが、なんか、コンパイラで
はなく、Makefile の設定でなんとか行けそうな感じ。試しに make allnoconfig
してみると、warning は多発するのですが、無事に最小構成のバイナリが完成し
ました。

ということで、しばらくからかってみることにします。
うまく行けばいいなぁ。
 

タイトルRe^4: ポケ3と組み合わせられるかな
記事No1524
投稿日: 2009/02/14(Sat) 16:11
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1520
> ということで、しばらくからかってみることにします。
> うまく行けばいいなぁ。

えへへ、うまく行きました。

> そこで、ちょっと古く、2004年ころの BusyBox 1.00 というのを取ってきました。
> こちらも、そのまま make するとエラー多発なんですが、なんか、コンパイラで
> はなく、Makefile の設定でなんとか行けそうな感じ。試しに make allnoconfig
> してみると、warning は多発するのですが、無事に最小構成のバイナリが完成し
> ました。

ちょっと気になって BusyBox 1.01 も取得してきました。そして make しました。
すると、なにやらワーニングは多発するのですが、エラーはほんの数ヵ所。それ
も、この程度のエラーならなんとかなりそう、というものばかり。とりあえず、
ソースを数ヵ所コメントアウトして再度 make したら、なんと成功。念のため、
BusyBox 1.00 ももう一度 make したら、1.01 と同じような状況。やはり数ヵ所
のコメントアウトで make が通ってしまいました。前回はいったい何が悪かった
んだろう。今回はルートユーザでログインしたのだけど、それが良かったのかな。
前回は一般ユーザでしたから。

さて、make が通るとわかれば、実際に欲しいツールが使えるように設定します。
ただ、この当時の Makefile には menuconfig なんて便利なものは付いていない
ので、設定がチョイとばかり面倒。とは言ってもそんなに難しくもないし、あっ
という間に完了。そして make。これで AP-11 等で実行可能なバイナリが完成。
クロスコンパイル環境を整えなくていいというのは便利ですな。この辺が、玄箱
やリナザウとは大きく違う点。
ただ、ソースにパッチをあてたところの挙動が不安。少なくとも今のところは、
不具合は顕在化していません。全ての分岐を追いかけるホワイトボックステスト
をやったわけではないので、そのうち何か問題が出るかもしれませんが。


さて、自宅据え置きで使う予定の AP-11(本当はAPR-11)では、以下のコマンド
を組み込んでみました。
                                                                            
Currently defined functions:                                                
        awk, busybox, egrep, fgrep, grep, httpd, login, ls, more, rdate,    
        tar, telnet, telnetd, wget                                          
                                                                      
元々入っている BusyBox v0.43 で不満のあるコマンドは置き換えるけど、その他
のほとんどのコマンドはそのまま使うことにして、それに加えて必要だと思った
コマンドだけを組み込むと、ざっとこんなもの。無理に全てを置き換える必要は
ありませんからね。
これでサイズは 430712 バイト。スタティックリンクをしなければ 90KB 未満に
収まるのだけど、さすがにそれは、必要なライブラリが見つからないと言って動
きませんでした。
ちなみに、ポケ3と一緒に持ち運んで使うつもりでいる APRS-11 用では、ここか
ら httpd と telnetd を外しました。それでサイズは約 300KB。

割とサイズが小さくなったので、次の課題は、これをフラッシュメモリに格納す
ることかな。現状は、#1495 に書いたように、起動時にネットワーク越しに取得
するようにするようになっています。これがフラッシュメモリからの転送で済め
ば、起動時間の短縮に大いに寄与するはず。特に APRS-11 の方では、場合によっ
ては回線を接続してからでないと転送できないかもしれないわけで、そうすると
電話料金がえらくかかってしまいます。これは結構切実。
ん〜、AP-11 の方は、シンボリックリンクも含めてフラッシュメモリに入りきる
かなぁ。これがうまく行けば、サービス制御スクリプトの分も節約できるわけで、
私にとってはかなり嬉しい。


おまけ。
#1479 で次のように書きました。

> ただ、telnetd を試しに起動してみようとしたら、ソケットがつかめないと言っ
> て起動できなかった。おそらく、こんな感じで、なんかの理由で動かないコマン
> ドもたくさんありそうな気がする。

多分、これ、telnetd の設定が inetd 経由で起動するようになっているからでは
ないかなぁ。もしそれが正しいとすると、きちんと設定ファイルを書いてやれば
起動できるはず。試さないけど。
なお、どちらの設定にするのかはコンパイル時のオプションで選ぶようになって
います。
 

タイトルRe^5: ポケ3と組み合わせられるかな
記事No1525
投稿日: 2009/02/17(Tue) 23:15
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1524
訂正。

> ちなみに、ポケ3と一緒に持ち運んで使うつもりでいる APRS-11 用では、ここか
> ら httpd と telnetd を外しました。それでサイズは約 300KB。

約 390KB ですから、どっちかというと、約 400KB と表記した方がいいかも。
ざっと 40KB ほど小さいという事ですね。


> 割とサイズが小さくなったので、次の課題は、これをフラッシュメモリに格納す
> ることかな。現状は、#1495 に書いたように、起動時にネットワーク越しに取得

> ん〜、AP-11 の方は、シンボリックリンクも含めてフラッシュメモリに入りきる
> かなぁ。これがうまく行けば、サービス制御スクリプトの分も節約できるわけで、
> 私にとってはかなり嬉しい。

APRS-11 の方はまだ試していませんが。
AP-11 の方は、各コマンドへのリンクまで含めて、tar でまとめて gzip で圧縮
した .pkg ファイルを作りました。あ、こちらも訂正。シンボリックリンクでは
なくてハードリンクですね。
サイズは、ぎりぎりフラッシュメモリに入りきりました。なんと、残り 6KB。
もっとも、なんとなく要らなさそうなファイルが約 200KB 程あるので、どうして
もとなればそういうのを削除してしまいますが、さすがに今のところはそこまで
の必要はありません。


busybox の httpd で遊んでいますが、ちょっとした事には使えそうです。
この装置には元々、HTTP経由での制御のために、mini_httpd というデーモン
が入っているのですけど、こいつがなかなかクセが強い。WEBで検索すると、
busybox の httpd もクセが強いようなことが書いてあるのですが、少なくとも私
には、busybox のものの方が素直に感じられました。って、複雑なことをやって
いないだけだからかもしれませんが。
どう素直かというと、例えば、cgi も使えるようにコンパイル時に設定しました
が、ドキュメントルートの配下に cgi-bin というディレクトリを作って、そこに
.cgi という拡張子のファイルを放り込んでやれば、特に設定ファイルなんかを作
らなくても、勝手にCGIとして実行してくれます。あ、もちろん、実行属性の
付与は必要ですが。
今までに試しているのは「Hello,World!」程度ですが、シェルスクリプトと awk
スクリプトは動いてくれました。当然 awk は busyboxに入っているものです。
awk の中では system 関数も使えますので、うまくスクリプトを組んでやれば、
HTTP経由でこの装置を遠隔制御することもできそう。って、telnetd も入れ
たんだから、素直にそちらでコマンドを打った方が速いと思うけど。

試しに、awk なCGIの system 関数の中で wget(これも busybox のもの)を
呼んでみたのですが、きちんと動きました。うふふふ〜、これでプロキシもどき
にすることもできました。
 

タイトルRe^6: ポケ3と組み合わせられるかな
記事No1530
投稿日: 2009/03/12(Thu) 21:26
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1525
> APRS-11 の方はまだ試していませんが。

試しました。
こちらにはルータ機能がついている分だけ色々とファームのサイズも大きくて、
サイズ的に無理がありました。gzipで圧縮しても、残念ながらフラッシュメモリ
には入りきりません。そこで、pppoeとppxp用の追加パッケージを削除してしまい
ました。合わせて約200KB。すると、ちょうどピッタリくらい。逆に言うと、これ
以上なにか入れようとするなら、スクラップアンドビルドで、さらになにか削除
しないとダメだという事です。

ということで、次回予告。
いよいよ、ポケ3を使って街角インターネットです。
季節も暖かくなってきたことだし、どこか手頃な公衆電話を探してみましょう。
遅くても数ヶ月以内には、成功報告、または失敗報告をする予定です。
 

タイトルAP-11(本当はAPR-11)調教中
記事No1494
投稿日: 2008/11/13(Thu) 23:05
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1478
多忙だったもので、電源を入れたまま、しばらく放置していました。
数日ぶりに遊ぼうとしたら、なぜか、RAMディスクの空き容量がゼロになって
いる。いったい何が起こったんだ?

全ディレクトリを探索した結果、syslogが肥大化していることが判明。
ただ、これ、中身がかなり問題。
ログインした記録なんていうのもきちんと残っているのだけど、こんなのは全体
からするとほんの僅か。大部分は、単に10分毎に時刻を記録しているだけ。
なんか非常に無意味だと思うんですけど。
これはcronの設定かな、それともsyslogdの設定かな。
明らかに無駄なので、探して停止させなくては。

ただ、この時は、それ以上の探索は成功せず、単に巨大syslogを削除しただけで
終わってしまいました。そしてさらに数日後、再び巨大なsyslogファイルと対峙
することを覚悟してログインしたのですが、今度はsyslogファイルが存在してい
ない。ありゃりゃん。なんでだ?

設定を確認していないので憶測で書きますが、一旦ディスクフルになるとそこで
syslogの記録を停止するようになっているのかもしれません。あるいは、既存の
syslogに追記するだけの設定になっていて、つまりファイルが存在していない時
には記録を行わないようになっているのか。

いずれにしろ、早いところ設定箇所を見つけ出して修正しなくては。
 

タイトルRe^2: ポケ3と組み合わせられるかな
記事No1500
投稿日: 2008/12/06(Sat) 00:25
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1478
え〜、かなり進捗がありました。

> さらに AP シリーズを2台対向というか無線で直結するための Peer to Peer 用

きちんと調べていませんが、多分、これって、アドホックモードにするものだと
思います。という事は、設定次第では、クライアントモードにすることもできて、
そうすると、そこらの喫茶店や駅のホットスポットからポケ3でアクセスできる
のではないか、と妄想しています。ただ、設定の問題だけではなく、プロバイダ
との契約の問題も発生しそうなので、この方式はパス。

もうちょっと安直な方式として、PPPのダイヤルアップ接続を考えました。
この場合、シリアルポートにモデムを繋いでしまうと、ポケ3をコンソールに接
続する事ができません。そのため、APR-11 ではなく APRS-11 を使い、こいつの
カードスロットにカードモデムを挿入して、こちらからダイヤルアップすること
にします。この目的のためにカードモデムを買ってきたというのは #1284 に書き
ました。
まず、このモデムの動作確認が必要。慎重を期すのであれば、別途パソコンで確
認した方がいいのだけれど、何か問題が起きた時にそうすることにして、いきな
り APRS-11 のカードスロットに挿入。そして APRS-11 を電源ON。APRS-11 に
WEB で接続し、AP設定を見ると、きちんとモデムの機種名が認識できているの
で、完全に死んでいるわけではない事を確認。
そして、接続先の電話番号などの設定を実施。あ、モデムがシリアルポート経由
なのかカードモデムか選択するラジオボタンはきちんと設定する必要があります。
接続は自動と手動があるけど、勝手に繋がると恐いので、ここは手動接続。これ
でダイヤルアップすればモデムの正常性は確認できるのだけど、このままダイヤ
ルアップすると、モデム経由とケーブルテレビ屋の2つの経路でインターネット
に接続される事になり、何が起こるかわからないので、念のため、APRS-11 と試
験用のパソコンだけを自宅ネットワークから独立させる。ここまでやって、いよ
いよ接続。手動接続モードなので、接続ボタンをクリック。
おぉ、きちんと接続できた〜!

さて、モデムの正常性確認は取れたのだけど、このあとがちょっとはまってしま
いました。ダイヤルアップPPPの設定がよくわからんという事。一応、数年前
にISDNでのダイヤルアップ設定をしていますが、うまく行ったらそれっきり。
そもそも、アナログモデムでのダイヤルアップPPP接続って、これが生まれて
初めてだったりします。
まず最初、どこにも ping が飛ばない。IPアドレス指定にしたらOKなので、
DNSの名前解決の問題だとはすぐにわかったけど、どうすれば良いのかがわか
らん。DHCPでネームサーバの情報をもらってきていないようだけど、これが
プロバイダであるニフティの問題なのか、APRS-11 の問題なのかがわからない。
少なくとも、APRS-11 の設定ページにはネームサーバに関する設定項目は出てき
ていない。もしかしたら APRS-11 にケーブルテレビ用の設定が残ってしまってい
るからこうなのかもしれない。とにかく、パソコン側でネームサーバの設定をし
てから再度試験したらOK。ブラウザであちこちのサイトを回って見ましたが、
どこもきちんと表示されました。

次は、いよいよコンソールからインターネットへ接続する実験。
でも、それがそんなに甘くなかった。
手動接続というのは、ブラウザからだと接続ボタンを押す形なのですが、内部で
はCGIで処理しています。という事は、どこかに接続用のシェルスクリプトで
もあって、CGIはそれをキックしているだけだろうから、コンソールでは手動
で直接そのシェルスクリプトを起動すればいいや、と考えていたのでした。が、
探した範囲では、そんなものは見つからない。では、CGIが自前でやっている
のかな、ならばCGIの中身を読んでやれ、と思ったものの、CGIそのものは
テキストで書かれたスクリプトファイルではなく、思いっきりバイナリな実行フ
ァイル形式。うげげ。
仕方なく、ブラウザの方で自動接続の設定にして、もう一度コンソールで接続。
とりあえずどこでもいいので、外部に ping を打ってみると、おほほ、接続成功。
まぁね、まだこれはポケ3で接続に成功したわけではないけれど、同じコンソー
ル接続なわけだから、メインマシンで繋がってポケ3で繋がらないわけがない。

ということで、APRS-11 に関する今後の予定。
まずはポケ3で自宅からダイアルアップに挑戦。
次に、自宅から外にを持ち出すのだから、電池で電源を供給する方法の検討。
というほど大げさなものではなくて、単に適合する電源コネクタを調達するだけ
なんですが。えぇと、一応、定格は 6.5V。5V の電源アダプタで稼動している実
績はあるけど、乾電池4個の電池ボックスから給電するようにしたい。消費電流
は最大 1.5A となっているけど、単3電池で何とかなるかな。もっと大きな電池
を使うか、それともニッケル水素を5〜6本使うか。
あと、すこしでも消費電流を押さえたいので、分解して、内部に入っている無線
LANのカードを取り外す予定。どうせ使わないし。ただ、これを外したことに
よって正しく稼動しなくなったら本末転倒なので、動作確認は必要。
あ、そうだ、接続後の処理も考える必要がある。といっても、不要なファイルを
削除して、自分のサイトから ftp で busybox をダウンロードし、しかるのちに
wget なり telnet で80番ポートか110番ポートを叩くだけ。だけど、ファイ
ルサイズを考えると、素直にダウンロードしたら5分以上かかりそう。圧縮する
必要があるな。

もちろん、全てがうまく行ったら、ポケ3の部屋のインターネット接続のページ
に、実績として多少の追記をさせていただきます。
 

タイトルRe^3: ポケ3と組み合わせられるかな
記事No1506
投稿日: 2009/01/04(Sun) 12:35
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1500
> あと、すこしでも消費電流を押さえたいので、分解して、内部に入っている無線
> LANのカードを取り外す予定。どうせ使わないし。ただ、これを外したことに
> よって正しく稼動しなくなったら本末転倒なので、動作確認は必要。

APRS-11を分解して、無線LANカードを外しました。
その後、ちょっと遊んでいる範囲では、特に不都合は出ていません。
調子に乗って、APR-11改AP-11の方も分解してみましたが・・・
ありゃりゃ、無線LANカードが入っていない。なんてこったい。
前の持ち主によって抜かれていたのでしょう。
この状態では無線LAN機能が使えないだけではなく、NICが1個しか入って
いない形なわけだから、ルータとしてもろくに使えなかったはず。コンソールは
ついていたとは言え、ほとんど何の役にも立たないガラクタ。ファームウェアを
入れ替えてlinuxパソコンにする私のような人のところに流れついてこなければ、
きっと廃棄されていたはず。
さぁ、これから余生をこき使ってやるぞ。