水曜日, 3月 21, 2007

jtagをコンパイルしてみる。

メモリを張ったので、その動作チェックのために、超ひさびさに、玄箱をいじってみた。
張ったメモリはマイクロンのMT48LC16M16A2-7E。
買いすぎたので余ってるけど、欲しい人います?
2個で4000円しますけど…(これでも赤字)
#普通に玄箱HG買ったほうが安いなぁ。量産の威力恐るべし。

メモリの量が増えたはずだけど、はんだ付けが甘くて復旧できなくなったら怖いので、
JTAGケーブルも作った。XilinxのPararell互換…のはず。
ピンも立てて、準備完了。あとはJTAGをコンパイルして…

…って通らないじゃん…

ちなみに環境はWin2K、Cygwinです。
http://www.yamasita.jp/BBS/2510.html
とか、
http://www.yamasita.jp/BBS/2417.html
とか、
http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=zRz&q=%E7%8E%84%E7%AE%B1++jtag+%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
とか、
http://nagou.cocolog-nifty.com/haley/2006/05/jtag_dbf4.html
を参考にがんばってるんですけどね…

今の状態は、
・include-0.4.2は./configure、make、make installとも通常終了。
・jtag-0.5.1は、./configureまでOK、makeでエラー。

エラーはこんな感じ。
前の方は特になんともなさそうなんで省略。
****************************************************************
make[5]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux/po
'
test -z "" || make
touch stamp-po
make[4]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux/po
'
make[4]: Entering directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/openwince -I/usr/local
/include/openwince/device -I/usr/local/include/openwince/arm -I./../include -g
-O2 -Wall -MT cmd_detectflash.o -MD -MP -MF ".deps/cmd_detectflash.Tpo" \
-c -o cmd_detectflash.o `test -f 'cmd/cmd_detectflash.c' || echo './'`
cmd/cmd_detectflash.c; \
then mv -f ".deps/cmd_detectflash.Tpo" ".deps/cmd_detectflash.Po"; \
else rm -f ".deps/cmd_detectflash.Tpo"; exit 1; \
fi
cmd/cmd_detectflash.c: In function `cmd_detectflash_run':
cmd/cmd_detectflash.c:43: error: too few arguments to function `detectflash'
make[4]: *** [cmd_detectflash.o] Error 1
make[4]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1/libbrux'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Administrator/jtag-0.5.1/jtag-0.5.1'
make: *** [all] Error 2
****************************************************************

見た感じ関数の引数が違うぞ、といってるけど、
関数の引数は合ってるんですが…
一体俺にどうしろと。

あー、わけわかんね。

金曜日, 9月 30, 2005

アスキー、しっかりしてくれ…

2005年10月号のASCIIでNASの特集をやっていたので、買ってみました。
玄箱はあまり情報収集していなかったので、Webminの入れ方とか
けっこう参考になったのはいいんですが、ちょっと?と思う点も少しあったので、
メモしときます。

1)webminをaptで入れて、そのwebminをアップデートする記事があるんですが、
 アップデートしても、ちゃんと変更を有効にするには再起動が必要っぽいです。
 (これは俺が知らないだけかも)

2)古いPCをNASにするなら、ぜひFD-sambaを取り上げてほしかったです。
 あれなら、windows updateなんて面倒なものを入れなくても済みますし、
 何より電源をそのまま切れるのがありがたいです。
 最初の導入は少しやっかいですが、かなりオススメです。

うーん、久しぶりに読者ハガキ出してみるかな。でも、見たらハガキついてなかった…
ちょっと考えが古すぎたか。

水曜日, 9月 28, 2005

vimのインストールとか

あまりにも間が開きすぎたので、vimのインストール方法とか。

いつもどおり母艦PCにつないで、以下のようにタイプ。
今回はセカンダリマスタにつないで、マウントポイントには
前回使ったhdb1を使いまわしてます。
パッケージはいつもどおりdebian packageからです。

mount -t ext2 /dev/hdc1 ./hdb1
dpkg --extract vim_6.3-071+1_mipsel.deb ./hdb1
dpkg --extract libgpmg1_1.19.6-19sarge1_mipsel.deb ./hdb1

これで、linkstationでもvimが使えます。
ライブラリ類はデフォルトで入ってるもので動きます。

でも、あいかわらずaptを入れる方法がわかりません…
しょうがないのでソースを見てます。
どうも、どっかのファイルを読んでApt::Systemという
文字列を探しているようなので、もうちょっと調べてみます…

あと、海外のサイトながらdebianをLinkstationに入れている人を発見。
っていうか、もうできてるっぽい(汗
http://www.geishuettner.de/docs/Linkstation/
http://linkstationwiki.org/
英語は読むのが疲れる…んでも、パーティーション切って、
ブートローダー入れて、インストーラー使ってインストールするみたい。
もうちょっとちゃんと読もう。日本語に訳したら読む人いるかな?

というか、おいら的には玄箱よろしくファームウェアのファイルを
入れ替えるだけでインストールできる方法にしてほしかったり(←自分でやれよ)。
その方法も書いてあるっぽいですが、パスワード変わってないんだろうか?
とか心配してみる。

まあ、ディストリを作らなきゃいけないことに変わりはないのだけど。
そもそも、linuxのブートの仕組みを適当にしか覚えてないし。
#liloが/vmlinuzをRAMに展開して、その先頭から実行するんだっけ?
#で、liloはHDDのブートセクタに置いておくんだっけ。
#BIOSはHDDのブートセクタをRAMに展開してくれる、だったような。
#AT互換機の話だっけな?

もちょっと意味がわかるまで繰り返し読んだほうがいいかも。

火曜日, 8月 23, 2005

おい・・・

前回、富士通のHDDの話をちょろっと書いたら、あっという間にサルベージ業者がコメントを…
うーん、やっぱりこのHDDかなり死んでるんだな…

もしIBMのがdeathstarだったらどうなるんだろう。とか言いつつ書いてみる。
(ちなみに前回リストアできなかったHDDはDJNA-352030なので、deathstarじゃないですよ)

動かないからどうでもいいけど。

月曜日, 8月 22, 2005

単純コピーじゃいけないの?

gccの入れ方があいかわらずわからない…
http://miyanet.ddo.jp/~shotech/kuro-box/Vine01.htmによると、普通にtarを解凍すればいいように見えるんだが。
win32みたいにレジストリに何か書かなきゃいけないわけでもないだろうし、どうしてだろ。
素直に玄箱使っといたほうがいいのかな。普通にlinux boxとして使えるし。

あと、実家からIBMのHDD(20G)を持ってきたのだが、こいつもseagateの20Gと同じく、ファームウェアが再インストールできない。
しかも、こんなときにシリアルコンソールがごきげんななめ…

あと、私事ですが持ち歩いていたthinkpad R32のHDDもお亡くなりになりました…
夏はHDDが壊れやすいというが、それ以外にもいろいろ壊れてますね…

日曜日, 8月 21, 2005

いわくつきの…

新たに実験用HDDを用意しました。

そう、一時期封止剤の不具合で話題になったあの富士通のHDDです。(MPG3204)
というか、型番をgoogleで検索すると、サルベージ業者ばっかりひっかかる(笑)
気になるICは以下のとおり。

危険ロットの後期になるんでしょうか?
さて、こいつが死ぬのが先か、それともおいらがlinkstationに自分の納得する環境を仕込むのが先か。
何でいまさらこんなものを持ち出してくるかというと、たまたま実家に帰ったとき、タッパーの中に乾燥剤といっしょに入ってたのを見つけたからです。
深い理由があるわけじゃないです。あったから使う、それだけです…
ただ、使っていたときもけっこう湿度のあるところで使ってた割には普通に使えてたので、外れではないのかもしれません。
電源コネクタになぜか延長ケーブルがついているのは、電源のピンが折れているのをカバーするためです。

速度上げてがんばらなきゃ。


と、書き込みながらリカバリーしてます。アクセスランプがちかちかして面白いです。
パーティーションだけ消してつなげば勝手にEMモードで立ち上がるのにいまさら気が付いたおいらはアホでしょうか…

土曜日, 8月 20, 2005

金属加工とか。

ソフトばっかりやってて頭がくらくらしてきたので、金属加工してみました。


ヒートシンク取り付け&アクセスランプ増設。
アクセスランプはIDEコネクタの付け根付近(見づらいかな?)
ヒートシンクはメモリ用のを適当な大きさに折って設置。



2.5インチHDD取り付け。この位置じゃないと、IDEのケーブルがうまく刺さりません。
(コシがあるので(^^;収納するのが難しい)
穴のうちひとつは純正の穴を使用。あと、たくさん失敗したので関係ない穴も空いてます(笑)



Akiba PC hotlineをふらふらしてたら、こんなものを発見。
http://www.mini-box.com/s.nl/sc.8/category.19/it.A/id.281/.f
$140ってことは、玄箱HGと同じくらい?メモリもSDRAM128Mで玄箱HGと同じだし。
でも、Geodeってことは普通のPCと同じっぽいので、開発はセルフコンパイルでいけそう。
しかもminiPCIが2本、オンボードでLANが2つ!
miniPCIを1つ減らすと、LANが3つにもなるらしい。
代わりにケースと電源が別売になってますけど、これはイイかも。

車載PC用電源なんてのも。
http://www.mini-box.com/s.nl/sc.8/category.13/it.A/id.356/.f
http://www.watch.impress.co.jp/akiba/hotline/20050820/etc_m1atxps.html
うーん、なかなか面白いな、http://www.mini-box.com/。
あまり関係ないけど、ちゃっかりad-senseにdigi-keyが入ってるのがいい感じ。
(Akiba PC Hotlineの記事のほうです)
いったいどういう仕組みで広告を選んでるんだろうか>ad-sence
なかなか賢いな。

あとは、このへんを見て勉強してます。的外れなものもあるかもしれないけど、自分用メモ。
http://www.debian.org/ports/mips/
http://www.linux.or.jp/JF/JFdocs/MIPS-HOWTO.html
http://www.humblesoft.com/n-card/sde.html
http://www.devdrv.co.jp/download/e-unix/vol6/apl-cross.html

土曜日, 8月 13, 2005

くそ…

gccを仕込もうと思ったものの、かなり難航してます…

とりあえずaptを入れようと、いつものように母艦PCにlinkstationをつないで
以下のコマンドを実行。
dpkg --extract apt_0.5.28.6_mipsel.deb ./hdb1
しかし、起動しないで電源ランプ6回点滅で電源が落ちてしまう。
シリアルコンソールで見てみると、syslogdを起動中にやたら待たされて
タイムアウトで落ちている様子。
そういやライブラリ入れてなかったと思い、以下のコマンドも実行。
dpkg --extract libgcc1_3.4.3-13_mipsel.deb ./hdb1
dpkg --extract libc6_2.3.2.ds1-22_mipsel.deb ./hdb1
dpkg --extract libstdc++5_3.3.5-13_mipsel.deb ./hdb1
dpkg --extract libdb1-compat_2.1.3-7_mipsel.deb ./hdb1
dpkg --extract gcc-3.3-base_3.3.5-13_mipsel.deb ./hdb1
やっぱりダメ。エラーが出てapt-getできない。うーん。

んじゃgccを入れてみようということで、ダウンロードしてきたバイナリを
そのままコピーしてみる。
tar zxvf nfsroot.mips.redhat7.1.el-01.00.tar.gz /
んで、再起動。

がーん。sambaもthttpdも動かなくなった…
かろうじてtelnetdは生きてるけど、これじゃ何もできないよ…
おまけに電源ボタンでの電源OFFまでできなくなった。。。

しょうがないので、パーティーションを全部開放して、ファームウェアの
入れ替えからやりなおしてみた。
とりあえず工場出荷状態には戻ったけど、電源ボタンで電源OFFができないのは相変わらず。
telnet経由でshutdownはできていたので、スイッチが壊れた???
でも電源ONはできるしなぁ。

ああもう、わけわからん。。。

日曜日, 8月 07, 2005

買っちゃいましたよ玄箱

なんか、blogのタイトルに反したもの買っちゃいました。

もともとは、コンパイル時間を比べたいなっていうのがあって、
買おうかなぁって思ってたんですが、それを頭に入れてふらふらと
近所の電器屋に行ったら、そこに在庫切れしてたはずの玄箱が!!
\13980で、そこそこ安かったというのもあって買ってしまいました。

オンボードのメモリは64Mでいっしょ(インターフェースがSDR SDRAMという
違いはあるにせよ)なので、そこそこ純粋な比較になるのではと期待。
あとは、IDE周りがSil0680なんで、その差がどう出るかも気になるところ。

うれしかったのは、以前いくらトライしてもLinkstationには使えなかった
Seagateの20G HDDが使えたこと。
あと、純正のセットアップで即telnetが使えるってのはいいね。楽で。

それから、工場出荷時にAVRにオンボード書き込みをしているらしく、
AVR ISPの端子が標準でついているのもいい。吸出しが楽にできそう。
たぶん書き換えも可能。

残念なところといえば、
・あいかわらずメモリが増設できないところ(そういう機械じゃないって)
 SODIMMコネクタ搭載モデルがないかなぁ。
・シリアルコンソール用の部品がオンボードで乗ってないこと
 (やっぱり欲しい)
 コネクタは簡単につくみたいだから、そこらへんはlinkstationに比べれば
 まだいいけど(Linkstationのシリアルコンソール化は茨の道…
 電源の制御のためにシリアルポート増設の必要あり)。
 秋月あたりでシリアルコンソールキットが出ないかな。
・プラスチックケースの仕上げが雑なところ(動けばいいって人は関係ないか)
・PCIはあるんだから、miniPCIスロットが欲しい(USBがあるからまあいっか)
・USBコネクタが1つしかない(実装の手間を考えるとわかるけどさ)
・使わないUSBも線を出しやすくしておいてほしい
 (USB機器を内蔵したいときに欲しい)
 5ポート全部コネクタを付けろとは言わないから、ポートは2つで
 あとはテストパターンだけでいいから欲しい。
 D+/D-の抵抗はオンボードでお願いね。
・IDEもプライマリとセカンダリの両方出して欲しい。実装されてるのは
 プライマリだけってのも可。RAIDしたいときに困る。
 使うときはケースを作り直さなきゃならないが…
・HDDファンと電源FANをつけられるケースにしてほしい。
 加工すればつくが面倒。いちおう改造しなくても動くけど、あると安心。
・ブラケットは2.5インチHDDも取り付けられるような穴をあけておいて欲しい。
 正式サポートじゃなくても可。ネジは自分で買うからいらない。
・電源ONかOFFかを何らかの方法で出しておいてほしかった。
 その端子がオープン=電源OFF、クローズ=電源ONにでもしておいて
 くれれば、外部から電源の制御ができたのに…
 テストパターンでいいからこういう信号出しておいてほしかった。
 あと、外部から電源ON/OFFできたら最高。って言っても、電源スイッチを
 引き出せば済むことなので、これは現状のままでもなんとかなるけどね。
 一言で言うと電源スイッチが2系統あればよかったけど、ってこと。
・HDDのアクセスLEDのパターンが欲しい。
 実際に部品を実装するかどうかは好きにしてくれていいから。
 (外に出すとなると、フロントパネルのデザインをいじる必要があるからね)
 ちなみにこれはLinkstationにはパターンがついていたりする。

なんか、全部実装したらteraStationくらいは勝てそうなスペックに
なるね(笑)
値段を考えるといいセン行ってると思いますんで、現状のスペックも
悪くないのかも。
それに、上で上げた仕様を全部入れるとHDDなし15000円じゃ
買えないような(笑)ていうか、基板作り直しだね、間違いなく。
初期ロットは不安定になりそうだし(PCIのクロックは扱いが面倒なんです)
あと、根本的にCPUが遅いのは直ってないという話が。
やっぱり時代はMIPSなのか。
ARMはライセンス料高いし、32bitまでのIPコアだろうし。
まじめにやってるのかfreescale?ボケボケしてるとMIPSに
ひっくり返されるぞ。

とか、微妙に関係ない話が混ざったところで、今日は終了。

土曜日, 8月 06, 2005

ブログって良くわからん…

昨日、コメントを入れられるのはメンバーのみの設定になっていることに
気が付きました。。。
直したつもりなので、書き込んでみます。

ついでに右側のリンク集もメンテナンスしました。
でも、HTML直打ちよりかなり楽だねぇ。と感心。
某geocitiesより時代は進んだんだなぁ、と実感してしまう今日このごろ。

実は、時刻表示も山岳部標準時間のままだったり。
(なので、やたら早起きってわけではないのですよ)
日付と書いた順番だけ合ってればどうでもいいですけどね。

金曜日, 8月 05, 2005

だらだらとメモ

んで。
gccを入れる方法をごそごそしていました。なぜかというと、PowerPCな
LinkstationよりbogoMIPSでは勝ってる(らしい)ので、ごりごりと
コンパイルして比べてみたくなったのです。それだけ。
bogoMIPSによると、だいたい同じクロックのPentiumIIIあたりが対比に
なるはず。ということは、PenIII 400MHz+64Mなx86 Linuxと
同じくらい、と予想(本当か?)
実際にはHDDがかなり遅いので、x86と同等ってことはないでしょう。
HGLANはメモリ128Mらしいから負けるか?でもあっちはCPU遅いしなあ。
もう、HGLAN買っちゃおうかな。うちのLANはギガビットじゃないけど。

あと、ApacheとPerlとPHPでも入れてBBSでもしようかと構想中(基本的)。
DDNSなんてやつも流行りに乗って使ってみたいなあ、とか。
回線がADSLなんで知れてますが、コンパクトな自宅鯖にはうってつけだと思うのです。
これでメモリが増設できれば言うことないんですけど。

あとは、果てしない野望としてLinkstation(mips)用ディストリを自作る、とか。
ただ、インストールは母艦にHDDをつなぐカタチになりそうなので、できれば
ネットワークごしに全部入れなおせるお手軽ディストリにしたかったり。
バッファローさん、FWUpdateをオープンソースにしてくれませんか?
ソースだけでかまわないので…

やべえ、見てたらライブカメラやりたくなってきた。
http://www.technoworks.co.jp/camera_setting.html
実際に動いてるページはこちら。
http://www.technoworks.co.jp/home.html
これでしばきつづけて、どこまでCPUがもつかとかやってみたい。すごく。
π焼きならぬ流しエムペグ?(ムリヤリだな…)
音が出れば最高なんだけど、そういうのってないんだろうか?
あとでぐぐってみよう。

http://papanda.jp/computer/ffmpeg.shtml
ついでにこれも。

リンク集(自分用)

一回Linkstation関係のリンクをまとめてみる。

山下さんのサイト
http://www.yamasita.jp/linkstation/
linkstation(PowerPCのほう)関係がいろいろ。

bonnerさんのサイト
http://bonner.s45.xrea.com/
マジックナンバー修正ツールが置いてある。必須。
同梱のバイナリが動かないときは自分でmakeしましょう。

debian package
http://www.debian.org/distrib/packages
debパッケージがいろいろ。検索もできる。telnetdとかはここから落とせます。
ダウンロードするアーキテクチャはmipselを選ぶこと。

なひたふ新聞
http://www.nahitech.com/nahitafu/
なひたふJTAG日記
http://nahitafu.cocolog-nifty.com/
わかりやすいJTAG関連サイト。ファームウェアの吸出し・復旧に使えるかも。

かつぴいさん著、telnetdのインストール方法
http://www2.odn.ne.jp/katupii/linkst/telnet.htm
もうこんなにきれいにまとめられてるのね。(PowerPCなLinkstation用だけど、参考に)
最初からここ見とけばよかった。

ほかにも思い出したら追記します。多分。

もったいない…けどしょうがない…

・しょうがないので手持ちの80GのHDDを空けて、そこに入れてみる

以前使っていたが、PCを新調して以来バックアップが面倒になって
ほったらかしになっていたHDDを引っ張り出してきて、そこにlinkstationの
ファームウェア(ディストリビューション?)を入れてみることにした。
本当はSeagateの20Gに入れたかったが(貧乏性)、しかたあるまい。
ああもったいない。

こちらはすんなり入った。手順はこんな感じ。

・HDDをつながずに電源ON(次からEMモードで立ち上がるようになる)
 DIAG LEDが点滅して電源が落ちたら、電源スイッチを押して電源を切る。
・ファームウェアを入れるHDDのパーティーションを全削除して、
 (windowsでやるもよし、KNOPPIXあたりでやるもよし。多分。)
 マスター設定にしてlinkstationにつなぐ。
・リセットボタンを押しながら電源ON。
・あとは、FWUpdateを実行する。1回目は失敗するけど、linkstationの
 電源を入れなおしてから再度トライすればOK。
 2回目に電源を入れなおすときは、電源スイッチだけ押せばOK。
 1回目できちんとファームが入っていれば、電源LEDは点灯状態に
 なるはず。

ちょっと実験用にはもったいないが(まだ言うか)、これで予備のHDDが
用意できた。

がーん(2回目)

全部フォーマットしたにもかかわらず、あいかわらずこの様子。
やっぱり、あきらめるしかないのだろうか。

ついでにもうひとつがーん。
以前メモリは32Mだと書いたが、64Mの間違いでした…

ああショック。色々ショック。

とりあえず

よくわからんので全部フォーマットしなおしてみよう。
これでダメならあきらめるしかないな。
というわけで、seagateのサイトでDiscWizardをダウンロードしてくる。
んで、フロッピーを2枚用意して、そこにDiscWizardをインストール。

母艦にSeagateのHDDをつないで、DiscWizardをフロッピーから起動。
あとはゼロ充填プロセスという奴を選んで、ひたすら待つ。
(すごい時間がかかります…クイックを選ばないのがコツかも)

結果がどうなるんだろ。フォーマットが終わるまでわからないけど。

火曜日, 8月 02, 2005

TC74VHC04

linkstationとはほとんど関係ないが、東芝のVHCシリーズは入力電圧が
電源電圧を超えても大丈夫らしい。
保護用のダイオードがなくても保護できる回路を導入したためだそうだ。
ってことは、お手軽シリアルコンソールに使えるってことか。
ちなみに今使ってるのは単なる74HC04なので、本当はこんな使い方をしてはいけない(笑)

74HC04とちょっとの抵抗で、RS232C<->TTLの変換を実現している。
ま、自己責任で使用する分には問題なかろう。

月曜日, 8月 01, 2005

がーん

・よし、もう1台用意するぞ!
ということで、ぼちぼち成功したところで、もちょっとちゃんとした手順でできるかを
考えてみた。
それを実行するため、もう1台linkstation用に実験用HDDを確保。
ぶっ壊れたHDDをつないで、リセットを押しながら電源ON。
しばらく放置してから、電源を切る(10分くらいか?)。
今度は普通に電源を入れて、DIAG6回点滅で電源が落ちるまで放置。
あとは実験用HDDを母艦のdebianマシンでパーティーションを全部消して、接続!
これでFWUpdate.exeを実行すれば更新されるはず。

っておい、見つからないんだけど…
ためしに別のHDDでやってみると、これはすんなりアップデートの画面になってる…
なぜ?linuxで消したから?

アップデートできたHDD
IBMの120Gのやつ(前に知り合いがwindowsを入れて使ってた)

アップデートできなかったHDD
Seageteの20Gのやつ(LinuxとWin2000のデュアルブート)

よくわからないので、手持ちの資材でちゃちゃっとシリアルコンソールをつけてみる。
あれ?hdaを認識するところで止まってるよ???何で??
そりゃIPアドレス拾う前に止まればアップデートできないわけだよ。


しかもDriveStatusErrorって…このHDDが壊れかけてるってこと?
まあ、4年も前のHDDだからしょうがないっちゃしょうがないけど、それならなぜ動いてた?
それとも、これが相性ってこと?

いろいろ疑問が出てきたな…

日曜日, 7月 31, 2005

今度こそtelnet

・今日こそtelnetdを入れる

と言ったはいいものの、かなりハマりました(笑)
終わってからなら笑えますが、ランレベルの勉強からやるのはきつかったです…

ちょっと前に
mount /dev/hdb1 ./hdb1
dpkg --extract netbase_4.07_all.deb ./hdb1
dpkg --extract telnetd_0.17-18woody3_mipsel.deb ./hdb1
dpkg --extract netkit-inetd_0.10-10_mipsel.deb ./hdb1

でインストールしといたソフトの設定をしてやれば動きます。
設定とは、
1)inetdが起動するようにする
2)inetdかたin.telnetddが呼び出されるようにする

特に下の2)がきつかったです。最初、in.telnetdだけ立ち上げれば
telnetはできるもんだと思ってました。がしかし、現実はそうじゃないんですね。
inetdが呼び出されて、in.telnetdにパケットを渡してはじめてネットワークごしに
telnetdとしてアクセスできるんですね。いやー、勉強になりました。

まずは1)の設定。
本当はetc/init.dにtelnetdとかいう名前でスクリプトを置いて、そこにリンクするのが
正当らしいんですが、とりあえず動けばいいのでetc/rc2.d以下にS20hacksetという名前で
以下のように書きました。

(あとで)

で、あとはこのスクリプトにchmod +x S20hacksetしておく、と。

次に2)。
etc/inetd.confに、以下のように書きます。
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd

(たぶん)
で、あとはrootのパスワードを消去。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/047suserofflostroot.html
あたりを参考に。
あとはlinkstationにHDDを戻せば完了。のはず。
間違ってたらあとで直そう。

木曜日, 7月 28, 2005

なひたふさんとこのMITOUJTAG

今日、interfaceの9月号を買ったら、Alchemyというメーカーの開発ボードを
MITOUJTAGでデバッグするという記事を発見。
著者はやっぱりなひたふさんだった。
CPUは対応してないと思ってたMIPS32。R3000系に対応してるなら、
2万くらいなら買っちゃおうかな。>MITOUJTAG
やべえ、物欲が(笑)いや、これは勉強のための経費だ。そう思い込もう。

オンボード書き込みができるならなおいいなあ。でも、フラッシュメモリの
データシートが見えないと無理かなぁ。
とりあえずJTAG経由でバックアップしておけば、万が一フラッシュが
ふっとんでもバックアップを書き戻せばいいだけだし。
オンボードのメモリにフラッシュのイメージと書き込みコードを置いて、それを
JTAG ICEで制御しつつ書き込む、って手段を想定してみたり。

などと妄想しつつ。

今までのまとめ(その5)

・今度こそtelnetを仕込むぞ
おもむろにMIPS用のファイルをいただいてきて、作業開始。
ちなみにlinkstationのHDDはプライマリスレーブにつながってるので、
/dev/hdb?になる。

mount /dev/hdb1 ./hdb1
dpkg --extract netbase_4.07_all.deb ./hdb1
dpkg --extract telnetd_0.17-18woody3_mipsel.deb ./hdb1
dpkg --extract netkit-inetd_0.10-10_mipsel.deb ./hdb1

ファイルはどこから落としてきたっけ。ま、ファイル名わかれば探せるか、
ってことで。
ぐーぐる先生にでも聞けば教えてくれるんじゃないかと。

なーんてやってるうちに、linux入れたHDDが調子悪いらしく、時々LILOの
真っ赤な画面が出てくるように…ジャンクだらけのマシンだからしょうがない
のかなぁ。暑くなってきたから電源かな?まあいいや。

次。./hdb1/etc/rc.d/rc2.d/以下に、S20hacksetというファイルを作って、
以下のように書く。


で、あとはlinkstationに戻して、根性試し板の上で起動。
…が、接続できず。。。Connection refusedと言われる…
inetd.confに設定が追記されるので、いちおう起動スクリプトは動いたみたい。
ということは、inetdを動かす工夫をしなきゃならないのかな?
もう、力技でポートスキャンして調べてやる!
その結果がこちら↓
Target '192.168.0.7' port(0 - 65535)
Proto Remote Address State Response
TCP 192.168.0.7:80 LISTENING
TCP 192.168.0.7:139 LISTENING
TCP 192.168.0.7:548 LISTENING
TCP 192.168.0.7:515 LISTENING
TCP 192.168.0.7:8080 LISTENING
TCP 192.168.0.7:35586 LISTENING
6 port(s) found.

やっぱり。全然ポート開いてないじゃん。webminを入れて、つながらないと
言ってはまってた同僚を笑えないな…
さて、どうやってポートを空けたもんだろう。
というか、ほかのthttpdはどうやって起動してるんだろう。
HDDを全部探してみるか。thttpdとか、ふつうに起動してるみたいなんだけど。
あーもうわけわからん。AUTOEXEC.batひとつでいいのに。
ランレベルって何やねん。ってところからお勉強かな。

と、ここまで書いて一言もlinkstationの詳しい情報を書いていないことに
気づく俺。もっと早く気づけ。HD-HLANのver.2.21を使ってます。
いまだにコンソールを拝めないので、これ以上の詳しい情報はゲットできず。。
早くtelnetがつながるようにしたいよ…

水曜日, 7月 27, 2005

今までのまとめ(その4)

・telnetdを仕込む
 telnetdを仕込めばいろいろできるはず、と山下さんのサイトを見ながら
 勝手に思い込んでいた。
 もっとも、それがいばらの道だったんだけど…ていうか、ソフトに
 徹底的に弱いおいらがそんなこと思った時点で間違っていたというか。

 とりあえず、作業用にLinux入れたマシンが欲しくなったので、
 余ってたPCにLinuxを入れることにした。
 パッケージはdebianにした。なんでかっつーと、jigdoとかいう
 ほっとけば勝手にアップデートされたインストールCDを
 作ってくれるソフトがあるのを知ったから(笑)

 作業用のマシンはCel566、128M*2、HDD 40G、3c905、i740という化石マシン。
 これでも卒研に使ってたPCより早いんだよな~技術の進歩ってすごい。
 キーボードとモニタはPC切り替え機を使ってメインPCと共用。
 リムーバブルHDDケースをつけて、簡単にHDDが加えられるようにした。
 KNOPPIX用に、CD-ROMもあまりものを2台取り付け。
 CPUのヒートシンクにPen4用の巨大なものをつけ、電源のケースを半分とっぱらって
 電源のFANでCPUファンを兼用させる。とりあえず重い処理するわけじゃないし、
 大丈夫でしょ。暴走したらクロック落とそう。
 ついでに電源FANもダイオードをはさんで回転数を落としておく。

 sambaを忘れずにインストールする。あとは、適当にYESと答えておく。
 設定がめんどくさい。しかも、中途半端に日本語で読みずらい…。
 英語だともっと読みづらいけど。。
 インストール後、英語のセットアップ画面に四苦八苦しながらインストール完了。

 LAN内なので普通にtelnetでいいや、と思ったらtelnetdがない!
 セキュリティのこと考えたら、あまりすすめられるものじゃないのは
 わかるけど、不便だよ…
 しょうがないのでapt-get telnetdを初体験してtelnetを入れてみる。
 あっさり終わって感動。昔RPMで入れてひどい目にあったな…(遠い目)
 ついでにwindowsマシンにもTeraTermを入れる。
 sambaにもユーザーとパスワードを登録。
 #以下俺の備忘録
 sambaのパスワードを更新する: smbpasswd ユーザー名
 
 プライマリスレーブにlinkstationのHDDをつないで、
 マジックナンバー修正ツールを使ってみる。が、動かない。
 makeしなおさなきゃダメか?と思い、適当にmakeしてみる。
(コマンドとかここに書く予定。今ちょっと思い出せない。)
 できた。ちゃんと修正されたかな?マウントして確かめてみる。
 おお、ちゃんとマウントできるじゃないか。すごいぞ。
 (だからおまえの力じゃないってば>俺)

 面倒なので、samba経由でlinkstationのHDDが見えるようにしてみる。
 (/home/ユーザー名 のディレクトリにいるとして)
 mkdir ./hdb1
mkdir ./hdb3
mount /dev/hdb1 ./hdb1
mount /dev/hdb3 ./hdb3
 hdb2はスワップ、hdb4はなんかよくわからんけどマウントできないので、
 とりあえず放置しておく。
 これでsambaで「ユーザー名」でログインしたときにlinkstationのHDDが見える。
 なぜか全部のファイルが上書き禁止になるけど…sambaの設定がおかしいんだろうな。
 別に編集はtelnetごしでやるからとりあえずどうでもいいや。
 
 ふう、道のりは長かった…というかまだtelnetd仕込んでないし。
 またしても表題どおりに進まない(笑)
 

今までのまとめ(その3)

・今度こそファームウェアの再インストール。
 ハードウェアはそこそこよくなった、ということで
 ファームウェアの再インストールに挑戦。

 まずは、バッファローのサイトからファームウェア
 アップデータをダウンロードしてくる。

 んで、あとはLinkstationの電源を入れてやれば
 アップデートができるはず…
 ダメじゃん。勝手に電源落ちるじゃん、Linkstation。。。
 LEDがなんか点滅してるので、初めて説明書を読む。
 HDD異常だそうだ。いや、HDD異常だからHDD変えてアップデート
 したいんですけど…
 それともさらにもう1台買えってことだろうか。玄箱とか?
 2台も買ったんだからもういいじゃん!!!

 …失礼しました。かくなる上は68HC908をだまらせるか?
 AVRあたりで適当に俺好みの制御をさせるか?あたりになりそうだ。
 待てよ、開発者の方だってこんなことは日常茶飯事だったはずだ。
 隠しコマンドを入れるとなんとかなるんじゃないか?
 上上下下右右左左LRLRとか(いや、だから入れられないってば)。

 隠しコマンドと言えば、リセットを押しながら電源ONか?
 ぼうけんのしょみたいに壊れたら……
 …………(しばし迷う)
 ま、いっか。もしふっとんだらJTAGで吸い出そう。
 って、なひたふさんのとか対応してたっけ…
 げ、MIPSは対応してない…横河あたりから買わなきゃダメか?
 大学時代に調べたら20万超えてた気がするんだが…

 また横道にそれたけど、ぶっこわしてもICE買うより安いから
 まあいっか、とばかりに敢行。(金銭感覚壊れたな、俺。。。)
 おお、全部のLEDが点滅しはじめた。ファームウェアアップデータも
 動く。やったぁ。

 ということで、復活。
 (実際はリセット押しながら電源ONを思いつくまでに、3週間
  放置してたりする(笑))

今までのまとめ(その2)

・次はファームウェアの再インストール。
 が、HDDをつないで電源ONしても数秒で電源が落ちてしまい、
 ファームウェアを転送できない…
 よく基板を見てみると、JTAGらしき端子があり、そこのTRSTに
 MC68HC908というマイコンの端子がつながっていることがわかった。
 そうか、電源の管理をこいつがやってるんだなと予想。
 LEDとか電源スイッチの管理もだろうね、多分。

 なんか気になってきたので、基板の上にある主要なICの
 データシートを集めてみる。インターネットってこういう時に便利。

 まとめてだらだら書いてみたのが以下のとおり。
==========================================
CPU
 これがなきゃ始まらない。モノはIDTの79RC324H234。MIPSコアのSoC(System on Chip)らしい。
 IDT…WinChip2は昔使ってたなぁ。Excelだと速いのにゲームを始めるととたんに遅くなるマジメな(笑)CPUだったっけ。
 手元のLinkStationには-400BCとあるので、NASにそこまでのクロックが必要かどうかは別として400MHzまでクロックが上げられる?
 でも、アクセスしたときにもっさり感があるので、できるならクロックアップしたいな。クロックアップしたら改善されるのだろうか。
 CPUコアはR3000らしいので、某ゲーム機の資料が使えるかも。
 オフィシャルな資料が欲しい方はこちら
 NASとして動作するために使ってるのは、PCIバスとDDR SDRAMインターフェース、シリアル*1、ネットワークインタフェースのためのMIIインターフェース*1くらいかな。
 そのほかにEJTAGがデバッグ用についていてパターンもあったりするけど、少々部品を載せないと使えないだろうな。(後述)
 DDR SODIMMコネクタ対応してくれないかなぁ。玄人志向あたりで出ないかね>SODIMMコネクタつきVer

Memory
 DDR400対応、32MBのSDRAM。HynixのHY5DU561622DT
 東芝から特許侵害で訴えられてるとか何とかいうニュースを発見したけど、大丈夫なんかいな。
 それとほかにもDDR SDRAM作ってるメーカーあるけど、そこはどうやって回避してるのかちょい疑問。よく読んだわけじゃないのでわからんけど。

Flash
 ST micronicsのM29DW324DB。シンクロナスバーストNORフラッシュらしい。たぶん32Mbit。つまり4MBですな。
 こいつはデータシートが準備中だった。。てなわけで、情報がありましたら追記します。DDR SDRAMインタフェースだったりして。

Ethernet I/F
 蟹マークでおなじみRealtekのRTL8201CPと、DeltaのLF8275の組み合わせ。
 特に説明の必要もないかと。
 Linux向けドライバの書き方はCPUのアプリケーションノートにあったり。

LED/PowerSW controller
 Freescale Semiconductor(旧Motorola)のMC68HC908JL8。メインCPUの79RC324H234とはシリアルでつながってるに違いない。J1に信号が来ている(後述)。
 そばにあるスーパーキャパシタは設定のバックアップ用と見た。で、そばにあるCN5は書き換え用と。
 ブートローダーモードにして、シリアルでROMイメージを流し込んでやるとROMが焼けるらしい。H8みたいだ。
 ファン制御とかもこいつがやっている気配。追ってどのピンに何の制御が割り当てられてるか調べよっと。
 問題なのは79RC324H234にはシリアルが1本しかない(そのせいで評価ボードはわざわざシリアルI/Oの石を載せてる)んで、シリアルコンソールどうしようってこと。
 いざとなったらこいつにはどいていただいて、手動で電源制御するしかないのか?

IDE I/F
 ITE techのIT8211。PCIバス用IDEコントローラ。前はSil0680だったらしいけど、変えた理由は何なんだろう。値段?
 NASだからそんなにIDEは速くなくてもいいか、ってことなんだろうか。
 こいつにつながってるHDDはサムソン製120Gでした。これはいくらでも情報があると思うので省略。


以下、手元にあるHD-120LANでは部品が載っていなくて、パターンだけのもの。
USB I/F
 NECのuPD720101GJ。よくUSB2.0カードに載ってるあれです。登録がうざい…変なところに名簿が流れない???
 HLANにはたぶん標準で載ってるんだろうな。
 追記:HD-HLAN120を買ったら、予想通りついていました。ってなわけで、これ以上は略。

MiniPCI
 パターンだけ。無線LANカードを刺せば無線LANアクセスポイントにもなるんだろうか。面倒なんでやらないけど。
 というか、そこまでやるならHLWGを買ったほうがよさそう。


ほかにもいくつか部品が載ってるけど、メインじゃないんで省略。
==========================================

 まあ、だいたいのことはわかった。RTCの話がないのは秘密。
 (単純に調べ忘れただけ)
 調子にのってブロック図なんぞ書いてみた。

今までのまとめ(その1)


今までにやったことを箇条書きにしてまとめてみる。

・まずは動作チェック。
 HDD満杯になるまでknoppixのISOイメージをコピーしまくってみる。
 →HDD死んだ…ま、これで心置きなく分解できるからまあいっか。

  これも勉強代だ、と思って潔く分解する。
  普通に使うためのは、もう1台購入(アホだ…便利だからいいけどさ)。
  
  ああでも、分解したまま使うと電源もむき出しだから怖いなぁ、と思って
  段ボールでLinkstation用根性試しまな板を作る。
  作り方は簡単、中身を置いてから穴のあるところにドライバで穴を
  あけて、そこにタイラップを通して、モノを固定するだけ。
  (よい子はそばにお茶を置いてはいけません)

  あと、ファンもうるさいしHDDが逝ったから冷やしとけば大丈夫か?と
  思いHDDに吹き付ける向きでファンを増設。
  純正のファンは電源の冷却ができるよう、電源の真裏から吸出しに
  なるようセット。
  ついでに途中にダイオードを4本直列に仕込み、回転数を下げる。
  回転数信号は今までどおり純正のファンの出力をそのままつなぐ。
  (回路図とかは簡単なんで、希望が多いときは出します)
  試運転は、もう1台の通常使用のLinkstationで行う。音量も落ちたし、
  ケースも前よりは温まりにくくなったようで、とりあえず満足。
  ダイオードがちょっと熱を持ってるのが心配といえば心配かな…
  

購入。

ちょっと前に、Linkstationを買ってみた。
中身はmipsだった。。。

…まあいいや、telnetd仕込めばなんとかなるでしょ。Linuxだし。
と、腹をくくってみたものの、いまだtelnetすらつながらないおいら。。。

世の中にはおいらと同じくmipsなlinkstatioを買って困っている人がいるにちがいない。
そういう人たちのため(自分含む)、つらつらと書き連ねてみる。