本人是菜鸟。这个是本人自己看网上教程和自己总结书写的一个教程。如果你是和我一样的菜鸟可以参考一下。本人在wsl的ubuntu18环境下编译成功了6次了。所以你使用应该也是没有问题的,当然也有很多可以改进的地方,希望得到大佬的支持和指点。谢谢。
授人以鱼不如授人以渔,希望墙外可以给你看到不一样的世界。
文章参考:来源
先安装运行环境。自己去看openwrt官网,所有编译环境全局科学上网,全局科学上网,全局科学上网
一.首次编译
#非root账号下载sdk
wget:....
解压sdk
进入SDK根目录
cd sdk
添加包含 passwall 的 feed (在SDK根目录)
echo "src-git passwall https://github.com/xiaorouji/openwrt-passwall" >> feeds.conf.default
因为部分软件包需要用到 upx,而官方 SDK 镜像中没有包含,所以自行安装 (在SDK根目录操作,只需要一次)
sudo apt-get update
sudo apt-get install upx -y
cp /usr/bin/upx staging_dir/host/bin
cp /usr/bin/upx-ucl staging_dir/host/bin
更新所有 feeds (在SDK根目录)
./scripts/feeds update -a
这里因为 Xray 使用的 golang 版本较新而 SDK 中依赖的 golang 版本较旧,所以替换了旧的,用了 21.02 的 golang 配置 (在SDK根目录进行,再次编译这一步可以不操作)
pushd feeds/packages/lang
rm -rf golang && svn co https://github.com/openwrt/packages/branches/openwrt-21.02/lang/golang
popd
在SDK根目录,下install
./scripts/feeds install luci-app-passwall
make defconfig
编译
#这个是清洁编译
make package/luci-app-passwall/{clean,compile} -j4
#这个是可以看到具体流程的可以看到错误
make package/luci-app-passwall/compile V=99
生成 index 和签名 (可以操作)
make package/index
二.更新以后再次编译
./scripts/feeds update -a
在SDK根目录,下install
./scripts/feeds install luci-app-passwall
make defconfig
编译
#这个是清洁编译
make package/luci-app-passwall/{clean,compile} -j4
#这个是可以看到具体流程的可以看到错误
make package/luci-app-passwall/compile V=99
有几个问题。
第一个编译都会有大量的其他无关ipk生成。可以只编译相关的ipk吗?
我以前编译trojan是这样操作的,但是还是有其他无关ipk生产
进入make menuconfig
make menuconfig
进入全局设置点掉前面三个的[*],如下面所示,然后保存,退出
[ ] Select all target specific packages by default
[ ] Select all kernel module packages by default
[ ] Select all userspace packages by default
[*] Cryptographically sign package lists (NEW)
进入network———下拉找到[ ]trojan,然后选择[*] 退出保存
编译固件ipk
make package/trojan/compile V=99
第二是如果源码更新以后,我这边再次编译有些ipk版本会改变,有些没有,那么在更新是不是需要把所有ipk都要重新上传还是只需要更新更新了版本的,好像 luci-app-passwall每次都会更新即使版本没有改变,还有问一下如果实际源码已经跟新了,但是软件版本好没有更新,重新安装配置文件会有改变或者重置吗!
第三是怎么优化一下编译。
二.安装 passwall软件
先更新软件源,移除dnsmasq,安装dnsmasq-full,luci-compat等依赖包
opkg update
opkg remove dnsmasq
rm -rf /etc/config/dhcp
opkg install dnsmasq-full ipset iptables-mod-nat-extra openssl-util curl iptables-mod-tproxy iptables-mod-iprange ip-full luci-compat
根据luci-app-passwall需要的软件依此安装下面软件包
* pkg_hash_check_unresolved: cannot find dependency **dns2socks** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **ipt2socks** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **microsocks** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **tcping** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **chinadns-ng** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **pdnsd-alt** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **shadowsocks-rust-sslocal** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **shadowsocksr-libev-ssr-local** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **shadowsocksr-libev-ssr-redir** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **simple-obfs** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **trojan-plus** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **v2ray-core** for luci-app-passwall
* pkg_hash_check_unresolved: cannot find dependency **v2ray-plugin** for luci-app-passwall
将编译好的passwall文件夹内的ipk(除去luci-app-passwall和luci-i18n-passwall-zh-cn)上传到路由器的tmp文件夹内,然后安装
opkg install /tmp/*.ipk
最后上传和安装
luci-app-passwall和luci-i18n-passwall-zh-cn
******注意一点开启passwall后要在访问控制内部把路由器本身的UDP 代理模式设置成不代理
本人是菜鸟。这个是本人自己看网上教程和自己总结书写的一个教程。如果你是和我一样的菜鸟可以参考一下。本人在wsl的ubuntu18环境下编译成功了6次了。所以你使用应该也是没有问题的,当然也有很多可以改进的地方,希望得到大佬的支持和指点。谢谢。
授人以鱼不如授人以渔,希望墙外可以给你看到不一样的世界。
文章参考:来源
先安装运行环境。自己去看openwrt官网,所有编译环境全局科学上网,全局科学上网,全局科学上网
有几个问题。
第一个编译都会有大量的其他无关ipk生成。可以只编译相关的ipk吗?
我以前编译trojan是这样操作的,但是还是有其他无关ipk生产
第二是如果源码更新以后,我这边再次编译有些ipk版本会改变,有些没有,那么在更新是不是需要把所有ipk都要重新上传还是只需要更新更新了版本的,好像 luci-app-passwall每次都会更新即使版本没有改变,还有问一下如果实际源码已经跟新了,但是软件版本好没有更新,重新安装配置文件会有改变或者重置吗!
第三是怎么优化一下编译。
二.安装 passwall软件
先更新软件源,移除dnsmasq,安装dnsmasq-full,luci-compat等依赖包
根据luci-app-passwall需要的软件依此安装下面软件包
将编译好的passwall文件夹内的ipk(除去luci-app-passwall和luci-i18n-passwall-zh-cn)上传到路由器的tmp文件夹内,然后安装
opkg install /tmp/*.ipk最后上传和安装
luci-app-passwall和luci-i18n-passwall-zh-cn******注意一点开启passwall后要在访问控制内部把路由器本身的UDP 代理模式设置成不代理