PassWall简介与编译意义
PassWall是OpenWrt平台上广受欢迎的科学上网插件,支持多协议代理和流量分流。由于部分老旧设备仍使用32位系统,编译32位版本可扩展兼容性。本文将以Ubuntu为例,演示完整编译流程,并解决可能遇到的架构适配问题。
环境准备与依赖安装
首先需配置32位编译环境:
1. 安装Ubuntu 20.04 i386版本或通过dpkg --add-architecture i386
添加多架构支持
2. 执行sudo apt update && sudo apt install build-essential libncurses5-dev gawk git libssl-dev
安装基础工具链
3. 克隆OpenWrt SDK(需匹配路由器型号),例如:git clone https://github.com/openwrt/openwrt.git
编译步骤详解
1. 进入OpenWrt目录并更新Feeds:
./scripts/feeds update -a && ./scripts/feeds install -a
2. 通过make menuconfig
勾选PassWall插件(路径:Network → PassWall)
3. 指定目标架构为CONFIG_TARGET_x86=y
和CONFIG_TARGET_x86_32=y
4. 使用make -j$(nproc) V=s
开始编译,生成ipk文件位于bin/packages目录
常见问题与解决方案
• 依赖缺失错误:根据报错信息安装对应32位库(如libssl-dev:i386
)
• 架构不兼容:检查SDK版本是否支持i386,或尝试交叉编译参数--host=i686-linux-gnu
• 空间不足:建议预留至少20GB磁盘空间,可通过make clean
清理缓存
部署与测试建议
将生成的ipk文件上传至路由器后,使用opkg install passwall_*.ipk
安装。建议在LuCI界面检查服务状态,并通过logread
查看运行日志。若遇到内核模块加载失败,需重新编译匹配内核版本的SDK。