OpenWrtをビルドするにはLinux環境が必要です。Linuxのディストリビューションは様々ありますが、OpenWrtの開発であればUbuntuを使うのが主流です。
UbuntuにはDesktopとServer、2つのエディションがありますが、Linuxの基礎部分は同じですので、OpenWrtのビルドについてはどちらでも構いません。
OpenWrtビルドに掛かる時間はCPUのスピードに大きく依存するので、頻繁にビルドするなら、低スペックのVPSバーチャルサーバーはお勧めしません。PCの場合はIntel i3以上のCPUを推奨します。
ここでは、ubuntu server 20.04 LTS
でのビルド環境について説明します。
以下のコマンドでUbuntuにOpenWrtビルドするための依存パッケージをインストールします。
sudo apt-get update
sudo apt-get install -y subversion git g++ flex patch libncurses5-dev zlib1g-dev libssl-dev gawk xz-utils unzip libp11-kit-dev libmbedtls-dev
sudo apt-get install -y gettext build-essential autoconf libtool libpcre3-dev asciidoc xmlto libmbedtls-dev libev-dev libudns-dev libsodium-dev
GitHubのミラーもありますが、できるだけ下記のようにオフィシャルのサイトから最新のソースをクローンしてください。
cd ~
git clone https://git.openwrt.org/openwrt/openwrt.git openwrt
Feed
とは、ファームウェアにインストールされるパッケージをビルドしてインストールする Makefile の集合体です。
Ubuntuのapt update
のコマンドのように、リモートからパッケージの設定やビルドスクリプトを落としてきます。
cd openwrt
./scripts/feeds update
./scripts/feeds install -a
OpenWrtをビルドするには、ビルドのconfigファイルが必要です。configファイルにはその設定ファイルがどのルーターに向き、どのパッケージをインストールするかが記載されています。
以下のコマンドでビルドのconfigの作成や編集を行います。
make menuconfig
Target System
—> MediaTek Ralink MIPS
Subtarget
—> MT7620 based boards
Target Profile
—> Nexx WT3020 8M
LuCI
—> Collections
—> luci
LuCI
—> Themes
—> luci-theme-bootstrap
LuCI
—> Modules
—> Translations
—> English
(或いは他の言語)ビルドのコマンドはmake
ですが、詳細の過程を見たい場合は、V=s
のオプションを付けてください。
make V=s
ビルドの時間はCPUのパワーやコア数に依存します。i3以上のCPUなら、通常30分以内に完了します。変更が少ない場合は、2回目以降のビルドは数分しかかかりません。
また、CPUのコア数の範囲内で複数のコアを使うことによって、ビルドの時間を短縮することが可能です。
# 例えば、3つのコアの使用を指定する場合 -j3 をつける
make V=s -j3
ただ、ときに複数コアを使うと、エラーが出る場合があります。その場合は、コアの指定をなしにしてください。
ビルドに成功すると、bin/targets/ramips/mt7620/
のフォルダに下記のファームウェアのファイルが作成されます。
openwrt-ramips-mt7620-nexx_wt3020-8m-squashfs-factory.bin
出荷状態からOpenWrtに入れ替えるためのもの
openwrt-ramips-mt7620-nexx_wt3020-8m-squashfs-sysupgrade.bin
OpenWrt化したルーターを更新するためのもの
できたファイルをNexx WT3020Hルーターに入れれば、最新のOpenWrtになります。