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

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

萝卜
3年前OpenWrt系统阅读 9,144

文章前言

前几天在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 固件编译
赞(25) 收藏(0)
树莓派移植Lean插件到OpenWrt官方源码里
下一篇
再想想
所有评论(5)
  • 花卷

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

    3年前 回复
    • Luobo

      @花卷: 主题自带的。

      3年前 回复
  • th

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

    3年前 回复
    • 萝卜

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

      3年前 回复
    • th

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

      3年前 回复
聚合文章
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
云标签
Adguard BT下载 Compose Docker LEDE OpenSSL OpenWrt OpenWrt功能 PassWall PT下载 Torrent Ubuntu 个性修改 内网穿透 固件编译 服务器 树莓派 端口映射 网站环境
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
3年前
2,420 0 0
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
3年前
4,016 0 2
OpenWrt 利用docker-compose 搭建网站环境
3年前
4,409 2 3
如何在 OpenWrt 中安装Docker Compose
3年前
11,093 106 15
5 25
  • 25
  • 5
Copyright © 2019-2023 OpenWrt Club. Designed by nicetheme.
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
萝卜
茕茕孑立,孑孓而行。
13
文章
36
评论
104
喜欢