OpenWrt系统编译与救砖指南

前言

作为国创项目的起点,在学长指导下开始研究OpenWrt开源路由器系统,用于开发新路由器协议。本文记录第一周的学习成果,主要包含系统编译流程和救砖操作,供后续参考。


一、OpenWrt系统编译指南

1. 环境准备(Debian/Ubuntu为例)

安装必备依赖包:

sudo apt-get install subversion g++ zlib1g-dev build-essential git python rsync man-db
sudo apt-get install libncurses5-dev gawk gettext unzip file libssl-dev wget zip time

2. 获取源代码

git clone https://github.com/openwrt/openwrt.git
cd openwrt

:官网源可能出现连接问题,推荐使用Github镜像源。

3. 软件源配置

更新扩展软件包:

./scripts/feeds update -a
./scripts/feeds install -a

若更新失败,需修改feeds.conf.default文件:

src-git packages https://github.com/openwrt/packages.git
src-git luci https://github.com/openwrt/luci.git
src-git routing https://github.com/openwrt-routing/packages.git
src-git telephony https://github.com/openwrt/telephony.git

4. 系统配置

执行菜单配置(以NETGEAR WNDR4300为例):

make menuconfig

推荐配置路径:

Target System → Atheros AR7xxx/AR9xxx  
Subtarget → Generic devices with NAND flash  
Target Profile → NETGEAR WNDR4300v1  

提示:具体config配置将在后续文章详细说明。

5. 编译命令

make FORCE_UNSAFE_CONFIGURE=1 -j$(($(nproc)+1)) V=s

参数说明

  • FORCE_UNSAFE_CONFIGURE=1:避免权限错误
  • -j N:并行编译(N=CPU核心数+1)
  • V=s:显示详细日志

建议

  1. 先执行make download预下载依赖
  2. 若并行编译出错,改用单线程编译

二、路由器救砖实战(TFTP方式)

操作步骤

  1. 准备工作

  2. 网络配置

    • 断开路由器WAN口,仅连接LAN口
    • 设置电脑静态IP:192.168.1.171/255.255.255.0,DNS:192.168.1.1
  3. 刷机流程

    1. 断电状态下长按复位键(需卡针)  
    2. 通电至电源灯绿灯闪烁  
    3. 通过TFTP上传固件(服务器IP:192.168.1.1)  
    4. 等待5分钟后重启路由器  
    5. 恢复电脑DHCP自动获取IP  

三、源码目录解析

原始目录结构

目录/文件 说明
scripts/ 包含Bash/Python/Perl脚本,用于软件包管理和编译流程控制
tools/ 主机工具链编译配置(Makefile中标记$(eval $(call HostBuild))
config/ 系统级配置文件
toolchain/ 交叉编译链组件(binutils/gcc/libc等)
package/ 所有软件包的Makefile模板和安装配置
include/ 全局Makefile库文件(*.mk)
feeds.conf.default 第三方软件包源配置

编译生成目录

目录 内容
build_dir/ 展开编译的临时文件(含host/toolchain/target三个子目录)
bin/ 最终生成的固件和IPK包
dl/ 下载的第三方软件源码缓存
staging_dir/ 已编译的库文件和头文件(开发IPK时的重要引用目录)
logs/ 编译错误日志(仅当编译失败时生成)

结语

本文初步记录了OpenWrt的编译方法和目录结构,后续将深入分析:

  1. 定制化config配置
  2. 软件包开发实践
  3. 内核模块调试技巧

教训总结:首次编译务必确认Target Profile完整性,避免变砖风险!

原创文章,作者:OXIDA,如若转载,请注明出处:https://www.lifeto.fun/archives/279

Like (0)
Previous 2025年5月13日
Next 2025年5月14日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注