インターネットには、metarouterを介してMikrotikデバイスでopenwrtを実行することに関する多くの記事があります。 それらはすべて、アセンブリ用のプロセッサ(RB400、RB700シリーズ、RB900シリーズ、RB2011ボード、RB1000、RB1100、RB1100AHおよびRB800)をサポートする公式パッチを含むリビジョンr29684を使用します。 それ以降のバージョンでは、このパッチは適切ではありません。 その結果、すべてのopenwrtパッケージは非常に古く、更新されたソフトウェアを構築することはほとんど不可能です。 また、openwrtの新しいバージョンでは、多くの新しいパッケージとライブラリが登場しています。
インターネットを検索した後、誰もがメタルーターの下で新しいopenwrtを実行することができましたか、私は正しいメモに出会いました。 この記事はその内容を完全にコピーするだけでなく、パッケージを組み立てるための小さなボーナスもあります。 始めましょう(debian \ ubuntuシステムの例):
作業に必要なパッケージを配置します。
$ sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc zip
アセンブリ用のディレクトリを作成します(約12ギガバイトの空き領域が必要です)。
$ mkdir openwrt & cd openwrt
openwrtのパッチとopenwrtソース自体をダウンロードし、パッチを適用します。
$ wget http://openwrt.naberius.de/barrier_breaker/mr-mips/openwrt_metarouter_1407.patch $ git clone git://git.openwrt.org/14.07/openwrt.git barrier_breaker $ cd barrier_breaker $ patch -p1 -i ../openwrt_metarouter_1407.patch
画像を設定しましょう:
$ make defconfig $ make prereq $ make menuconfig
次に、ターゲットシステムで、Mikrotik MetaROUTER MIPSプロセッサのタイプを選択します。 また、イメージに含まれる追加のパッケージを調べたり、不要なパッケージを削除したりすることもできます。 組み立てを開始して、散歩に出かけることができます。
$ make -j $(nproc)
ビルドが成功すると、既製のイメージbarrier_breaker / bin / mr-mips / openwrt-mr-mips-rootfs.tar.gzが表示されます
完成したイメージをUSBフラッシュドライブにロードし(組み込みまたは外部のいずれかを使用できます)、mikrotik、mikrotik Webインターフェイスに移動し、タブ、メタルーターでイメージのインポートを選択し、新しく作成したイメージと必要なRAMの数を指定します。 以上です。 仮想マシンを起動し、イメージのコンソールに移動して設定を続行します(設定の詳細な説明はインターネットで確認できるため、重複しません)。
Openwrtをビルドして実行する
メインイメージの準備ができ、bin / mr-mips /にあります。追加のパッケージの作成を開始できます。 コンフィギュレーターメニューから、目的のソフトウェアを選択し、たとえば、Asterisk11をインストールします。
$ ./scripts/feeds update -a $ ./scripts/feeds install -a $ make menuconfig
追加パッケージの組み立て
インストールするパッケージの準備ができたら、お茶を飲んでアセンブリを開始できます(エラーとアセンブリプロセスを確認するには、パラメータV = sで実行します)
$ make -j $(nproc)
追加のパッケージがbin / mr-mips / packages /フォルダーに表示されます-インストールするには、それらをシステムにコピーし(scpなどを使用)、opkg install name_paccket.ipkを実行します。
リポジトリからパッケージをインストールできるため、この手順はオプションです。 なぜパッケージを収集する必要があるのですか? 答えは簡単です。必要なパッケージがリポジトリにない場合、または特定のパッケージに追加のモジュールが必要な場合です。
リポジトリにないアスタリスク用のモジュールを構築してみましょう。 openwrtで実行されているアスタリスクを議論するフォーラムでは、app-queuesのモジュールがないという苦情を見つけることができます。 集めてみよう。 正しいオプションは、openwrtマニュアルを読んでビルドすることです。 私は試してみることにし、すぐに/barrier_breaker/package/feeds/telephony/asterisk-11.x/Makefileメイクファイルに登りました。そこで、最後にモジュールを構築するための行を見つけました。
$(eval $(BuildAsterisk11Module、pbx-lua、Luaを呼び出し、AsteriskにLuaリソースを提供、+ libpthread + libc + liblua、/ etc /アスタリスク/extensions.lua、extensions.lua、pbx_lua、))
組み立てられたモジュールの選択に関するコメント
#パラメータ:
#1-パッケージのサブネーム
#2-パッケージのタイトル
#3-モジュールの説明
#4-モジュールの依存関係
#5-複数のconffileへのフルパス
#6-confファイル
#7-モジュールファイル
#8-サウンドファイル
#9-バイナリファイル
#1-パッケージのサブネーム
#2-パッケージのタイトル
#3-モジュールの説明
#4-モジュールの依存関係
#5-複数のconffileへのフルパス
#6-confファイル
#7-モジュールファイル
#8-サウンドファイル
#9-バイナリファイル
コメントは各行を説明しています。 app-queueモジュールにはサードパーティの依存関係がないため、この行は非常にコンパクトです。
$(eval $(call BuildAsterisk11Module,app-queue,Distribution queue call to agent,Each dynamic agent in each queue is now stored in the astdb,,,,app_queue,))
他のモジュールのmakefileに追加し、モジュールの構築を開始します。
$ make menuconfig $ make -j $(nproc)
アセンブリにモジュールを含めます
すべてが順調に進んだ場合、収集したばかりのパッケージを配信することになります。 既製の画像は、 パッチの作成者から取得できます。 以上です。