(失敗) MiWiFi OpenWrt用ipkgパッケージを作ってみる

Xiaomi 無線LAN親機(Wi-Fiルーター) 伝送速度1167Mbps デュアルバンド 11ac/n/a/g/b Mi WiFi mini [並行輸入品]

MiWiFiの標準ファームウェアにもopkgコマンドがありました。言語パッケージを作成してインストールすれば英語化できるか?(失敗編2)


OpenWrtでは、opkgコマンドを使ってipkパッケージをインストールして機能を追加できます。
MiWiFiにも標準ファームウェアにopkgコマンドがあったので前回取得した言語ファイル(base.en.lmo)をパッケージ化してインストールできるか試してみました。
パッケージの作成はUbuntuを使って行いました。
ipkg-utilsのインストール

Googleで検索すると出てくるipkg-utils-1.7.tar.gzをダウンロードしてインストールします。

$ tar xvzf ipkg-utils-1.7.tar.gz
$ cd ipkg-utils-1.7
$ make
$ sudo make install
/usr/local/bin/ipkg-buildの159行目を修正
outer=ar
outer=tar

パッケージの作成

ipkパッケージはtar.gz圧縮ファイルです。
ここにあるipkパッケージからベースになりそうなものをダウンロードして編集しました。
今回はluci-i18n-base-enを参考にしました。

$ tar xvzf luci-i18n-base-en_git-16.068.36122-ac9b31c-1_all.ipk
./debian-binary
./data.tar.gz
./control.tar.gz
展開したものを参考に作成していくと以下のようなフォルダ構成になりました。
luci-i18n-base-en
├── CONTROL
│   ├── control
│   ├── postinst
│   ├── postinst-pkg
│   └── prerm
└── data
    ├── etc
    │   └── uci-defaults
    │       └── luci-i18n-english
    └── usr
        └── lib
            └── lua
                └── luci
                    └── i18n
                        └── base.en.lmo
「control」フォルダは大文字でないとビルドできないので注意
「control」ファイルの内容に以下を加えないとエラーになりました。また、「Depends:」の行はインストールに必要な他のパッケージ名を入力します。(要らなそうなので削除)
Maintainer: <作者名>
Priority: optional

ipkg-buildでビルド

次のコマンドでビルドしてエラーが出なければ完成

$ ipkg-build -o root -g root luci-i18n-base-en

MiWiFi nanoにインストールしてみる

MiWiFiにtelnetでアクセス後、
作成したluci-i18n-base-en_miwifi.2.2.100_all.ipkをインストールしてみます。
(scpコマンドでのファイル転送方法は過去記事参照)

# cd /tmp
# scp test@192.168.31.206:/home/test/luci-i18n-base-en_miwifi.2.2.100_all.ipk /tmp/
# opkg install /tmp/luci-i18n-base-en_miwifi.2.2.100_all.ipk
root@XiaoQiang:/tmp# opkg install /tmp/luci-i18n-base-en_miwifi.2.2.100_all.ipk
Installing luci-i18n-base-en (miwifi.2.2.100) to root...
Configuring luci-i18n-base-en.
/data//usr/lib/opkg/info/luci-i18n-base-en.postinst: line 4: default_postinst: not found
Collected errors:
 * pkg_run_script: package "luci-i18n-base-en" postinst script returned status 127.
 * opkg_configure: luci-i18n-base-en.postinst returned 127.
インストール出来ない…

MiWiFiに含まれる/lib/functions.shにdefault_postinstが無いことが原因か???


つづく
MiWiFi mkxqimageコマンドを使ってファームウェアを編集できる!!



0 件のコメント :