Files
QuickWrt/README.md
2025-10-02 13:14:46 +00:00

210 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <version> <architecture> [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