docker を使うと 簡単にOS環境を準備できるので、比較的楽に imagebuilder 環境を作ることができます。
OpenWrt Projectが配布している docker imageもあるのですが今回は自分で環境を作るアプローチで行きます。
※要 Docker Hubアカウント
docker の準備
ホスト側準備
作業用ディレクトリを準備します。
mkdir mnt
docker image 取得
docker用としてパッケージングされた ubuntu 18.04のimageをdocker hubから pullします。
docker pull ubuntu:18.04
コンテナ起動と必要コマンド準備
「IMAGEBUILDER」というコンテナ名でubuntuを起動します。
docker run -d -it --name IMAGEBUILDER -v `pwd`/mnt:/mnt -w /mnt ubuntu:18.04 bash
起動したコンテナで apt-get updateとimagebuilderの前提コマンドなどをインストールします。
docker exec IMAGEBUILDER apt-get update
docker exec IMAGEBUILDER apt-get install -y build-essential libncurses5-dev zlib1g-dev \
gawk git gettext libssl-dev xsltproc wget unzip python curl
imagebuilderの取得と展開
コンテナ内からOpenWrt公式のimagebuilder をダウンロードして展開させます。(以下は 19.07.1、bcm53xxの例)
docker exec IMAGEBUILDER bash -c "curl https://downloads.openwrt.org/releases/19.07.1/targets/bcm53xx/generic/openwrt-imagebuilder-19.07.1-bcm53xx.Linux-x86_64.tar.xz | tar Jxv -C /mnt"
コンテナ内にshellで接続
docker exec -it IMAGEBUILDER bash
あとは通常のlinuxでの作業同様に、 /mnt/openwrt-imagebuilder…以下に cd して makeコマンドでimageを生成してください。
マッピングしているのでホストOS側の mnt の中に imageファイルが生成されます。
作業後の後片付け
docker コンテナの状態を確認し、停止させる
docker ps -a
docker stop IMAGEBUILDER
docker ps -a
停止したdocker コンテナの削除
docker ps -a
docker rm IMAGEBUILDER
docker ps -a
pullしたubuntu:18.04 imageが不要なら削除する
docker images
docker rmi ubuntu:18.04
docker images
最終更新:2020年02月11日 15:17