# QuickWrt - OpenWRT 快速构建系统 ![OpenWRT Version](https://img.shields.io/badge/OpenWRT-v24.10-blue.svg) ![License](https://img.shields.io/badge/License-GPLv3-green.svg) ![Platform](https://img.shields.io/badge/Platform-Linux%20x86_64%20%7C%20Rockchip-orange) 一个高度优化的 OpenWRT 自动化构建系统,支持快速编译和定制化固件生成。 ## 🌟 特性 - **快速构建**: 支持预编译工具链加速,大幅缩短编译时间 - **多架构支持**: 支持 x86_64 和 Rockchip 架构 - **智能缓存**: 工具链缓存机制,避免重复编译 - **自动化流程**: 一键式构建,简化复杂配置过程 - **定制化配置**: 集成 ImmortalWRT 组件,增强设备兼容性 - **安全可靠**: 严格的错误处理和验证机制 ## 📋 系统要求 ### 硬件要求 - **内存**: 至少 8GB RAM(推荐 16GB+) - **存储**: 至少 100GB 可用空间 - **CPU**: 多核心处理器(核心数越多,编译越快) ### 软件要求 操作系统: Ubuntu 20.04+ / Debian 11+ / CentOS 8+ 依赖包: 确保安装以下软件包: - **推荐 Debian 或 Ubuntu LTS**: ```bash sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \ genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \ libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \ libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \ python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \ swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev ``` ## 🚀 使用方法 ### 方法一 (克隆本仓库执行编译脚本) ```bash # 克隆本仓库并加入 git clone https://github.com/QuickWrt/QuickWrt.git && cd QuickWrt # 基本用法 bash build.sh [build_mode] # 示例:构建 x86_64 架构的 v24 版本,使用加速模式 bash build.sh v24 x86_64 accelerated # 示例:构建 Rockchip 架构的 v24 版本,使用普通模式 bash build.sh v24 rockchip normal # 示例:仅编译工具链(用于缓存) bash build.sh v24 x86_64 toolchain-only ``` ### 方法二 (使用一键编译脚本) ```bash # 主链接 bash <(curl -fsSL https://tinyurl.com/QuickWrt-install) # 备用链接 bash <(curl -fsSL https://is.gd/QuickWrt_install) ``` ### 参数说明 | 参数 | 必选 | 说明 | 可选值 | | ------------- | ---- | -------------- | -------------------- | | `version` | ✅ | OpenWRT 版本 | v24 (当前支持) | | `architecture`| ✅ | 目标架构 | x86_64, rockchip | | `build_mode` | ✅ | 编译模式 | accelerated, normal, toolchain-only | ### 编译模式说明 - `accelerated`: 下载预编译工具链,编译速度最快(推荐) - `normal`: 完整编译所有组件,包括工具链 - `toolchain-only`: 仅编译工具链,用于创建本地缓存 ## 📁 项目结构 ``` QuickWrt/ ├── build.sh # 主构建脚本 ├── scripts/ # 构建子脚本 │ ├── 00-prepare_base.sh │ ├── 01-prepare_package.sh │ ├── 02-x86_64_target_only.sh │ └── 02-rockchip_target_only.sh ├── OpenBox/ # 定制化配置和软件包 │ ├── Config/ │ │ ├── X86_64.config │ │ └── Rockchip.config │ └── key.tar.gz └── README.md ``` ## 🔧 架构支持详情 ### x86_64 架构 - **目标设备**: 标准 x86_64 硬件、虚拟机、软路由 - **特性**: 通用 x86 优化,支持大多数 x86 网卡和硬件 ### Rockchip 架构 - **目标设备**: Rockchip 系列开发板(RK3568、RK3588 等) - **特性**: 集成 ImmortalWRT 组件,增强设备兼容性 ## ⚙️ 高级配置 ### 自定义软件包 构建系统会自动集成 OpenBox 仓库中的定制化软件包。要添加自定义软件包: 1. 将软件包放入 `OpenBox/package/` 目录 2. 在对应的配置文件中启用相关选项 3. 重新执行构建脚本 ### 网络配置 构建过程中需要访问以下资源: - GitHub (源码仓库) - OpenWRT 官方源 - 自定义镜像源(用于加速下载) #### 代理设置(如需要) 如果网络环境需要代理,请设置环境变量: ```bash export http_proxy=http://your-proxy:port export https_proxy=http://your-proxy:port ``` ## 🛠️ 故障排除 ### 常见问题 - **Q: 构建过程中出现权限错误** ```bash # 解决方案:确保以正确用户运行 sudo chown -R $USER:$USER . ``` - **Q: 内存不足导致编译失败** ```bash # 解决方案:增加交换空间或减少编译线程数 export CPU_CORES=$(($(nproc) / 2)) # 使用一半核心数 ``` - **Q: 网络下载失败** ```bash # 解决方案:检查网络连接或使用代理 export CURL_OPTIONS="--retry 3 --retry-delay 5" ``` ### 日志文件 构建过程中会生成详细的日志: - 主要日志输出到终端 - 详细错误信息可在 `openwrt/tmp/` 目录下找到 ## 📊 性能对比 | 模式 | 预计时间 | 磁盘占用 | 推荐场景 | | ------------ | ---------- | ---------- | -------------------- | | `accelerated`| 2-3小时 | 较大 | 快速部署、日常使用 | | `normal` | 2-4小时 | 较大 | 完全自定义、调试 | | `toolchain-only`| 30-60分钟 | 较大 | 创建缓存、多设备编译 | ## 🤝 贡献指南 我们欢迎各种形式的贡献!请参考以下步骤: 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### 代码规范 - 使用清晰的注释说明复杂逻辑 - 保持 Bash 脚本的兼容性和可读性 - 添加适当的错误处理机制 ## 📄 许可证 本项目基于 GPLv3 许可证发布 - 查看 LICENSE 文件了解详情。 ## 🙏 致谢 - **OpenWRT** - 优秀的开源路由器系统 - **ImmortalWRT** - 提供增强的 Rockchip 支持 - 所有为项目做出贡献的开发者 ## 📞 支持与联系 - **作者**: OPPEN321 - **博客**: [www.kejizero.online](http://www.kejizero.online) - **问题反馈**: GitHub Issues > 注意: 本项目仍在积极开发中,API 和功能可能会有变动。建议定期拉取最新版本获取更新和改进。 ⭐ 如果这个项目对你有帮助,请给我们一个 Star!