Ubuntu開発環境を準備する

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

二、gitでOpenWrtソースコードを引っ張ってくる

GitHubのミラーもありますが、できるだけ下記のようにオフィシャルのサイトから最新のソースをクローンしてください。

cd ~
git clone https://git.openwrt.org/openwrt/openwrt.git openwrt

三、Software feedを引っ張ってくる

Feedとは、ファームウェアにインストールされるパッケージをビルドしてインストールする Makefile の集合体です。 Ubuntuのapt updateのコマンドのように、リモートからパッケージの設定やビルドスクリプトを落としてきます。

cd openwrt
./scripts/feeds update
./scripts/feeds install -a

四、ビルドのconfigを作る

OpenWrtをビルドするには、ビルドのconfigファイルが必要です。configファイルにはその設定ファイルがどのルーターに向き、どのパッケージをインストールするかが記載されています。

以下のコマンドでビルドのconfigの作成や編集を行います。

make menuconfig

OpenWrt make menuconfig

  1. Nexx WT3020Hに向けたビルドにするには、最低限以下を選択する:
  • Target System —> MediaTek Ralink MIPS
  • Subtarget —> MT7620 based boards
  • Target Profile —> Nexx WT3020 8M
  1. Web管理画面は欠かせないので、下記の内容も選択してください。
  • LuCI —> Collections —> luci
  • LuCI —> Themes —> luci-theme-bootstrap
  • LuCI —> Modules —> Translations —> English (或いは他の言語)
  1. 最後はSaveを選択し、Exitすればビルドのconfigファイルが作成されます。

五、ビルドする

ビルドのコマンドは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になります。

七、参考サイト

comments powered by Disqus