HDL2-A
https://scrapbox.io/files/672369d19f6447765080de07.JPEG
https://www.iodata.jp/product/nas/personal/hdl2-a/
IODATAのNAS
うしろの2.0とか4.0とかは容量を表してる
大破さんのメモ
HDL2-A2.0 - 大破雑記帳
HDL2-A bootcmdメモ - 大破雑記帳
HDL2-A SATAブート関連メモ - 大破雑記帳
HDL2-A OpenWrtブートログメモ - 大破雑記帳
HDL2-A R8C/25メモ - 大破雑記帳
kirkwoodはLinux Kernel 5.13までrestart_handlerを使えない – 大破雑記帳
@musashino_205: Comparing openwrt:main...musashino-build:tgtadd/kw-nas · openwrt/openwrt https://t.co/nt0Xaxf2GX
I-O DATA HDL-A/HDL2-Aサポート暫定(今のところtaiha/taiha-pkgs内のlandisk-r8c(+その関連ドライバ)とbase-files-landiskを組み合わせて使う前提)
@musashino_205: I-O DATA HDL2-AでSATAストレージからのブートがsysupgrade含めて大体機能するようになった
https://pbs.twimg.com/media/GZhWmCvaAAIjQJP.png
https://x.com/search?q=from%3Amusashino_205+HDL2-A&src=typed_query&f=live
その他の動作実績
@ri_dial: HDL2-Aの抜け殻に新しい命を吹き込もうと先人の知恵をお借りしてみた。
とりあえずUSB経由でopenwrtを起動できるようになった。
先人たちは100歩くらい先を行っているが、あまり触れることがない分野なので足跡を追うのが楽しい。
…ディスクが2つ入るからRAID1組めるようにはしたいなぁ。
https://pbs.twimg.com/media/FjOot1JUYAkIUnu.jpg
パソコン・ゲームの雑記帳 HDL-Aをシリアルコンソールしてみる
OpenWrtを動かしてるわけではない
電源
EIAJ#4 コネクタで 12V 4A 程度のものが必要
なかなか売ってないので、ジャンクを買うときは、電気に自信がない人はACアダプタ付きのものにしておいたほうがいいかも
12V 2A のACアダプタでも、HDDなしなら起動できた
シリアルコンソール
電源コネクタからいちばん遠い場所にある, 穴が5個並んでいるスルーホールのパッドがシリアルコンソール
外側から NC, GND, TX, RX, NC
https://scrapbox.io/files/672369e878b81b7cf6cb3fbe.JPEG
黒 = GND
黄色 = TX
白 = RX
baud = 115200
screenコマンドの例
code:screen.sh
screen /dev/ttyUSB0 115200
ビルド
https://github.com/musashino-build/openwrt/tree/devadd/hdl2-a_r8c をcheckoutする
code:sh
mkdir musashino-build
cd musashino-build
git clone https://github.com/musashino-build/openwrt.git
cd openwrt
git checkout -b devadd/hdl2-a_r8c origin/devadd/hdl2-a_r8c
あくまで大破さんの作業用ブランチなので、そのうちなくなったりするかもしれないので注意
OpenWRT 23.05 をビルドするの手順でビルドする
ターゲットの設定は以下の通り
Target System = Marvell Kirkwood
Subtarget = Devices which boot from SATA (NAS)
Target Profile = I-O DATA HDL2-A (USB)
起動用USBメモリの準備
OpenWrtのツリーは /home/miminashi/src/musashino-build/openwrt にあり、ビルドが完了しているものとする
USBメモリを用意する
相性が結構あるっぽいので、バラバラのメーカーで3種類くらい用意しておくといいかも
手元にあった3つのうち、1つしか認識しなかった
使用できているのはこれ
次のコマンドを実行する
code:create_boot_disk.sh
cd bin/targets/kirkwood/nas/
gunzip openwrt-kirkwood-nas-iodata_hdl2-a-usb-ext4-disk.img.gz
sudo dd if=openwrt-kirkwood-nas-iodata_hdl2-a-usb-ext4-disk.img of=/dev/sda bs=1M
上記のコマンドの実行が済んだら、USBメモリをアンマウントして作業用マシンから取り外す
起動
HDL2-AのUSBポートに起動用USBメモリを挿す
どちらのポートでもOK
USBメモリが認識されていれば、USB: scanning bus for devices... 3 USB Device(s) found と出てくる
USBメモリが認識されていなければ、2 USB Device(s) found になる
電源を接続する
起動後の様子
EthernetはDHCP clientになっていた
sshログインもできた
LuCIを含めてビルドすればもちろんLuCIでもログインできる
NASにLuCIでログインできるのおもろ
USBメモリに2つパーティションができていた
片方はカーネルをおさめるFAT16のパーティション
もう片方はrootfsがおさめられてるext4のパーティション
起動ログ
その他
基板裏側にwinbond 25X40BVSIGと刻印されたSPIフラッシュが載っている
512KBのようなので, rootfsとかをいれるのは無理そう
NASとしてどう運用するか
先行事例を見てみると、ほとんどの人がSambaで運用しているようだった
https://cube309b.hatenablog.com/entry/2023/06/10/093811
OpenWRT(LEDE)使いこなし : NASとしてsamba共有するまで #Linux - Qiita
md raid で運用している例
https://unagidojyou.com/2023/12-04/mdadm_on_openwrt/
NASにしているわけではない
自分はTimeMachine箱にしたい
Macのバックアップ用
RAIDの再構築もLuCIからできるとよい
HDDを片方ずつ換装しつつ、だんだん容量の大きいHDDに換装していく、みたいな使い方ができるとよい
これを実現しようと思うと、btrfsがよさそうではある
とりあえず block-mount と luci-app-samba4 をためしてみる
block-mount
最初からはいってた
なんでなのかわからん
DEIVCE_PACKAGES には指定されていない
https://github.com/musashino-build/openwrt/blob/11af6d1721fb87ee0f0eb12293b6a63dcc9352a2/target/linux/kirkwood/image/nas.mk#L49
block-mount でマウントするためには、あらかじめパーティションを切ってフォーマットされている必要がある
luci-app-samba4
luci-app-samba4 をopkgで入れようとすると、依存関係を満たせない
menuconfigから選択してビルドしなおした
Apple Time-machine share という設定項目あるのでSambaでもTimeMachineで使えるっぽい
https://scrapbox.io/files/672684f5210bb266eb87cf6e.png
SATA HDDをext4でフォーマットしたらOSが起動しなくなる
おそらくブートローダがHDDの先頭パーティションにカーネルがあることを期待して読みにいって固まってるのだと思う
先頭に1MBの空のパーティションを追加してみたら起動するようになった
code:fdisk
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M Linux filesystem
/dev/sda2 4096 1465147391 1465143296 698.6G Linux filesystem
この先頭のパーティションはフォーマットしないでおく