MS-NH1-W10にDebian 12を導入して省電力サーバ化する
マウスコンピューターの初代スティックPC「MS-NH1-W10」は、手のひらに収まる極小の筐体にクアッドコアのインテル Atom Z3735F、2GBのメインメモリ、32GBのeMMCを搭載したエポックメイキングな端末でした。しかし、スペックに対して過度に肥大化したWindows 10では日常的なブラウジングすらもたつき、常時稼働させるには極めて厳しい処理速度に陥っていました。
さらにWindows 10の公式サポート期限が到来することを受け、セキュリティ面からもOSの更新、あるいは機器自体の廃棄を迫られる状況となりました。小型軽量かつ低消費電力という物理的な特性は、家庭内のマイクロサーバとして非常に優れた資質を備えています。ハードウェアの寿命を迎える前に、余計なリソースを消費しない軽量なLinuxを導入し、常時稼働の省電力ヘッドレスサーバとして再生を図ることにしました。
本投稿の目標
今回の延命化における実用基準は、外付けのUSBハブや有線LANアダプタ、USB Wi-Fiドングルなどの外部機器を一切増設せず、ハードウェア本体の機能のみで完結させる点にあります。
ディスプレイ、キーボード、マウスをすべて取り外した状態で、電源投入後に内蔵ストレージ(eMMC)から自動でOSが起動すること。さらに、内蔵Wi-Fi経由で自動的にローカルネットワークへ参加し、ブラウザから遠隔管理可能な状態を維持できること。
Ubuntu 26.04で直面した32bit UEFI破損とLinux 7.0の洗礼
当初は最新の長期サポートを見据えて「Ubuntu 26.04 minimal」の導入を試みましたが、変則的なハードウェア設計と最新カーネルの仕様変更による多重の障壁に直面しました。
MS-NH1-W10を含むBay Trail世代の端末は、「CPUは64bit命令セットに対応しているが、マザーボードのUEFIファームウェアは32bitで動作する」という変則的な構成(いわゆるMixed-mode UEFI)を採用しています。通常の64bit版インストーラを使用すると、32bit用のブートローダ(bootia32.efi)が生成されず、インストール処理の最終段階でGRUBの書き込みに失敗してシステムがクラッシュします。
さらに致命的だったのが、内蔵Wi-Fiチップである Realtek RTL8723BS(SDIO接続)の挙動です。Ubuntu 26.04が採用するLinux 7.0系カーネルでは、ネットワークスタックやパケットバッファ(skb)の内部構造が大幅に近代化されています。しかし、RTL8723BSのドライバは長年カーネルの「staging(開発途上)」ツリーに放置されており、最新のパケット処理ロジックに追従できていません。
その結果、Wi-Fi通信を試みた瞬間にパケット結合エラーが発生しました。
rtl8723bs mmc0:0001:1 wlan0: xmit_xmitframes: coalesce failed with error -22
ドライバが規格外の壊れたフレームを送出したことで、端末側は ASSOCIATING -> 4WAY_HANDSHAKE -> DISCONNECTED というミリ秒単位の無限切断ループに陥りました。大量の破損フレームと接続要求が浴びせられた結果、家庭内ルーターの通信デーモンが飽和し、ルーター本体が巻き添えで再起動を繰り返すパケットストーム事故へと発展しました。
Debian 12の採用と枯れたカーネル世代による安定化
最新カーネルとレガシードライバの絶望的な摩擦を解消するため、OSの選定方針を根本から見直し、安定版である「Debian 12 (Bookworm)」へ移行しました。
Debian 12の公式 amd64 インストールメディアは、標準で32bit UEFI用のブートファイル(bootia32.efi)を同梱したMulti-Arch仕様となっています。インストーラ自身がマザーボードのファームウェア仕様を自動検出し、OS本体は高効率な64bitを導入しつつ、ブートローダには32bit用の grub-efi-ia32 を自動構成するため、手動でのバイナリ工作を一切必要とせずに内蔵ストレージからの起動環境が整います。
Debian 13(Trixie)のKernel 6.12系でも動作する可能性は残されていますが、サポート期限の観点から将来的なアップグレードが必要になるリスクを理解した上で、今回は検証に伴うルーター落ちのリスクを完全に排除し、Kernel 6.1 LTSを搭載するDebian 12を選択して確実に安定稼働させる道を選びました。
インストーラメニューでは、描画負荷やメモリ消費を最小化するために通常のテキストモード(Install)を選択し、インストーラ終盤の「ソフトウェアの選択」画面でデスクトップ環境のチェックをすべて外し、標準ユーティリティとSSHサーバのみを選択して導入します。
導入後、Debian特有のセキュリティ仕様により一般ユーザーにsudo権限が付与されていないため、コンソールからroot環境へ移行して権限を付与し、作業効率向上のためデフォルトエディタをvimへ固定しました。
# rootセッションへ移行 su - # sudoパッケージの導入と一般ユーザーへの権限付与 apt update apt install -y sudo vim usermod -aG sudo ユーザー名 # デフォルトエディタをvimに切り替え update-alternatives --config editor exit
Kernel 6.1 LTS環境下では、Ubuntuで発生していたパケット結合エラー(-22)は一切発生せず、RTL8723BSの内蔵Wi-Fiはルーター側の2.4GHz帯へ極めてスムーズにハンドシェイクを完了しました。
Cockpitの導入とlm-sensorsによる熱暴走対策
ディスプレイや入力機器を取り外して運用するため、Webブラウザ経由でシステムを集中管理できる「Cockpit」を導入しました。Cockpitはソケット待機(Socket Activation)によりブラウザから接続された瞬間のみ稼働するため、アイドル時の常駐メモリを浪費しません。
# Cockpitの導入とソケットの有効化 sudo apt update sudo apt install -y cockpit sudo systemctl enable --now cockpit.socket
また、MS-NH1-W10は極小のファンレス・超小型ファン構造であり、放熱性能に余裕がありません。サーマルスロットリングや熱暴走を監視するため、ハードウェアセンサー読み取りツールの lm-sensors と、Cockpit用拡張プラグイン cockpit-sensors を導入してCPU温度を可視化しました。
# ハードウェアセンサー検知ツールの導入 sudo apt install -y lm-sensors sudo sensors-detect --auto # Cockpit用センサープラグインの導入 cd /tmp curl -s https://api.github.com/repos/ocristopfer/cockpit-sensors/releases/latest | grep "browser_download_url.deb" | cut -d : -f 2,3 | tr -d " | wget -qi - sudo dpkg -i cockpit-sensors.deb sudo apt-get install -f -y
# Webブラウザから以下のURLへアクセスすることで、ダッシュボード上にリアルタイムのCPU温度ゲージが統合されます。
https://スティックPCのIPアドレス:9090
内蔵ストレージ単独起動の達成とシステムリソースの実測値
すべての周辺機器を抜き、電源ケーブルのみを接続した状態で再起動試験を実施しました。内蔵eMMCの32bit UEFI領域からDebian 12が手動介入なしで自律起動し、内蔵Wi-Fiを経由して数十秒でネットワークへ接続されることを確認しました。
ブラウザのCockpitダッシュボードおよびコンソール上で測定したシステムリソースの実測データは以下の通りです。
# free -h total used free shared buff/cache available Mem: 1.9Gi 391Mi 839Mi 976Ki 825Mi 1.5Gi Swap: 975Mi 0B 975Mi # df -h / ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mmcblk2p2 27G 2.1G 24G 9% /</pre> # sensors soc_dts1-virtual-0 Adapter: Virtual device temp1: +41.0°C coretemp-isa-0000 Adapter: ISA adapter Core 0: +41.0°C (high = +90.0°C, crit = +90.0°C) Core 1: +41.0°C (high = +90.0°C, crit = +90.0°C) Core 2: +42.0°C (high = +90.0°C, crit = +90.0°C) <pre>
GUI環境を完全に排したことで、OS起動直後のメモリ使用量は約118MB、ストレージ使用量は1.8GBに抑え込まれました。待機時のCPU温度も46〜47℃前後で極めて安定しており、ファンレス運用でも熱的な危険域に入ることなく、安定した常時稼働環境が構築できました。
まとめ
動作が重くサポート期限を迎える初代スティックPC(MS-NH1-W10)を省電力Linuxサーバへ再生しました。Ubuntu 26.04では32bit UEFIとLinux 7.0系カーネルによるWi-Fiドライバの自爆事故に見舞われましたが、Multi-Arch仕様とKernel 6.1 LTSを備えるDebian 12を採用することで諸問題を根本解決しました。内蔵機能のみでの完全自動起動とWi-Fi常時接続を達成し、Cockpitによる温度監視体制のもと、メモリ消費約118MBの超軽量ヘッドレスサーバとして安定稼働を実現しました。

