OpenWrt Club OpenWrt Club
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
  • 注册
  • 登录
首页 › OpenWrt系统 › 如何编译一个属于自己的OpenWrt固件

如何编译一个属于自己的OpenWrt固件

萝卜
6 年前OpenWrt系统阅读 11,651

文章前言

前几天在YouTube上找OpenWrt固件的教程,搜到eSir讲解如何编译Lean大神的OpenWrt固件,这里撸一遍步骤方便自己记忆。

编译OpenWrt的时候大部分时间都花在了编译环境搭建上,因为编译需要很多依赖,好在这之前Lean已经帮我整理好了,只需要按照步骤进行即可。

相关连接

Lean大神的LEDE固件
eSir的GitHub
eSir_PlayGround 的TG讨论群
eSir YouTube频道

前提准备

  1. 一个虚拟机,Windows可以使用VMware,在macOS下可以使用parallels Desktop
  2. 系统要求Ubuntu 14.04,这个是一个老版本,本人测试也可以在Ubuntu 18.04上成功编译,但是还是推荐14.04
  3. 一个经得起折腾的心脏。

环境搭建

Ubuntu系统安装后更新一下源,Lean和eSir万般说明不要使用root用户编译系统,可能会遇到各种问题。

安装依赖

sudo apt update
sudo apt -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex node-uglify gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx-ucl libelf-dev autoconf automake libtool autopoint

等待安装完成,这可能需要一点时间。

克隆源码

git clone https://github.com/coolsnowwolf/lede

这一步后需要全局代理,防止一些源被屏蔽造成编译失败。

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

feeds 这一步会安装扩展代码选项,就是进入make menuconfig 后的各种扩展包选项,如果没有安装你可能看不到。
生成默认配置文件

make defconfig

这个命令会检查所需的编译工具是否齐全,并生成默认的编译配置文件.config

配置编译选项

在终端输入:

make menuconfig

进入后你可以利用键盘上的上下键选择你要编译的平台,比如X86平台,或者像我一样选择BCM27XX就是树莓派的ARM平台,然后在选择一些必要的软件包。每次编辑后需要要Save保存,然后退出即可生成.config配置文件。

下载源码

配置完成后需要下载你选择的那些软件和必要的文件,OpenWrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译会下载大量源代码

make download V=s

这一步可能需要很长时间,而且必须全局代理,如果你代理够快可能需要半个小时到三个小时或者更长的时间。

编译系统

上面的步骤准备无误后进行编译,推荐第一次编译使用单线程,方便排错,如果你对配置很有信心也可以使用多线程。

make V=s -j1

-j1 这个参数就是限制线程的意思,如果使用多线程可以不加这个参数又系统自己判定你CPU核心数来完成。
上面这一步建议使用screen 来守护进程,有时候你可不小心断开终端丢失会话编译就会中断。
安装screen:

sudo apt install screen

screen 使用很简单-S命令创建一个会话:

screen -S openwrt

按住键盘上 Ctrl +A +D 挂载到后台,查看后台的会话:

screen -ls

执行上面的命令你会看到我们挂载到后台的openwrt会话,切换到openwrt会话:

screen -r openwrt

如果你只有一个会话可以省略后面的openwrt,默认进入第一个。

最后总结

其实教程只是简单的说了一下步骤,你可以根据eSri的视频来做,只要编译环境搭建好了保证可以完成编译。再有就是写教程真的好累,我这几天开始折腾openwrt,所以遇到很多坑,慢慢写出来做个笔记。
网站今天才开张,也希望大家也能分享一下自己的经验或者提出问题大家讨论,我也是个新手。😊

接下来我可能会总结一下,移植Lean的插件到官方OpenWrt中进行编译,因为我用Lean大神的固件编译后树莓派没有WiFi。这里面的坑也是非常的多。

最后感谢Lean和eSir两位大神,还有在TG群里解答我问题的朋友!

OpenWrt 固件编译
赞(26) 收藏(0)
树莓派移植Lean插件到OpenWrt官方源码里
下一篇
再想想
所有评论(5)
  • 花卷

    博主 请问一下。这个文章内容右侧的那个“文章目录”是插件吗? 还是主题带的?

    5 年前 回复
    • Luobo

      @花卷: 主题自带的。

      5 年前 回复
  • th

    博主
    make menuconfig
    没有看到有arm的啊

    5 年前 回复
    • 萝卜

      @th: 这玩意不显示ARM的,找你的CPU型号网卡型号啥的就行。

      5 年前 回复
    • th

      @萝卜: 博主没有wifi的问题该如何解决

      5 年前 回复
聚合文章
解决OpenWrt 挂载Overlay 分区重启失效
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
云标签
Adguard BT下载 Compose Docker LEDE OpenSSL OpenWrt OpenWrt功能 PassWall PT下载 Torrent Ubuntu 个性修改 内网穿透 固件编译 扩容 服务器 树莓派 端口映射 网站环境
解决OpenWrt 挂载Overlay 分区重启失效
1 年前
882 0 0
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
5 年前
3,448 0 0
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
5 年前
5,416 0 2
OpenWrt 利用docker-compose 搭建网站环境
6 年前
6,076 2 3
5 26
  • 26
  • 5
Copyright © 2019-2025 OpenWrt Club. Designed by nicetheme.
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
萝卜
茕茕孑立,孑孓而行。
14
文章
36
评论
107
喜欢