KHADAS VIM1S(SBC) を家庭内サーバーに仕立てる。

### ある日、NASが壊れた。
その日は予想通りやってきました。NASにアクセスできなくなったのです。2月頃に一度、アクセスできなくなり、確認したら、随分と本体温度が高くなっており、これはイカン！ということでいったん外に出して冷やした後、電源再投入後、直ちにバックアップを取り、様子をみましょうと経過観察していたのですが、接続してもファイルが表示されないなどの不具合が段々と起こり始め、４月に昇天となりました。台湾のShuttle という会社の Omninas KD22 という製品でした。購入は、2014年6月でしたから、約10年の使用期間です。まあ、妥当な寿命でしょうか。3.5インチ1Tバイトのハードディスクを2台、raid 1 で使用していました。NAS中のデータ総量は、1Tバイトハードディスク内の256GB程度でした。ハードディスク単体を個別にデスクトップPCに接続すると認識されます。raid 1 を解除してファイルのサルベージを行う記事をあちこちで見まして、mdadmコマンドを用いて、ファイルが取り出せないか試しましたが、今の所成功していません。10年近く使用したハードディスクですので廃棄やむ無しですが、家庭内のメディア＆ファイルサーバーでしたのでアクセス頻度がさほどとも思えません。ハードディスクが壊れたのか、NAS側デバイスが壊れたのか、分かりません。分かったのは、raid で組んでも、こういう壊れ方をすると後からではファイルサルベージは素人には難しい。ということです。業務でしたら専門業者に依頼するところですが、家庭内のデータで多少の時差はありますがバックアップがありましたので、ハードディスクは諦められます。そして、次のNASをどうするか？　という課題が現れました。
### Raspberry Pi と競合製品
家庭で扱うとしたら趣味的なシングルボードコンピューター(SBC)という選択がありました。数年前から話題になっていたのは、Raspberry Pi という製品で、面白そうだな。と思ってチェックしていたのですが、最近は入手困難な様子です。Switch Science という会社の扱いで、製品の Raspberry Pi 4 Model B / 2GB　には、￥8,250 という価格がついていますが、この記事を書いている2023年5月時点では「売り切れ」表示になっています。アマゾンを覗いてみると同じ仕様でも、￥21,580 という価格付けで、まあ人気商品なのだから、こういった価格にも成りえるかと、横目でみながら、他にSBCってないの？　と探したところ、タイトルにある VIM1S という製品が見つかりました。Youtube などでも紹介され、価格も￥9,800 ですので、おっ、行けるかな。と思いました。　在庫があるようでしたので、本体、ケース、ヒートシンク、ファン、データ保存用SDメモリカード(256GB)を一緒に購入しました。計￥18,200 になりました。データ保存はSDメモリーで行ってみよう。という完全家庭内向け設定です。SDカードは簡単に取り外せるのでバックアップは別途考えることにしました。
### VIM1S first impression
とても小さく包装を含め丁寧で繊細に扱われているな。という印象でした。ケースは、うまい例えではありませんが「タバコの箱」くらいのサイズでしょうか。本体SBC+ヒートシンク+ファンが、その中に収まります。ファンケーブルの接続は狭い所の細かい手作業でした。

### どのOSをインストールするか？
ARMベースのチップで、KHADASによりカスタマイズされたOSが動きます。OSインストール前の起動では、ネットワーク接続が必須です。ネットワークが立ち上がると下記のKHADASのダウンロードサイトからインストールしたいOSを選択して、ダウンロードすることになります。ダウンロード完了後に本体の eMMCにインストールする。という手順になります。


https://dl.khadas.com/.images/vim1s/

最初からコンソール画面のみ。というのはキツイので、ubuntu-gnome あたりから始めてみます。5GHzのWiFiは検出できず、なぜか、2.4GHzの WiFiが2つ検出されました。また、USBポートは2つありますが、マウスとキーボード両方とも認識できる場所が決まっており、逆に接続するとマウスが検出できませんでした。デスクトップ版はファイルサイズが大きいので、ダウンロードに時間がかかりました。まあ、新製品チェックですので、フレイバーを確認したら、即、サーバー版をインストールすることにしました。

### デスクトップ用Ubuntu Gnome
この記事の読者であれば、VIM1S以上のプロセッサーで動くPCをお持ちかと想像いたします。YouTube動画は閲覧可能です。起動すると、ひと呼吸の間がありますが、まあ閲覧可能ですが、しかし、わざわざ VIM1S で見るほどではありません。もっと素早く動くPCは山のようにあります。こんなものかという感触が得られたら、今度はサーバー版のインストールをします。

### サーバー用Ubuntu、そしていきなりの reconfigure
こちらのイメージファイルは短い時間でダウンロードできました。起動するとコンソールしか表示されませんが、おっと、日本語キーボードレイアウトではない。@ ! & : とかキーボード通りに入力できませんぜ。ということで最初にやることが、日本語キーボード設定。これは、以下のコマンドで変更設定します。

```
sudo dpkg-reconfigure keyboard-configuration
```

お次が、Network設定。インストール時には接続されていたネットワークがインストール後はつながっていません。なんじゃー！！なんですが、これって Arch Linux のインストールでも経験ありました。幸いに、経験済みの方がいらしゃって、以下の記事を参考にさせていただき、WiFi をつなぎました。　ありがとうございました。

https://qiita.com/jack-low/items/6a4912e382626b9aecd8

さて、初期設定がここまでできると、後は、お決まりの
```
sudo apt update && sudo apt upgrade
```

で更新して、ssh と samba をインストールするとゴールが見えてきます。
また、SDカードのマウントに関しては、下記の記事を参考にさせていただきました。

https://ma-tech.centurysys.jp/doku.php?id=mae3xx_tips:automount_sdcard:start

本体コンソールでの日本語入力や表示とかは考えません。日本語は、ssh で接続したクライアントから操作できればOKとしました。いったんサーバーが立ち上がってしまえば、リモートの ssh で行きます。

samba設定は、/etc/samba/smb.conf に以下の設定を追加です。ゆるゆるの設定にして、Windows, Linux及びFreeBSDから GUIでファイルにアクセスできるような設定としました。

```/etc/samba/smb.conf の追加部分

#######################################################
[SD Card]
  comment = SD Card for NAS purpose
  path = /mnt/sd
  browseable = yes
  read only = no
  guest ok = yes
  guest only = yes
  create mode = 0777
  directory mode = 0777
##################################################### 

```

### 結局、USBドライブを接続する。
半日ほど、上記環境で使用していましたが、USB-C で接続できるハードディスクケースが遊んでいたので、使用しなくなった古いノートPCのハードディスクを突っ込んでマウントしてみました。現在はそちらで使用しています。ということで、smb.conf の最後の部分は

```samba/smb.conf　の追加部分修正
####################################
#[SD Card]
#  comment = SD Card for NAS purpose
#  path = /mnt/sd
#  browseable = yes
#  read only = no
#  guest ok = yes
#  guest only = yes
#  create mode = 0777
#  directory mode = 0777
#  do not use for a while

[VIM_NAS]
  comment = USB drive
  path = /mnt/nas
  browseable = yes
  read only = no
  guest ok = yes
  guest only = yes
  create mode = 0777
  directory mode = 0777
################################# 
```

と書き換えました。SD Card は必要な場合は手動でマウントして使えるようにしました。
このNASに mp3 ファイルとかを放り込んで、別室のリビングルームのほうで、再生してみたりするのですが、~~当たり前の話ですが途中でプツプツきれるわけです。あれー、壊れたNASでは、そんなことなかったなあ。そうかNASにメディアサーバー機能がついていたんだな。~~ ということで、Ubuntu Server にメディアサーバー機能を追加せねば。ということでお遊びのネタが追加されました。
<おそらく誤解です:後になって、無線LANがえらく遅いということに気がつきました。これはそのせいであると思います。>　

#### 余談、壊れたNASについていたハードディスクを、どうするか?
壊れたNASから取り外した2台のハードディスクをどうしよう。我が家では壊れたハードディスクは分解して、VCMに使われているのネオジム磁石を取り出し、冷蔵庫でメモを止めたりして再利用していますが、うーん、どうしよう。
デスクトップPCのマザボSATA接続は6ヶ所全てを使ってしまっているので、そのままではのせられません。調べますと、PCIスロットにSATA増設用拡張カードが差せれば、そこに接続できるとの情報あり。よし、それで行こう!
ということでAmazon に拡張カードを注文し、取り外したハードディスクを取り付けた所、2個とも認識され、まあ、根性出せばそこからデータサルベージできるかもしれないかったが、今回は、ext4形式でフォーマット。本格的に用途が決まったら、Western Degital のハードディスクに換装しよう。という作戦としました。新しいケースと電源に投資しておいて良かった。と過去の判断が正しかったことを再認識する。

### MiniDLNA をインストールする
この記事を参考にさせていただきました。なんと朝食前にメディアサーバーが立ち上がってしまいました。ありがとうございました。

https://qiita.com/kmth220/items/1c592b8dc254503b6e83

クライアントは、vlc が使えます。

### Neofetch してみました
デスクトップPC(INTEL入ってる)の空きディスクに Ubuntu を入れて、Neofetch の比較をしてみました。KhadasのVIM1S は下の絵になります。
![neofetch_upload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561584/af6ebd15-a24b-6b65-0319-5d4bd0164ae0.png)

VIM1S の解像度が、4096x2160 って表示されていますが、このSBCをヘッドレスで使用するって、オーバースペックということになりますかね。

### 消費電力を実測してみました。電源アダプタ考察
LAN設定を有線ケーブルに切り替えて、メディアサーバー経由でUSBハードディスク内の音楽を聴きながら、VIM1S の電源に簡易電力計をつなげて計測してみました。3.5W 程度の数字が表示されています。アイドリング時は、2.2W 程度の表示が出ています。家計に優しいサーバーと言えるのかな。（今まで使用して壊れたNASの消費電力は測定したことがありませんが。）
後述のUSB/LAN変換コネクターを使用した場合、転送速度は速くなるようですが、音楽を聴いている状態で消費電力は、4.8Wなので、速度と消費電力のトレードオフになります。
電源アダプターは、我が家で最強ともいえるApple M1 Macbook に付属のモノを使用していますが、標準的に使われている電源アダプター(出力5V, 最大2A程度)で10W になりますので、遊んでいる電源アダプター先端にUSB-C変換アダプターを取り付けて使えば十分だと思います。

### 無線LAN 技適について
さて、無線LANですが、2.4GHz では接続できるものの、5GHz の方は、たまに検出できることがあっても安定的な接続ができない状況です。また、sshログインしても、たまに動かなくなったりの動作だったので、これってLAN がまともに動いていないのではないか？という疑義が生じ、こんな性能で技適とか取れるのだろうか？　と思いました。ということで総務省のページで調べてみました。
「氏名又は名称」に Khadas 「型式又は名称」に VIM と入力して、送信するとヒットするのは上位版の VIM4 のみでした。ところが、「氏名又は名称」に Khadas　のみを入力して検索すると、V1M1S という「型式又は名称」もヒットしました。おそらくこれでしょう。技適は通していたようです。危うく早とちりをするところでした。

https://www.tele.soumu.go.jp/giteki/SearchServlet?pageID=jk01&NUM=&NAM=Khadas&FOM=&PC=&YAR_FROM=&MON_FROM=&DAY_FROM=&YAR_TO=&MON_TO=&DAY_TO=&RAD=00-00-00-00&TEC=1&TEC=2&TEC=3&TEC=4&TEC=5&TEC=6&TEC=7&SK=0&DC=0&SC=1&as_fid=ac225450f85c97823210f64aac45bd1e9a6a0189#searchlist

そうはいうものの無線LANはあまりに遅いので、有線LANに切り替えました。

### どんな人に向いているSBCか?
新しもの好きで、小さいガジェットで遊びたい方に向いているでしょう。このSBCが、従来のBIOS, MBRやEFI等、長いこと誰かが牛耳っていた分野に切り込んで行ってくれたことは驚きですし、さすが中国メーカーという気もします。
Raspberry Pi 等と比較して速度の違いとかわかりません。メーカー側は、Android や動画も意識して設計しているようなので、新しいゲーム機を開発したい。というような B to B 市場も視野に入れているのかもしれません。
家庭内でのサーバー用途でしたら、今は小型ベアボーンとか安価なミニPCが2万円台で Microsoft Windows 11 もおまけ(?)でついている場合がありますから、小ささにこだわりがなければ、そういったミニPCの方が現実的な選択になるかもしれません。ちなみに、今回、本体SBC、ケース、ヒートシンク、ファンとSDカードを購入しましたが、ファンが回ったのはubuntu-gnome を使っていた時だけで、~~サーバーに切り替えてからは静かなものです。コンソールモードでもファンはシェルスクリプトで調整が可能ですが回ったことはありません。ファイルサーバー用途でしたら、本体SBCとケースだけでもいけると思います。~~  <--サーバーの場合でも時々ファンが回ることがありますので、最初に揃えておくほうが無難だと思います。 
結局、外付けUSBハードドライブとかを使っていますので、空間容積的なメリットには、少し　??　がついています。
##### 本SBCの無線LANについては、「動く」というレベルで、私の家の環境では、100M という仕様の本SBC有線LANに負けます。ご家族で使用する場合は、文句が出ると思います。ご自身の専用NASとしてしか使えないと思います。機能を重視したいのであればもう少し、予算を割くべきでしょう。

### しかし、まだまだ遊びは続く、LAN接続を高速にしたい
さて、LAN速度をもっと上げられないか？　USBに接続可能なLAN変換コネクターというものがあるのですが、昔、LAN端子のないWiFiのみのノートPCを使っておりまして、WiFiが壊れた時のバックアップとして以下の製品を持っていました。

https://www.buffalo.jp/product/detail/lua4-u3-agt.html

この製品の系列が Ubuntuで使えるという古い記事を見つけまして、ものは試しと接続したらきちんと認識して有線LANとして使えました。ただ前述のようにシステム全体の消費電力は、3割程度アップしましたので、悩ましいところです。しかし、ssh も素早くつながりますので、こちらを常用にするか考え中です。豚のしっぽじゃないけど、ぶらさがりものが、また一つ増えてしまいました。

### 今日のお題は、USB無線ドングルが使えるか？
上記のぶらさがりものは、外して有線LANに戻しました。そのままでもUSB接続デバイスが使えるのなら、USB無線LANは、使えるか？　ということになります。ジャンクボックスから使わなくなったUSB無線LANを引っ張り出してきまして、片っ端から取り付けてみます。lsusbコマンドの出力をみますとちゃんと認識はされていますが、無線LANステーションに接続できる状態にはなりません。そーかドライバーインストールという壁があるか。昔、これが面倒でLinuxに接続する場合は、無線中継のステーションをデスクトップPC近辺に配置して、そこからマザボの有線LANに接続するという横着をしていますので、無線LANドライバーのインストは久しぶりの作業になります。まずは、lsusb に出力をテキストファイルに落とすところからか。。
lsusb の出力や Windows 11のPCに差し込んだ時の情報を眺めながら、手持ちの中の新しいほうからLinux Driver がないか探していきます。一番新しく入手したUSB無線アダプターが、Realtec 8811CUを使っており、ここにドライバーがありました。

https://github.com/fastoe/RTL8811CU

インストール方法は、下記の通り
```README.md 抜粋
sudo apt update
sudo apt install -y dkms git bc
git clone https://github.com/fastoe/RTL8811CU.git
cd RTL8811CU
make
sudo make install
sudo reboot
```

nmtui で確認すると「USB WiFi」として認識されていることがわかりました。後は、指定のIPアドレスに設定すれば使えるようになります。

(つづく)