NSB-3NR1T1MLVにGentooを入れる

rootで入っていろいろとかやってたんですがいろいろクソで腹立ってきたのでGentooを入れます

準備する物

  • プラスドライバー
  • SATAでディスクが繋げられる適当なLinuxマシン
  • USBシリアル変換
  • Ciscoの機器で使うRJ45できしめんのケーブル
  • WD赤がもったいないと思うなら適当なSATAのディスク

手順1: HDDを抜く

真面目にNASとして使う気は全くないので最初から入ってるWD赤はだいぶもったいないです。というわけでその辺に転がってるHDDに交換します。私はその辺にあった500GBの2.5inchHDDに入れ替えました。

f:id:misodengaku:20180124234222p:plain

分解についてですがケースの隙間に薄くて強いカードのような物を差し込んで分解していくと簡単です。SIMカードの殻が強くて薄く、マイナスドライバーとかでこじるより傷つけづらいのでオススメです。

f:id:misodengaku:20180124230717p:plain

ケース背面角からカードを差し込んでちょっとづつバラしていきます。分解記事の写真を参考に爪を狙って浮かせていくと意外とあっけなくケースが開きます。

qiita.com

手順2: HDDにGentooを展開する

実は別にHDD抜く必要はないんですが実際にGentooをインストールするディスクを別の適当なLinuxマシンに接続します。

fdiskあたりで適当にパーティションを整えてmkfs.ext4でもしておきます。

f:id:misodengaku:20180124231901p:plain

ext4でフォーマットできたら適当なディレクトリにマウントしてcdし、Gentooのstage3を落としてきてtar xjf stage3~とでもして展開します。

今回はstage3-armv7a_hardfp-20161129.tar.bz2を使います。適当にJAISTあたりのミラーあたりから落として使うディスクに展開しておきます。

今のうちに展開したstage3内の/etc/fstabを書き換えておきます。

#/dev/BOOT          /boot           ext2            noauto,noatime  1 2
/dev/sda1               /               ext4            noatime         0 1
#/dev/SWAP              none            swap            sw              0 0
#/dev/cdrom             /mnt/cdrom      auto            noauto,ro       0 0
#/dev/fd0               /mnt/floppy     auto            noauto          0 0

こんな感じになっていればおそらくOKです。

展開が済んだらディスクはアンマウントしてNASに繋ぎ、電源が入りそうな程度にNASを組み戻しておきましょう。

手順3: U-bootいじる

本体背面ConsoleポートにCiscoきしめんを接続し、USBシリアル変換で適当なPCに繋いでTeraTermあたりでシリアルポートを開きます。baudrateは115200bps

シリアルコンソールを覗きながら本体の電源スイッチを押すと以下のような表示が出るので即座に適当なキーを押してブートを止めます。

U-Boot 2009.11 (Nov 25 2015 - 09:00:48) GoldenGate SoC ASIC

DRAM:   1 GB
NAND:  512 MiB
In:    serial
Out:   serial
Err:   serial
Net:   Connect GMAC1 to CPU
Goldengate
Hit any key to stop autoboot:  5

キーを押すとU-bootのコンソール画面に入れます。この状態でとりあえず以下の文字列をコピペで投入します。

setenv bootargs root=/dev/sda1 init=/sbin/init console=ttyS0,115200 SB_PHY=PPSS ni_napi_budget=16 qm_acp_enable=0 ni_rx_noncache=0 qm_int_buff=0 ethaddr0=BC:5C:4C:27:A5:9B ethaddr1=BC:5C:4C:27:A5:9C ethaddr2=00:50:c2:77:88:99 wifiaddr0=00:01:73:01:FF:10 wifiaddr1=00:01:73:01:FF:20 mtdparts=cs752x_nand_flash:1024K@0x00100000(uboot-env0),1024K@0x00300000(uboot-env1),1024K@0x00400000(sb0),1024K@0x00500000(sb1),153600K@0x01200000(rootfs),174080K@0x0A800000(rootfs_data),6144K@0x00C00000(kernel2),153600K@0x152000
saveenv
set bootargs root=/dev/sda1 init=/bin/sh console=ttyS0,115200 SB_PHY=PPSS ni_napi_budget=16 qm_acp_enable=0 ni_rx_noncache=0 qm_int_buff=0 ethaddr0=BC:5C:4C:27:A5:9B ethaddr1=BC:5C:4C:27:A5:9C ethaddr2=00:50:c2:77:88:99 wifiaddr0=00:01:73:01:FF:10 wifiaddr1=00:01:73:01:FF:20 mtdparts=cs752x_nand_flash:1024K@0x00100000(uboot-env0),1024K@0x00300000(uboot-env1),1024K@0x00400000(sb0),1024K@0x00500000(sb1),153600K@0x01200000(rootfs),174080K@0x0A800000(rootfs_data),6144K@0x00C00000(kernel2),153600K@0x152000
run bootcmd

おそらく唐突にカーネルのロードが始まってしばらくするとshが起動してくるはずです。これで無事GentooNAS上で動き出しました!

手順4: Gentooの設定

当然Gentooが動いてるというのは嘘でまだカーネル/bin/shが動いてるだけです。この状態で最低限以下の設定をしておきます。

  • passwd root
  • nano /etc/inittabとでもして s0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100s0:12345:respawn:/sbin/agetty -L 115200 ttyS0 vt100 に書き換える(9600→115200)

よく覚えてないですがだいたいこんなもんでしょう。気が済んだら再起動します。rebootとかは効かないので電源ケーブルを引っこ抜いて再度電源を投入します。

手順5: 起動したら勝ち

電源を入れてみて、ブート中のログに OpenRC 0.21.7 is starting up Gentoo Linux (armv7l) みたいな色つきの文字が見えたらだいたい勝ちです。たぶんログインプロンプトが出てくるので普通のGentooマシンとして使いましょう。

おわり

元々入ってたLinux上でいろいろやったんですけどイライラ度合いが半端じゃないのでおとなしくまともなLinuxを入れましょう

今後の目標としてはカーネルを入れ替えたい さっさとソースコード開示しろ