About NetBSD/landisk
これは何?
IO DATA製 LANDISKでNetBSDを動かしてみたりするメモページ。気が向いた時に更新。まだ作成中。
注意: 私個人は単にユーザとして動かしているに過ぎないので中身についての詳しいことはわかりません
現状
重要な問題点
2006.2.1以降のsourceでは一部の重要なコマンドが正しく動作せず、事実上使いものになりません。これはNetBSD/sh3でSH4 CPUを使用している場合に共通して発生する問題でlandisk固有ではありません。
sh4で発生していた一部コマンドが動作しない件は2006.9.24に修正されました。最新のカーネルを使用することで正常に動作します。
- SH7751Rの拡張キャッシュモードを使用するとファイルシステムが壊れたりランダムに異常な現象が発生することがあるようです。このため現在のkernelではECACHEはOFFです。
- 電源スイッチOFFでshutdownが動くようになりました
- SH7751Rの拡張キャッシュモードが動作するようになりました。このコードは既にNetBSD-currentのsh3用コードにcommitされています (2005.7.8)
- dmesg(2005.7.15)
- 手元の環境でbuild.sh buildがとりあえず完走しました(2005.7.10~12)
- NetBSD/sh3が動く普通のNetBSD boxとしてそれなりに動作しています
ハードウェアについて
本体
私が動作させているのはHDL-120ですが仕様上他のHDL/HDL-Wシリーズ、およびLANTANKでも動作すると思われます。さらに形態/内蔵デバイス等がは異なるものの、USL-5Pでも動作するということです。なお、残念ながらUSL-5P以外のLANDISKは既に生産中止になっており現行のLANDISKではCPUが異なり動作しません
HDL-GシリーズとGLANTANKはCPUがIntel XScaleであることから全く異なるので動作しません。これらは最近NetBSD/evbarmでサポートされています。
さらに最近のLANDISK HDL-Fシリーズ, Giga LANDISK HDL-GXシリーズもarm系CPUになっているのでNetBSD/landiskは動作しません。また、CPUが異なるため、NetBSD/evbarmも現状では動作しません
動作デバイス
動作しているもの
- SH7751R内蔵PCIコントローラ (shpcic)
- PCI接続100BASE-TXコントローラ Realtek 8139C (rtk)
- PCI接続USB2.0コントローラ NECμPD720101 (ehci/ohci)
- PCI接続ATA133コントローラ Acard ATP865-A (acardide) (LANDISK/LANTANK)
- 内蔵CF (wdc) (USL-5P)
- 内蔵RTC RICOH RS5C313
- 内蔵シリアル (scif)
USBに繋げた色々な機器
まがりなりにも動作を確認した物
- uhub (USB 1.1)
- umass: カードリーダ, HD, CD/DVD-ROM
- ucom (ufdi)
- ulpt: Canon PIXUS 560i (gs bjc800)
- uaudio: 玄人志向 AUDIO5.1-USB
- url: Melco LUA-KTX
- ral: BUFFALO WLI-U2-KG54
- USB camera(ugen): Creative WebCam 3(OV511+), Logicool Qcam4000Pro(PHPS), Maxell PM3(SPCA561), Maxell PM2(CPiA2, ugenに特殊patch必要)
電源スイッチ
powerdと連動してshutdown自動実行
未確認
シリアルケーブル
LANDISKにはシリアルインターフェースの口がありませんが、内部の基板にはCPU内蔵scifの端子から4pinの端子が出ています。ここにRS232Cレベルコンバータを接続することで、通常のシリアルとして使用可能になります。通常これはシリアルコンソールとして使います。USL-5Pの場合も同様のようです。
LANTANKの場合はオプションでシリアルケーブルが発売されているようですので、これを使用できます。
運用できるような状態になれば必ずしもコンソールでの操作は必要無いかもしれませんが、現状ではシリアルケーブルはほぼ必須と考えた方が良いでしょう。
シリアルケーブルはMAX232で3.3VをRS232Cレベルに変換するだけの非常に簡単なものですが、作り方はMizore Wikiのシリアルコンソールをつなげるがわかりやすいと思います(端子側のTxDが2つありますが誤植でしょう。CN7-3はRxDだと思います)。また、なんかの携帯電話接続ケーブルがMAX232内蔵なので切断して使えるという話も聞きましたが詳細は不明。
準備するもの
LANDISKでNetBSDを動かそう、と思うその前に。以下のものを用意しておく
- LANDISK本体の分解工具。ネジが小さいので精密ドライバが必要です。が、むちゃくちゃ堅いので力をかけやすい物が好ましい。
- シリアルケーブル。コンソール接続用。
- 実験用HDD。標準の環境を壊してもいい場合は最初から内蔵されているものでも構わないが、一歩間違えると物理的にも破壊することになるので不安な場合は適当なHDDを使用する。容量はNetBSD本体だけなら1GBもあれば十分
- クロスコンパイルしたりHDDを繋げてファイルを書き込んだりする母艦。NetBSD/i386が色々な意味で無難。私はamd64でやってるけど。
- USBのHDD接続用IF。USBでなくてAT互換機のIDEに直接繋いでもいいけど、USBの方が動的に取り外しできるので便利。私はワークの2.5inchとUSB箱を利用。なお、2.5inchHDDを使う場合は3.5→2.5inchの変換ケーブルがLANDISK側に必要
- 一般的な構成のAT互換機にNetBSD/i386をsysinstを使わずに最小インストールできるくらいの最低限の知識。
- 面倒でも続ける根気。わからないことは自分で調べる努力とめげない根性。そして広い心。
NetBSD/landiskのインストール
ソフトウェアの準備
2005.7現在、NetBSD/landiskは正式なportではありません。そのため、既にサポートされているportと比べて多少準備が増えます。NetBSD/landiskは正式なportになりましたがまだバイナリ配布はされていません。が、大筋においてほとんど普通のNetBSDと同じです。
もちろんインストーラなんて物もありません。通常は高速なホスト環境でCross buildする必要があります。
(以下未完)
- NetBSD-currentのソースツリーを展開する。
landisk用の差分をソースに追加/適用する。
sh3el用のtoolchainを生成する。build.sh -a sh3el tools 等。
landisk用配布セットの作成
- build.sh -m landisk release
- 未確認のため失敗するかも…
ターゲットHDDへの作業
- ターゲットHDDをi386側になんとかして接続
- fdiskでNetBSD用のfdiskパーティションを作成
- disklabelでNetBSDのパーティションを作成
- newfsで初期化
- installboot -m landisk ターゲット
- kernelのコピー
順番を間違えないように(例:fdiskした後でMBRを書き込むとFDISKパーティションテーブルが上書きされて消えてしまいます)。
最低限kernelさえあれば起動の確認はできます。initが見付からずにpanicしますが。
起動
- ターゲットHDDをlandiskに接続し、電源ON
- NetBSD kernelが起動するまでの boot message
パッケージ
NetBSD/landiskは NetBSD/sh3elのひとつで、ユーザランドはhpcshやdreamcastと互換性があります。すなわち、hpcshやdreamcast用に作成されたバイナリパッケージをインストールし動作させることができます。
しかし2006.9現在、正式なNetBSD/sh3el用のバイナリパッケージは配布されていません。つまり、pkgsrcを使い自力で作成する必要があります。
(2006.9.12)個人的にsh3el用binary packagesを現在作成中ですが、pkgsrcを一通り全部終わるまでには約4ヶ月以上はかかりそうです
現在の問題点
- ごく稀に書き込んだファイルの内容が壊れているような気がする。といっても私のHDD固有のハードウェアトラブルのような気がしないでもない。
shutdown -r や reboot でリセットした時の再起動が失敗する。電源ケーブルの抜き差しが必要。rebootできない問題は修正されています。
-
時計が遅れる気がする。
→とりあえずntp同期で逃げる
-
0x8c000000~0x8c200000付近の約2MBのメモリが使われない?
→bootとkernelのロードアドレスを変更することで対処可能
7/17版でbootとkernelのロードアドレスが変わりほとんどのメモリを使えるようになりました。
-
ネットワークを使用するとrtk0: transmit underrun; new threshold: 320 bytesが良く出る
→dreamcast等でも良く出ます。とりあえず無視。
そのほか
- 現在の私のLANDISKの写真
- コンパイルしたpkgsrc一覧 (2005.7.15現在) 注:全てが正常に動作しているとは限りません
参考サイト
$Id: index.html,v 1.16 2006/09/26 15:12:03 oshima Exp $