OpenWRTをDockerでビルドしてみよう　②OpenWRTビルド編

[前回](https://qiita.com/satotaka0409/items/2d4cd7307287833a8a77)のビルド環境構築編の続きです。
# make menuconfig
Docker Linux での作業になるので、VS Code ターミナルから　**./DockerRun.cmd** でDockerコンテナに入ります。
Linux のシェルが起動したら
```shell
cd openwrt
make menuconfig
```
そうすると、以下の設定項目が現れます。
![{245C37E4-8345-4D8E-B807-BB25671C337B}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/d44bfeb3-d48b-5e63-1dd4-98ad43c15caf.png)
まずは、ターゲットとなるルーターの仕様がわからないと始まりません。
そこで参考になるのが、以下のサイトです。
https://openwrt.org/toh/views/toh_extended_all
![{A65A4251-CE85-493B-AFCB-77AD8167A12E}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/b6c4ae7d-6ad5-f2cd-e3ff-7e122819d639.png)
Modelにターゲットの機種名を入力すると、そのルーターで使われているSoCやWifiチップ、フラッシュROMの容量、RAMの容量などがわかります。もっと詳しく見たいときは、一番右までスクロールして、**Edit** をクリックします。自分の場合は、たまたま転がっていた**ELECOM WRC-2533GST2**を表示しています。
ここで重要なのは以下のTarget,CPUの部分です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/5c31b713-805f-5f92-ca19-80bfb9ebd205.png)
**ramips**はMIPSアーキテクチャのSoCが使われていることを表します。
CPUは**MediaTek MT7621A**となっています。
それを踏まえて設定していくと**Target System - Subtarget - Target Profile**は以下となります。
この辺は、自分が使うルーターによって違ってきますので、慎重に設定してください。
![{86002CAF-5DF0-41F0-BC2B-A9005E756FDE}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/18441386-fbcb-16a7-b193-c79f33b31f3f.png)
# LuCI
次に設定が必要なものとして、**LuCI**があります。
ルーターの設定で必要なGUIは、OpenWRTではLuCI(ルーシー)というモジュールで実現しています。
無くてもルーターとしては機能しますが、どういう設定で動いているか、グラフィカルな設定画面があれば色々と便利です。導入するとこんな風にログイン画面が表示されるようになります。
![{C3A445D4-48A7-4864-8E5B-C91D3E87DC87}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/81efa317-bf7b-9604-a0e2-7706ac642d2d.png)
コンフィグでは以下のメニューをたどって設定します。
![{F06D6F34-C11E-45D8-9C69-20280025884C}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/d8e98cb7-000c-c37b-59d2-ca1669935340.png)
![{C2ABC66A-7E25-4B0E-AE87-C66ED10057A7}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/99c46159-ffbc-570d-0486-4edf10eb7020.png)
![{B2584E9B-506D-4A90-A7BC-9BF4B34E272B}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/eaff9215-3c53-9d30-3158-538110948318.png)
変更する箇所まで上下カーソルキーで移動して、**y**キーで設定変更します。
必ず*の状態にしてください。Mの状態ではモジュールが組み込まれません。

最低限の機能としては、以上で終了です。
ESCを何度か押すと、以下のメニューが現れますので、Yesの方にカーソルを合わせて[Enter]で終了してください。
![{99B18A51-91A5-46C2-AAA5-4F303CE3A967}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/7352e7b3-e548-8d4a-6fc8-86518d5df4b3.png)
# ビルドする
この状態で、一応ビルドすることができます。
この状態でビルドするとサイトからダウンロードしてきたファームと変わらない状態ですが、とりあえず試してみましょう。コンソールから
```shell
make -j4
```
とタイプします。**-j4**はスレッド数です。スレッドが大きいCPUの場合は、**-j8**など大きな値でも大丈夫です。
ビルドには数十分から1時間近くかかる場合があります。これはCPU性能に依存するので、なんとも言えません。ビルドが無事終了すると、Windows版ですと、以下のフォルダに格納されます。
**\\\\wsl$\docker-desktop-data\data\docker\volumes\\[dockerid]\\_data\openwrt\bin\targets\ramips\mt7621**
***※2025/04/17 Dockerをv4.40に上げたところ、上記フォルダ位置が変更になっています。***
***\\\\wsl.localhost\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes\\[dockerid]\\_data\openwrt\bin\targets\ramips\mt7621***
ここで
**ramips**
**mt7621**
などは、ビルドするターゲットによって変わってきます。
該当フォルダの中身を見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/1c10536b-2ada-19ca-0e8a-cde5deda1a6e.png)
**sysupgrade.bin**は、一度OpenWRT化したルーターをバージョンアップさせる場合に使います。**factory.bin**は、メーカーファームからOpenWRT化する場合に使います。
すでにOpenWRT化してあるはずですから、**sysupgrade.bin**を読み込ませます。
OpenWRTのLuciメニューから
![{A6FF6976-29DA-4F3D-86C5-4A51AE43C13C}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/e25cea4f-cab5-3283-1d0a-fc86863cda66.png)
**System - Backup / Flash Firmware**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215200/1b4aab2c-3e80-3517-2272-7916263b76f6.png)
ここからビルドしたファームウエアを指定してやると、新ファームに書き換わりブートします。
次回はどのモジュールを組み込むかを検討する必要があるので、ビルドは少し横に置いてネットワーク環境の解説をしたいと思います。
[次の記事へ](https://qiita.com/satotaka0409/items/93e91ccb92e553081b86)