ロード トップ 参照元 逆検索 検索 ヘルプ

[logo] L-Router


L-Router -- LASER5 の Linux で動く ルータのこと。
02/02/06 現在。ぷらっとほーむで、3万弱のお値段で 購入できる。

NetBSD/hpcmips 愛好者たる私は、kernel が起動したという情報を得た ため、当然のごとく購入。

なんに使うかと言えば ... 開発 および NetBSD リファレンス および 家サーバ マシン ... の予定。


MIPS を使った その他の ルータ。

その他 興味があるルータ/小型マシン


インストール苦戦記

用意したもの

まずは、モバギに 2.5inch HD を接続し、 ... NetBSD/hpcmips 1.5.2 をハードディスクにインストールする。
これは... まあ正規の手順でインストールを行えば、よい。

注意点としては、ちゃんとセットアップすること。

私は、20GB の IBM のハードディスクを使うことにしたが、 特に問題なく インストールは、できたようである。
Setup は不十分で、実際困ったのが上の注意点。

上のような環境をもっていない人は残念ながら、現状ではインストールできない。 ... と思う。


02/02/12 までの ステータス

とりあえず login できるようになって、環境のセットアップを開始。

最低必要そうな package をいれる。私は

Canna-lib-3.5b2.tgz                     ja-less-358.tgz
Canna-server-3.5b2.tgz                  jpeg-6b.tgz
bash-2.05nb1.tgz                        lha-114f.tgz
gdbm-1.8.0.tgz                          libungif-4.1.0.tgz
gettext-0.10.35nb2.tgz                  png-1.0.12.tgz
gettext-lib-0.10.35nb1.tgz              readline-4.2.tgz
gettext-m4-0.10.35.tgz                  ruby-1.4.6.tgz
gmake-3.79.1.tgz                        screen-3.9.10.tgz

をいれた。

次に package にないツールを make する。

make する予定なのは、

   bash-1.14.7 ( スタティックリンクして /bin にいれる )
   ng-1.4.3
   jvim.1.7a (vim-3.0 ベース)
   mnews-1.22

とりあえずは、これだけないとなにも作業できない。

があぁん。ROM が こわれちゃったyo。

ICW1_1:11ICW2_1:00ICW3_1:04ICW4_1:01OCW1_1:00OCW1_2:00OCW1_3:4aend

までしか出ずにブートでけん。篠原さんの現象と一緒。あぁあ。

なんとかならんのだろうか? ... ROM はさせる。ここになんか焼いて させばなんとかなったりするのか。

焼くべきものはなんだろう。ひょっとして Grub?


2/21

とりあえず、2つ目注文。でも おなじことをすればおなじ結果になるのは 目に見えている。

壊さないような、なにか ... ジャンパーを見付けるとか したい。 あと、壊れたやつの復活方法も考える。

とりあえず 基板をしげしげと見る。こいつには、42 pin のROM 2つを さすことができる。

        IC1 Lower / IC2 Upper 
        M27V160-100XF1 

なんて印刷がしてある。3 本のピンがある JP1 というのが、ROM のそばにある。 ... なんとなく、ROM 切替えっぽいが...
さらに、ピンがない 穴だけの JP2 というのも ROMのそばにある。
それ以外には、JP というネーミングのものはないようだ。

さらに ... intel の Flush ROM があるが、それ以外に、ROM のようなデバイス は全くない。

      ROM を 壊したら、なんらかのデバイスを持っていないかぎり復旧不可能
      というのは明らか。

とりあえず、M27V160 とは... 購入可能かつ書き込み器をなんとかできるもの なのか ... 調べてみよう。

SGS-THOMSON:
   LOW VOLTAGE 16 MEGABIT (2MEG X 8 OR 1MEG X 16) UV EPROM AND OTP EPROM

なんかこういうものらしい。2個で4MB 。

む。ROM なんて、それそのものでなくていいはず。電気的なインターフェイスが わかれば、別の物で代替するとかも 可能か -- 。
復活の呪文をとなえるためには、4MB も必要ない。NIC ドライバをもった ブートローダ ... が動けば良い。
そういえば 16K ぐらいの ROM ソケットが付いた NIC ボード が普通なんだから、 128KB も あれば普通なんとかなるだろう。32bit 必要だから、16bit ものなら、 やっぱり 2 個必要 ... か。

そういえば、CN-2 JTAG とかいう 6 穴(= pin なし)のコネクタも存在する。 これ何だろう ... ちょっと気になっている。Flush に書き込むための ものとかいう 落ちだと嬉しいんだが。

JTAG ってなんか検査用の規格らしいという知識しかなかったけども ... そういうことができるわけか。

JTAG と Utility で検索するとなんやら 見付かる。PC と JTAG コネクタを 接続するような ケーブルがあるようだ。

ひょっとして NEC から ユーティリティがダウンロードできたりして... JTAG ケーブルを なんとかすれば、良いんじゃなかろうか。

ふうむ。これをさらにキーにすると。

よくわからないけども ... Vr4122 のマニュアルには、JTAG に基づ くインターフェイスという記載がある。互換性があって、拡張された機能が あるだけかも知れない。

よくわからないけども、JTAGを扱えるもので、GPLでソースコード公開 している。

ケーブルは、PC の パラレルポートで接続し、間に 信号レベルを合わせる ためのバッファが必要。

信号線は、5つ。グランドで 6 つだから L-Router と 数は合う。

これか。これ使うと 復活の呪文が唱えられるのか?

すぐわかる問題は...

ひとつ目は、たぶん 他の JTAG ケーブルのを参考にすればできそうだ...

まあこんな感じ。

さて、これらの信号がどう接続サレルノダロウ?


ここまでの情報をまとめると。

覚悟を決めて試行錯誤しないといけないところは 残っているが、 なんとかなるかも知れない。希望が出て来たというところか。

2/23

とりあえず ... JTAG 端子の電圧を計る。

   1 -4 3.33V
   5     0 V

む、1 つだけ違う。

京都コンピュータの接続図から判断すれば、TRST だなぁ。

                        ____
    TCK  TMS  TDI  TDO  TRST(5)  GND(6)

ということか。 A_Brief_Introduction_to_the_JTAG_Boundary_Scan_Interface によると

ということらしい、要するに TRST をなんかすると 使えるようになる。 で、TCK を ON/OFF してデータをいれたり とりだしたりする。 TMS を ON/OFF して、どのデータをどうするかを 決める。 データそのものの出入口は、TDI/TDO

とにかく... 4つの 不明なピンがあって、どれかが 出力で 他の 3 つは入力。 出力だけは、確定できないと 先に進めなさそう。

京都マイクロコンピュータのコネクタ上の順番を当てにして予想すれば、1 番から

                                   ____
       TDI -- TCK -- TMS -- TDO -- TRST

だが... そんなの当てにならないか。TRST を 1 にしてみれば... 出力だけ 状態が変わるかもしれない。負論理でないみたいだし。

さて、ianjtag では、何をどうやっているのか → ianjtag でまとめることに


ROM 再び

ROM ソケットに なんか指せないだろうか ...

これはこれで、

が必要だという結論。

さて、あの Morphy-one で有名な モルフィー企画 でとても似たものが あることがわかった。

うーん。なんかいい線いっているんだが、そのままでは、 L-Router の M27V160 には使えない。

データは全部公開しているので、自分で基板を発注する気になれば.... 望みのものは手に入りそうだが ... ExpressPCB データって何? 状態だからなぁ ... ちょっと無理か。


6/12 記

USBWriter あんど ROMBoard

実物をしげしげと見てみる。

ROMwriter の製作

ROMBoardの製作

おもったより簡単であった。これで、0.5mm ピッチといえども 半田つけは恐くなくなった。

つぎは、本当に ROM が見えるか、焼けるか 確認する。... でも ちょっと 勇気がいる。... というわけで 1回やすみ。


確認をしようとして、Windows 2000 で ROMwriter のプログラムを 動かしてみた。

というわけで、USB-IO 用の Linux のドライバ を使って確認してみることに。

まずは、/proc/bus/usb/devices の確認から。

さて、汎用 USB-IO 用のドライバは、0x1004 だから linux のドライバの 制御対象になる。

やっぱり、後者の方が確かなものが作れるきがする。

Windows の ROM writer プログラムで 動作確認したかったのだが、 動かないものは、しょうがない。USB-IO ドライバというベースもあるし、 VB 版のソースもあるし、気が楽だ。

ドキュメントを読むと 汎用 USB-IO とは かなり違う。 次のコマンドがあって、ROM Writer 専用になっている。

あ、注意点として、ROM の抜き差しをするときは、電源を切らないといけない らしい。

コマンドの詳細 (VB のソースから)

Linux の USB-IO のドライバを見てみる。

   6/29
   今までよくわからなかったのだが、usb_set_report というのは、
   set_report というコマンドを コントロール用エンドポイント(#0) に
   対するコマンドであった。これで 8 バイトを送り込む。
   Write の場合は、もどり値を見ない。

   Read の場合は、エンドポイント(#1) に データが 8 バイトでてくるので
   それを読みこむ。

ここらへん ごにょごにょしていけば、なんとかなりそうだ。

02/06/24

ROM writer 動作確認は 進捗ないけども、L-Router 用 ROM ボードを 設計してみた。L-Router に直接挿すために

という工夫をしてみた。

これ OLIMEX に発注すれば。 復活用 ROM を 欲しい人に配れたりするかも。( 動くかどうかは 未確認なので 、動くのならという条件がある) ただ、ROM ライターもっていないと 自由度がかなり減る。 やっぱり モルフィー企画の USB ROM ライターが ROMライターを 最も安く手にはいる方法ではないかと思う。


6/29

ROM Writer

USB-IO ドライバをどう変更すれば良いか分かって来た。

通信の部分は、

  s->buf の 8 バイトにデータを入れる。
     s->buf[0] はコマンド。

  usb_set_report(s->dev, s->ifnum, 0, 2, s->buf, 8);
  musbio_read_data(mf);

  s->iBuf の 8 バイトにリードしたデータが入っている。
      s->iBuf[0] は、set_report したデータと同じ。
      s->iBuf[1-3] は、最後に読んだアドレス

.... なんか変だ。

read data がいつでも どの場所でも ほぼ同じ。 write を出すと帰ってこない。次のコマンドで、timeout してしまう。

あぁ。ちゃんと ROM Writer が作れていなかったのかも。

とにかくボードの ROM Writer の部分が 動かないことは分かった。
ROM がダメなのか.. ボードがダメなのかは不明。動いているのは、USB の チップ。チップから出ている PORT の先のどこかがまずいわけだ。

   0x01 xx : ポート0 に ライト
   0x02 0x : ポート1 に下位 4bit をライト
   0x03    : ポート0 リード
   0x04    : ポート1 リード
   0x10  xx: P0 に書き込み P1_0 をパルス。
   0x11  xx: P0 に書き込み P1_1 をパルス。
   0x12  xx: P0 に書き込み P1_2 をパルス。

   0x17    : P1_3 をパルスしながら P0 リード

この辺のコマンドを使えるようにして、状態を固定し、 ROM ソケット電圧をテスターで計っていくしかないか。

    回路を見ると 

    0x10 P0 に書き込み P1_0 をパルス
          パルス撰択のレジスタ にデータを書き込む
          パルス撰択のレジスタ の状態と パルス先

              0  ADDR0(A7-A0)   書き込み
              1  ADDR1(A15-A8)  書き込み
              2  ADDR2(A21-A16) 書き込み
              3  Flush ~WE
              4  Flush ~OE
              5  Flush ~RESET
    
    0x11  xx: P0 に書き込み P1_1 をパルス。
          パルス撰択のレジスタ で指定された 信号線 を ↓↑

    0x12  xx: P0 に書き込み P1_2 をパルス。
	   Flush の ~CE をパルス

    0x17    : P1_3 をパルスしながら P0 リード
	   双方向バッファ の 切り替えをして、
           Flush ROM の データを読む

   とういう動きをする。P1_1,P1_2,P1_3 を独立に制御しても意味なさそうだから

       0x02 0x : ポート1 に下位 4bit をライト 

   という機能と 併用する必要がありそうだ。

   手順としては

    o PORT0 に書き込んだ値が、Flush の DATA に出ているかどうか。
 
    o パルス撰択レジスタ にデータを書き込めるかどうか
         
    o ADDR0,ADDR1,ADDR2 に データを書き込めるかどうか

    注意点としては、

    o 当然だが ROM を抜くこと
    o PORT0 を入力にしないで、P1_3 を 0 にするのはまずい。

    

これで一応の確認ができて、かつ動かないとすれば ROM の方が失敗している かも知れない。そのときは、2 枚目の ROM を挿してみることにする。

とりあえず ドライバ類を一旦フィックス。

それにしても一発で動かないのは痛いなぁ。 直す技術は もちあわせていないぞ。

02/07/03

パルス撰択のレジスタ にデータを書き込む ... これ自体がちゃんとできない ことが分かった。USB のチップからの信号はちゃんと 思い通りに設定 できている。

    0x10 P0 に書き込み P1_0 をパルス
    0x02 0x : ポート1 に下位 4bit をライト 

のコマンドを使用すして

   ./romtest diag 1000
   ./romtest diag 1007

とかすれば、パルス撰択のレジスタ にデータを書き込めたはずだったのだが...
LVC 574 からはそんな信号は出ていない。入力は設定どおりに変わる。

で、

   ./romtest diag 020e 

などとして、クロック信号がちゃんと入るかを確認したが OK。


あれだ、最初こわごわハンダを付けたので、ランドだけハンダが載って
実際は chip は ハンダ付けされていなかった所があった。
チェックが不充分だかったのかもしれない。

ハンダを しっかり付け直してみることにしよう。

02/07/04

ハンダを付け直した。

どういうふうにやったかというと、 少量のハンダを ハンダごての先につけて、ランドおよびチップの足を モップするように塗った..というかんじ。

フラックスはちゃんと塗っている。ハンダは、0.3mm の糸ハンダ。

で、結論からいうと、0-100 の 256 バイトはちゃんと読めたし かけた。

ここまで できると、あと ちゃんと動かない可能性があるのは、A9-A1X が 接触しているかどうかぐらいになる。

次は、全エリアを書いてコンペアしてみようと思っている。 ちゃんとできたかどうか も重要だが、どれぐらい時間がかかるものなのか? 3 分なら待てるが 30分だと厭だとか ...

遅いはずだとは思ったが... 遅いねぇ。 1回に 4 バイト読むのだが、 秒間 122 回しか 読みこみができない。パケットの往復に 8m sec かかっている。8 バイト送って 8 バイト受け取っているから、 15K bps ぐらい。低速でも 1.5Mbps なんだから 1/100 も帯域を 使えていない。おそい理由はやはりレイテンシか。


02/07/16

ちょっとメモ:

ハードディスクをオリジナルのケース(W120 , H22, D200) に入れるのは無理がある。 それで、ケースを物色していたのだが、よさげなのが見付かった。

タカチUCシリーズ の UC16-5-22 (W160, H50, D220) 。AA(アイボリー)が、2960円。DD(黒/パネル銀) が 3220円@ 千石。

横幅が 4cm もあまるから、基板の横に 秋月の 5V3A スイッチング電源 モジュール(W25, H30, D45)を入れて ... ハードディスクは、蓋に 穴あけて直接ネジ止め。

パネルの工作は面倒そうだが、失敗して 見映えが悪くなっても使えない ということにはならないだろう。

ハードディスクは、2.5inch を使う。3.5inch は物理的には入りそうだが 熱くなりそうだし、ちょっと恐い。 ( ちなみに 3.5inch の場合電源は 5V/12V ... スイッチング電源は 昔秋月で売っていた 5/12V スイッチング電源が使えるかも知れない)

02/08/08

千石にいって、UC16-5-22 を見てきた、DD(黒/パネル銀) をみた瞬間に 買うことをきめてしまった。AA(アイボリー)とちがって高級感がある。

側の材質は 2mm ぐらいの厚さのアルミ。前面/後面のパネルは、 側に溝が掘ってあって、ハメ込む。溝は前後 3 カ所ぐらいあるので、 事情にあわせて、位置を変えることができる。

これなら、筐体に直接 ハードディスクを マウントした方がよさそうだ。 ひょっとしたら、3.5inch でも OK かも知れない。


02/07/21

ここに書くのを忘れていたが、L-Router 用 ROM ボードの発注は、 7/12 にした。たぶんとっくに AirMail で発送されていて、 到着まち。

L-Router の復活も いよいよである。

さて、ROM の中にいれるものを一切検討していないが、ぜいたくをいわなければ 何とおりかの方法がある。

たぶんモニタが起動してくるんじゃないかなぁ。よくわからないが。

無圧縮だと 1MB には入らないものの、なんとかして NetBSD を立ち上げることができれば、あとはなんとでもなりそうだ。 たとえ、多少不具合のある現在のカーネルでも、たちあがりさえすれば、 ( 今のカーネルはリセットせずに カーネルを立ちあげ直す機能をもっているので) 別のカーネルを boot することができる。

ROM の修復するのもたぶんできるだろう。


02/08/03

romboard が OLIMEX から到着しているので、とりあえず 1set 2 個 組んでみた。 いちおう、Morphy USB ROM Writer から read/write できたようだ。

全域のテストをしていないので、どこかアドレスピンが ブリッジしていたり、 接触していなくてもわからないし、データバスの上位についても同じことが言える。

完成度への信頼というのは、実際に なにかを ROM にいれて動かすときに重要 なので、できる範囲でチェックはしておきたい。

それはともかく、 いよいよ ソフトをまじめに考える段階にたどりついた。

実をいうと、自分の read-only の方のホームページ EAGLE に Flash ROM Board について記述している。ここまで書いて動かなかったらどうしようと 思っていたのだが、一応想定範囲では動いているようなので、 写真を いれることができた。


(最終更新 Thu Mar 30 18:52:59 2006)