goo blog サービス終了のお知らせ 

gooブログはじめました!

やってみる と 意外 と 簡単、ルーター の 自作に挑戦。②

◯ ちょっと癖のある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))。

図3●必要なイメージをダウンロードする
図3、必要なイメージをダウンロードする
OpenWrtは市販のルーターのファームウエアを更新するビルドが多数あるため、探す際は一苦労しそうだ。最初は最新の安定版のビルドを使うとよい。

 ここから最新の安定版(記事執筆時点では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))。

図4●アプライアンス化したい場合は内蔵のSSDに書き込む
図4、アプライアンス化したい場合は内蔵のSSDに書き込む
最近のパソコンはSSDにNVMexpress対応のM.2 SSDを搭載していることが多い(a)。これを取り出してUSB接続できるようにするケース(b)に入れて、OpenWrtを書き込むと単体のアプラアンスにできる。

ツールでイメージを書き込む。

 イメージを書き込むには専用のツールを使う。ここでは「balenaEtcher*14(バレナエッチャー)」を使った(図5)。同様のツールには「Rufus*15(ルーファス)」などがある。

図5●イメージ書き込みツールでSSDやUSBデバイスに書き込む
図5、イメージ書き込みツールでSSDやUSBデバイスに書き込む
ここでは「balenaEtcher」というツールを使ってイメージを書き込んだ。なおこのツールだとgz形式のままでは書き込めないので、ダウンロードしたファイルを展開して「.img」にしておく必要がある。

 1点だけ注意すべきところは、balenaEtcherはイメージファイルの圧縮形式として、OpenWrtの配布形式であるgz形式*16に対応していない点だ。gz形式に対応した圧縮展開ツールを使って別途展開*17しておく必要がある。

 それ以外はほぼ表示メッセージに従ってボタンをクリックしていくだけで書き込みが完了する。balenaEtcherでは誤って作業中のパソコンのメインドライブを更新してしまわないよう、ドライブの選択時に外付けドライブのみを表示してくれる。こうした親切な設計はありがたい。

シンプルでコマンド操作が基本。

 書き込みが完了したら起動だ。内蔵ドライブを取り出して書き込んだ場合はパソコンに戻して設置し直す。外付けUSBドライブにOpenWrtを入れて起動する場合は、BIOSの設定を変えてセキュアブートを無効にして起動デバイスを変更するか、Windows 10/11の設定アプリから「システム」→「回復」を選び、「PCの起動をカスタマイズする」を使ってUSBドライブから起動するように操作する。これでOpenWrtが動くはずだ(図6)。

図6●OpenWrtが稼働したところ
図6、OpenWrtが稼働したところ
GUIなどは用意されていない。ごく軽量なディストリビューションとなっている。
 
*10 「targets」をクリック。
Wi-Fiルーターに組み込むバージョンを探す場合は、「Table of Hardware」または「firmware selector」というリンクをたどると検索できる。前者は件数単位で区切られた一覧表が表示され、条件を入力すると絞り込める。後者はモデル名などを入力して検索する。こちらは日本語化されている。
 
*11 UEFIに対応。
UEFI対応のBIOSを単に「UEFI」と呼び、従来型のBIOSを「BIOS」と呼んで区別するケースも多い。
 
*12 NVMexpress対応。
M.2 SSDにはNVMexpress対応のSSDのほか、mSATA(Serial ATA)対応のものがある。コネクターの形状が異なるので要注意だ。
 
*13 これを取り外して。
動作を確認したいという程度であれば、外付けのUSBドライブに書き込んでUSBドライブから起動できるようにすればよいだろう。
 
*14 balenaEtcher。
公式サイトはhttps://etcher.balena.io/。
 
*15 Rufus。
Microsoft Storeからもダウンロードできる。公式サイトはhttps://rufus.ie/。
 
*16 gz形式。
UNIX系OSでよく使われているgzipコマンドによって圧縮されたファイル形式。
 
*17 別途展開。
今回使用したx86用のイメージ(generic-ext4-combined-efi-img.gz)は展開時にエラーが出たが、使用した範囲では問題なかった。

ランキングに参加中。クリックして応援お願いします!

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「〝 たぬき の 「 スマホ & パソコン 」 ワールド 〟」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事