◯ ちょっと癖のあるLinux、「OpenWrt」でルーターをつくる。
前回紹介したように、Linux(リナックス)ディストリビューションの1つである「OpenWrt(オープンダブルアールティー)」を使えばルーターを手軽に自作できる。ただし一般的なLinuxディストリビューションとは少々導入方法が異なる。どのような手順になるのかを示そう。
ハードウエアは2つ用意した。米Intel(インテル)のCPU(Central Processing Unit:中央演算処理装置)「N100」を搭載した小型パソコン(ミニPC)と、Raspberry Pi(ラズベリーパイ)である。前者はルーター用にするため、LAN(Local Area Network)ポートが2基あるものにした。
OpenWrtは市販の無線LAN(Wi-Fi、ワイファイ)ルーターに組み込むものも用意されているため、ダウンロードすべきファイルにたどり着くまでの階層が深い(図3)。「Downloads」ページから安定版のビルド「Stable Release builds」をクリックすると、これまでの安定版の一覧が表示される(同(2))。
ここから最新の安定版(記事執筆時点では23.05.4)のリンクをクリックし、そこに表示される「targets」をクリック*10する(同(3))。すると対象とする機器が搭載するSoC(System on Chip)やメーカー名などで分類したフォルダーが一覧表示される(同(4))。今回説明しているのはミニPC用なので「x86」を選ぶが、Raspberry Pi用であれば「bcm27xx」を選ぶ。
古いパソコンにも対応している。
x86は32ビットと64ビットの2種類があるので、該当するアーキテクチャーを選ぶ(同(5))。N100は64ビットに対応しているのでここは64をクリックする。
これでようやくイメージファイルに行き着く(同(6))。ここでも幾つかファイルがあるが、「combined」というのが必要なファイルがまとまっているものなのでこれを選択するのが無難だ。なおx86のパッケージには無線LANデバイスのドライバーは入っていないので、無線LANを使う場合は別途入れる必要がある。
combinedをファイル名に含むものでも、「efi」がついていたりいなかったり、「ext4」または「squashfs」と書かれているものもある。まずefiがついているファイルは、BIOS(Basic Input/Output System、バイオス)がUEFI(Unified Extensible Firmware Interface)に対応*11している場合に選ぶ。UEFIは2010年ごろから導入され始めたので、最近のパソコンであればUEFIに対応しているはずだ。パソコンが古いなど、旧来型のBIOSを使っているときはefiがついていないものを選ぼう。
ext4やsquashfsは、OpenWrt動作時に使うファイルシステムを示している。ext4はLinuxで一般的に使われるファイルシステムなので、こちらを選べばよいだろう。squashfsにするとSquashFSというファイルシステムになる。こちらは読み出しのみの圧縮ファイルシステムで、ファームウエアとしてデバイスに書き込む際には有用なものだ。今回のようにパソコンに使うのであればそこまでする必要はないだろう。
起動ドライブに直接書き込む。
次にダウンロードしたファイルを、起動したいデバイスの起動ドライブに書き込む。一般的なLinuxディストリビューションの場合、USB(Universal Serial Bus)ドライブにインストール用のイメージを書き込み、そこにあるインストーラーを起動すると、ホストとなるパソコンにLinuxがインストールされる。
一方OpenWrtの場合は作法が異なり、イメージファイルを起動ドライブに直接書き込む必要がある。従ってミニPCを外付けドライブのないルーター専用アプライアンス的な形で動かしたい場合は、内蔵ドライブを取り出してそこに書き込まなければいけない。
最近のパソコンであれば、たいていはM.2 SSD(Solid State Drive)を搭載している(図4(a))。今回使用したミニPCも同様で、NVM(Non-Volatile Memory)express対応*12のM.2 SSDだった。これを取り外して*13SSD専用USBケースなどに入れてUSBドライブとして利用できるようにすれば、OpenWrtを書き込める(同(b))。
ツールでイメージを書き込む。
イメージを書き込むには専用のツールを使う。ここでは「balenaEtcher*14(バレナエッチャー)」を使った(図5)。同様のツールには「Rufus*15(ルーファス)」などがある。
1点だけ注意すべきところは、balenaEtcherはイメージファイルの圧縮形式として、OpenWrtの配布形式であるgz形式*16に対応していない点だ。gz形式に対応した圧縮展開ツールを使って別途展開*17しておく必要がある。
それ以外はほぼ表示メッセージに従ってボタンをクリックしていくだけで書き込みが完了する。balenaEtcherでは誤って作業中のパソコンのメインドライブを更新してしまわないよう、ドライブの選択時に外付けドライブのみを表示してくれる。こうした親切な設計はありがたい。