はじめに
openwrt24.10.0-rc2から24.10.3にアップグレードしたら、パッケージレポジトリ から、asterisk が消えていました。
なので、自前でビルドして入れることにしました。
追記 復活したようです。(https://downloads.openwrt.org/releases/24.10.3/packages/x86_64/telephony)
ビルド環境の準備
私のOpenWrtはN100なミニPCで動いているので、ターゲットはx86/64になります。ホストはFedora42です。
Build system setup にしたがって、ホストにビルドで必要なパッケージをインストールします。
OpenWrt-SDKを準備
OpenWrt-SDK をダウンロードします。
tar -Izstd -xvf openwrt-sdk-24.10.3-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst
で、展開し、できたフォルダに移動します。
パッケージMakefile群の準備
scripts/feeds update -a
で、すべてのパッケージMakefileをダウンロードします。
scripts/feeds install asterisk
で、asteriskのビルドに必要なパッケージへのシンボリックリンクがpackageフォルダに作られます。
make menuconfig
make menuconfig
して、Network->Telephonyにasteriskとサブモジュールが有効になっていることを確認します。Saveして終了します。
ビルド
make package/asterisk/compile
で、ビルドを開始します。
終了したら、bin/packages/x86_64フォルダにパッケージが出来ています。
ローカルリポジトリの作成
出来たパッケージをターゲットOpenWrt機にコピーして、ターゲットから見たローカルリポジトリを作成します。
まず、パッケージに署名用の鍵を作ります。
staging_dir/host/bin/usign -G -p public.key -s key-build
で、鍵ペアを作ります。秘密鍵は、key-buildという名前にします。
次に、リポジトリのインデクスをつくります。
make package/index
で、出来ます。
ターゲットにpublic.keyとbin/packages/x86_64/telephonyフォルダーをコピーします。
コピーしたtelophonyフォルダーは、/root/packagesフォルダーを作り、/root/packages/telephonyへ移動します。
ターゲット上で、
opkg-key add public.key
とし、公開鍵を登録します。
/etc/opkg/customfeeds.confに
src/gz asterisk file:/root/packages/telephony
を加えます。
opkg update
して、
opkg list|grep asterisk
で、asterisk関連のパッケージがあることを確認します。
ターゲット上でインストール
これで、opkg installでasteriskをインストールできるようになりました。