OpenWrt 是一个开源的路由器固件,它允许用户自定义和扩展功能,从而满足其特定的需求。本文将指导您完成从获取源码到生成可刷写的固件的全过程。
- 准备工作
在开始编译之前,您需要以下工具和软件:
- Linux 操作系统(如 Ubuntu、Debian 等)
- 编译工具链(如 gcc、g++ 等)
- 路由器 SDK(如 OpenWrt SDK)
- 文本编辑器(如 vim、nano 等)
- 获取 OpenWrt 源码
前往 OpenWrt 官方网站(https://openwrt.org)下载最新的源码包。 选择适合您路由器的版本(如 AR7XXX、BRCM 等),并下载对应的源码包。解压下载的源码包,进入解压后的目录。
./script/feeds update -a
./script/feeds install <package> # -a 安装所有
为提高下载速度,可以修改download.pl, 在适当的位置(大概200行左右)添加如下镜像url
push @mirrors, "https://ftp.debian.org/debian/$1";
注意,阿里源和清华源 内核不能正确下载。 原因url 不对。可以手动下载对应版本到dl目录
- 配置编译选项
在解压后的目录中,执行以下命令编辑编译配置文件:
make menuconfig
在菜单配置界面中,根据您的需求进行配置。
在这一步,要善于使用 / 搜索,假如不知道配置项路径的情况下,搜索配置就很有必要了。
- 开始编译
完成配置后,执行以下命令开始编译:
make -j<num_threads> V=s
其中 <num_threads>
是您希望使用的线程数,可以根据您的系统性能进行调整。V=s
参数用于在编译过程中显示详细输出。编译过程可能需要一些时间,请耐心等待。
标准库选择glibc时,多线程编译大概率会报错,原因时内核没有下载解压好。
- 生成固件
编译完成后,您将在 bin/
目录中找到生成的固件文件。该目录包含用于不同路由器的固件文件。执行以下命令查看可用的固件文件:
ls bin/*/packages/kernel/linux/image/mtd-rootfs.tar.gz