本帖最后由 nzm123 于 2022-3-7 22:13 编辑
2022年隆重更新教程,集合SDK编译ipk 和ImageBuilder打包固件两部分,底部有打包好的dw33d 潘多拉全新固件!
由于潘多拉DomyWifi DW33D 2.4G 5G都可以使用3*3mimo,比开源openwrt WiFi性能更好,但是潘多拉固件太老,许多ipk版本太老。特将利用SDK编译xxrplus 教程简单记录。
主要参考文章:环境系统:Ubuntu 18.04.3 LTS (为了编译成功只能选择Ubuntu 18.XX LTS) 注意:不要在root下编译! 更新依赖 - sudo apt-get update
- sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib linux-libc-dev:i386
复制代码
SDK下载和解压
- wget --no-check-certificate <a href="http://pandorabox.tuuz.cc:8000/pandorabox/19.04/targets/ar71xx/generic/PandoraBox-SDK-ar71xx-generic_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-04-05-git-b4ae2c0bd.tar.xz" target="_blank">http://pandorabox.tuuz.cc:8000/p ... it-b4ae2c0bd.tar.xz</a>
- ​
- tar xvf PandoraBox-SDK-ar71xx-generic_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-04-05-git-b4ae2c0bd.tar.xz
- ​
复制代码
由于解压出来的文件名称比较长,用mv命令修改目录名称为pandorabox。 mv PandoraBox-SDK-ar71xx-generic_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-04-05-git-b4ae2c0bd pandorabox
准备和编译修改download.pl文件中的下载地址 nano /pandorabox/scripts/download.pldownload.pl文件拉到最后,将拉取镜像更新如下: - push @mirrors, 'http://pandorabox.tuuz.cc:8000/sources/';
- push @mirrors, 'http://downloads.pangubox.com:6380/sources/';
- push @mirrors, 'http://sources.lede-project.org';
- push @mirrors, 'http://mirror2.openwrt.org/sources';
- push @mirrors, 'https://sources.openwrt.org';
复制代码
软件包交叉编译 git clone --depth 1 https://github.com/anonymous12357/lede如果地址失效了,自己fork个lean的代码,然后git checkout 到2019.12.4号左右的版本就行。luci,packages都要fork,并且时间尽可能相同,不要fork到带有19.07 openwrt版本的代码。feeds.conf.default修改如下,改用知名的helloworld。 - src-git packages <a href="https://github.com/anonymous12357/packages" target="_blank">https://github.com/anonymous12357/packages</a>
- src-git luci <a href="https://github.com/anonymous12357/luci" target="_blank">https://github.com/anonymous12357/luci</a>
- src-git routing <a href="https://git.openwrt.org/feed/routing.git;openwrt-19.07" target="_blank">https://git.openwrt.org/feed/routing.git;openwrt-19.07</a>
- #src-git telephony <a href="https://git.openwrt.org/feed/telephony.git;openwrt-19.07" target="_blank">https://git.openwrt.org/feed/telephony.git;openwrt-19.07</a>
- src-git helloworld <a href="https://github.com/fw876/helloworld.git" target="_blank">https://github.com/fw876/helloworld.git</a>
复制代码
- cp -r lede/package/lean pandorabox/package/
复制代码
- ./scripts/feeds update -a && ./scripts/feeds install -a
- make menuconfig
复制代码
进入LuCI → Applications,并选上luci-app-ssr-plus。(下面插件自己决定选不选,kcptun不建议)然后save,并esc退出即可。没必要的luci包建议取消选择,因为后续步骤需要下载源码,有的luci包源码已经失效了无法找到了。 预下载软件包国内环境编译下,ubuntu使用proxychains全局代理下载 sudo apt-get install -y proxychains4直接通过 apt 包管理工具就可以安装 sudo apt-get install -y proxychains4安装完之后可以找到/etc/proxychains.conf或/etc/proxychains4.conf文件进行修改,一般请求下翻到最后一段修改代理服务器配置即可。只保留最后一个代理就行,代理到你的代理软件本地端口。 [ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5 127.0.0.1 1080保存后可以通过运行proxychains curl ipinfo.io测试是否为代理地址 下载源码 proxychains make download -j8 V=s-j8指用8个线程下载,这里将数字改为你电脑cpu的线程数+1就行。耐心等待下载完,这样可以避免编译的时候出现网络错误导致浪费大量时间。 如果出错改用make download -j1 V=s,查看没有下载成功的软件包,放到dl目录下,然后再次运行下载命令,该步骤应该会下载6g以上文件,耗时长且容易出错 校验下载的文件的完整性(可选) - find dl -size -1024c -exec ls -l {} \;
复制代码
如果有小于1k的文件,说明下载可能不完整,可以再次make download 。 不过我编译时用此命令检测出三个文件不正常,我下了很多次这三个都存在,但最后却不影响编译,所以如果(小于1k文件)数目多且明显时,可以反复检查。 编译软件包,比如luci-app-ssr-plus ssr-plus依赖于luci的一些组件,故先编译luci-base : - make package/feeds/kenzo/luci-app-ssr-plus/compile -j1 V=s
复制代码
如果编译v2ray包时,出现bash:/.../staging_dir/host/bin/upx: No such file or directory,请参考用OpenWrt单独编译ipk插件 编译途中发现错误原因是没有下载完全软件包办法如果运行上述命令最终出现error,且原因提示没有对应软件包造成,请运行下面命令: rm -rf ./tmp ./build_dir
make clean然后 - proxychains make download -j1 V=s
复制代码
确保最后没有出现错误后,再将pandorabox原始SDK包中的./build_dir复制到被删除的对应文件夹内 再次运行 - make package/feeds/kenzo/luci-app-ssr-plus/compile -j1 V=s
复制代码
软件包安装 opkg install *.ipk*:你的软件包名称。 如果无法安装,需要将编译出的ipk一个个自己安装
Image Builder 编译 PandoraBox 固件 wget --no-check-certificate http://pandorabox.tuuz.cc:8000/p ... it-b4ae2c0bd.tar.xz
​
- tar xvf PandoraBox-ImageBuilder-ar71xx-generic.Linux-x86_64-2019-04-05-git-b4ae2c0bd.tar.xz
复制代码
由于解压出来的文件名称比较长,用mv命令修改目录名称为ImageBuilder。 - mv PandoraBox-ImageBuilder-ar71xx-generic.Linux-x86_64-2019-04-05-git-b4ae2c0bd.tar.xz ImageBuilder
复制代码
查看可编译的固件型号及其包含的软件包:
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参考编译教程 https://openwrt.org/zh/docs/guid ... ftware/imagebuilder
实际编译过程
- sudo add-apt-repository ppa:longsleep/golang-backports
- sudo apt update
- sudo apt install golang-go
复制代码
如果下边实际编译时出现缺少软件,请自己查找安装命令
可以使用以下命令获取路由器设备上当前安装的插件列表: - echo $(opkg list-installed | sed -e "s/\s.*$//")
复制代码
把SDK编译出来ipk3个文件包直接复制到ImageBuilder packages/目录下 - make image PROFILE="domywifi-dw33d" PACKAGES="wget luci-app-ssr-plus luci-i18n-ssr-plus-zh-cn luci-app-adbyby-plus luci-i18n-adbyby-plus-zh-cn luci-app-vlmcsd luci-i18n-vlmcsd-zh-cn -mwan3 -arpbind" FILES="files"
复制代码
清理编译如果重新编译需要清理临时构建文件和生成的固件,请使用该 make clean 命令.
|