ImageBuilder製作k2p潘多拉/PandoraBox韌體
基於ubuntu 18.04,安裝依賴:
apt install build-essential libncurses5-dev zlib1g-dev gawk gitlibssl-dev wget unzip python ocaml-nox help2man texinfo yui-compressor
下載最新版本18.10的ImageBuilder:
https://downloads.pangubox.com/pandorabox/18.10/targets/ralink/mt7621/PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64.tar.xz tar Jxf PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64.tar.xz cd PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64
檢視可編譯的韌體型號及其包含的軟體包:
make info
製作韌體:
#info顯示的所有機型韌體 make image #僅製作k2p韌體 make image PROFILE="k2p" #安裝額外的軟體包,自編譯軟體先把軟體放到packages/目錄下 make image PROFILE="k2p" PACKAGES="wget" #新增files目錄內檔案到韌體內,如files/etc/config/network網路配置檔案 make image PROFILE="k2p" FILES="files" #檢視更多選項 make help
開始使用預設配置製作k2p韌體:
make image PROFILE="k2p"
遇到以下錯誤:
regexp could be something like 'pkgname*' '*file*' or similar e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*' Makefile:140: recipe for target 'package_install' failed make[2]: *** [package_install] Error 1 make[2]: Leaving directory '/tmp/PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64' Makefile:110: recipe for target '_call_image' failed make[1]: *** [_call_image] Error 2 make[1]: Leaving directory '/tmp/PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64' Makefile:196: recipe for target 'image' failed make: *** [image] Error 2
因為在Makerfile 144行要預先安裝kernel檔案,而package沒kernel軟體包,下載kernel:
wget https://downloads.pangubox.com/pandorabox/18.10/targets/ralink/mt7621/packages/kernel_3.14.79-1_mipsel_1004kc_dsp.ipk -P packages/
再次執行又出現錯誤:
Collected errors: * opkg_install_cmd: Cannot install package dosfsck. * opkg_install_cmd: Cannot install package fkmod-leds-gpio. * opkg_install_cmd: Cannot install package kmod-ipt-nathelper. * opkg_install_cmd: Cannot install package mkdosfs. * satisfy_dependencies_for: Cannot satisfy the following dependencies for ralink-utils: *kmod-ipt-nathelper-extra * Makefile:140: recipe for target 'package_install' failed make[2]: *** [package_install] Error 255 make[2]: Leaving directory '/tmp/PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64' Makefile:110: recipe for target '_call_image' failed make[1]: *** [_call_image] Error 2 make[1]: Leaving directory '/tmp/PandoraBox-ImageBuilder-ralink-mt7621.Linux-x86_64' Makefile:196: recipe for target 'image' failed make: *** [image] Error 2
因為新版的openwrt將kmod-ipt-nathelper-extra 更改為kmod-nf-nathelper-extra,而潘多拉的源package沒修改依賴,使用以下指令碼在製作時更新源後修改軟體依賴項kmod-ipt-nathelper-extra為kmod-nf-nathelper-extra:
#!/usr/bin/bash for file in `ls dl/18.10*`;do echo $file; mv $file $file.gz gunzip $file.gz sed -i 's/kmod-ipt-nathelper-extra/kmod-nf-nathelper-extra/g' $file gzip -9 $file mv $file.gz $file done sed -i 's/kmod-ipt-nathelper/kmod-nf-nathelper/g' include/target.mk
將以上儲存為fix.sh並修改Makefile檔案在122行$(MAKE) package_install前插入:
$(TOPDIR)/fix.sh
再次執行又遇到以下錯誤:
Collected errors: * opkg_install_cmd: Cannot install package dosfsck. * opkg_install_cmd: Cannot install package fkmod-leds-gpio. * opkg_install_cmd: Cannot install package mkdosfs.
因為上面這3個軟體有的改名,有的名字寫錯,修復下:
sed -i 's/fkmod-leds-gpio/kmod-leds-gpio/g' .profiles.mk sed -i 's/mkdosfs dosfsck/dosfstools/g' .profiles.mk
再次執行終於製作完成k2p韌體,將製作的韌體scp到路由/tmp/目錄開始刷機:
scp bin/targets/ralink/mt7621/PandoraBox-ralink-mt7621-k2p-2018-10-26-git-85c67caa2-squashfs-sysupgrade.bin 192.168.168.1:/tmp/
k2p路由內使用sysupgrade命令刷機:
sysupgrade -n -v /tmp/PandoraBox-ralink-mt7621-k2p-2018-10-26-git-85c67caa2-squashfs-sysupgrade.bin
標籤:openwrt,ofollow,noindex" target="_blank">k2p ,pandorabox ,潘多拉