by Hugo Londoño
イギリスのエネルギー企業でエンジニアとして働くアレックス・ヘイドック氏が、自身のブログが2006年に発売された任天堂の家庭用ゲーム機「Wii」でホストしていることを明らかにしました。また、Wiiでブログをホストする手順について解説しています。
This blog is hosted on a Nintendo Wii
https://blog.infected.systems/posts/2025-04-21-this-blog-is-hosted-on-a-nintendo-wii/
実際に上記のブログ記事にアクセスすると、「このメッセージをご覧になっている場合、以下の実験はまだ進行中です。このページは本物のWiiから提供されています」というメッセージが表示されます。
また、メッセージにあるライブステータスのページにアクセスしたところ、以下のようなステータス画面が表示されました。
ヘイドック氏は「一般的な用途ではない機器で汎用(はんよう)OSを動かすこと」を趣味としており、過去にはPlayStation 3でYellow Dog Linuxを動かしたこともあるとのこと。ゲーム機でOSを動かすという例は他にもPSP LinuxやDreamcast Linuxなどの例がありますが、いずれにしても「誰かが一度だけ動作させたものの、長期的なサポートがアップストリームに取り込まれず、時代遅れになっている」とヘイドック氏は指摘しています。
UNIX系のフリーOSであるNetBSDはPC/AT互換機だけではなく、さまざまなコンピューターで動作するのが特徴。公式サイトではNetBSDが動作するPowerPC搭載機の例として「Wii」の名前が記されています。このNetBSDの安定版はバージョン10.1が2024年12月にリリースされていることから、Wii上で実際に本番環境を構築することができるのではないかとヘイドック氏は考えたとのこと。
ヘイドック氏は計画を実行に移すため、チャリティーの中古販売イベントで中古のWiiをゲット。Wiiに搭載されているCPUは、Appleが1998年に発売した初代iMacにも搭載されていたPowerPC G3系列の「Broadway」で、同等品であるPowerPC 750CLと比べて計算性能はかなり制限されています。しかし、ヘイドック氏は「同じPowerPC G3系列のRAD750はジェイムズ・ウェッブ宇宙望遠鏡にも搭載されているのですから、静的なウェブサイトのホストくらいはできるはずでしょう」とコメントしています。
WiiにNetBSDをインストールするためには、まずWiiを改造する必要があります。かつては「ゼルダの伝説 トワイライトプリンセス」のセーブデータを使ったバッファオーバーフローを悪用する方法があったそうですが、今は「Wilbrand」と呼ばれるエクスプロイトが一般的だとのこと。WilbrandはWiiの一機能である「Wii伝言板」でSDカードからメッセージを保存・取得できる脆弱(ぜいじゃく)性を利用して未署名のコードを実行するというもので、このエクスプロイトを利用して、自作ツールを起動できる非公認のWiiチャンネル「HomebrewChannel」をインストールする準備を整えます。
次に、NetBSDのイメージを書き込んだSDHCカードを用意し、HomebrewChannelから起動します。SDカードへのイメージの書き込みにはRaspberry Pi Imagerを使用したとのこと。
NetBSDが起動したら、リモートでシステムを管理するためにSSHを設定。SSHデーモンは最初から実行されているため、rootユーザーのパスワードを設定し、sshd_configに「PermitRootLogin yes」を追加するだけ。
インストール後、/etc/ifconfig.axe0を編集して静的ネットワーク設定を行い、ホストを再起動。その後、NetBSDのパッケージマネージャー「pkgin」をインストールして、リソースが厳しい環境に適した軽量ウェブサーバー「lighttpd」をインストールしたら有効化して起動します。ヘイドック氏のブログ自体は静的なページで構成されているので、ファイルをrsyncで転送するだけで標準HTTP経由でブログをホストすることができるようになりました。
ヘイドック氏によれば、TLSの暗号化処理がWiiの性能だと負担が大きかったため、Caddyをリバースプロキシとして前段に置き、TLS終端の暗号化処理をオフロードする構成にしたとのこと。ただし、キャッシュは無効にして、全てのリクエストを直接Wiiが処理するようにしているそうです。また、システム状態監視のために、15分ごとに基本的なシステム統計情報をHTML形式で出力する単純なシェルスクリプトをcrontabに設定しました。
システムリソースを最適化するため、不要なサービスは無効化。特にntpdがメモリ使用率15%を占めていたためntpdを一度無効化したものの、ゲーム機が古いのかNetBSDの問題なのか、時計のずれが発生してしまったため、毎時42分にntpdを一回だけ実行するように設定しています。
ヘイドック氏は「今回の挑戦は予想よりもずっとうまく、簡単に作業できたと感じていますが、いくつかの欠点もあります。NetBSDを再起動するとNetBSDだけでなくWiiも再起動してしまうため、カーネルパッチやシステムアップグレード後はWiiメニューに戻ってしまいます。そのため、Wiiリモコンとセンサーバーが本番インフラの重要なコンポーネントになります」とコメント。消費電力については、アイドル時で約18W、月に13.2kWhで、電気代の高いイギリスでも主要なクラウドプロバイダーが提供する仮想プライベートサーバーよりも安く維持できると評価しています。
この記事のタイトルとURLをコピーする