手把手教编译Lean大的OpenWrt(附Lienol先生 的PassWall和Tty228先生的Serverchan)

首先你需要安装一台ubuntu服务器版本的操作系统,你可以在群辉的Virtual Machine Manager上安装一台,或者是直接使用阿里云、谷歌云、腾讯云的Linux主机。

本文图示编译环境以群辉 Virtual Machine Manager 上安装使用ubuntu18.0为例。

一、先配置好lean大的固件编译环境(本文假设你能访问github.com)

1、登陆ubuntu18.0

image.png


2、使用lean大傻瓜化的“复读机”模式,复制粘贴所有的预制命令

https://github.com/coolsnowwolf/lede

这里有详细的说明,我把实际的步骤写下来,同学们可以参考。

输入sudo apt-get update,会提示你输入当前用户的密码,输入回车以后,系统就会自动更新。

输入sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler

对,就是以上所有代码区域的命令输入到PuTTY里。

image.png

输入git clone https://github.com/coolsnowwolf/lede,ok,你可以下载到最新版本的OpenWrt固件。

再输入cd lede,进入刚刚下载好的文件夹。

好,至此,编译过程告一段落。

2、我们要拼接上Lienol先生 的PassWall和tty228先生的Serverchan

先使用WinSCP登陆到我们的Ubuntu服务器

image.png

请下载刚才复制的lede文件夹里的一个叫做“feeds.conf.default”的文件到本地电脑

image.png

使用记事本打开以后,另起一行复制

src-git lienol https://github.com/Lienol/openwrt-package

这句话的功能是在接下来的更新和安装feed的时候,可以调用SRC源 Lienol先生 的Package包, Lienol先生自主开发的PassWall具有非常好的性能,强烈推荐使用。

然后就可以执行lean大页面接下来的命令了。

这里要注意,如果你是第二次编译,最好使用make clean命令和 ./scripts/feeds clean命令清除一些障碍,如果是全新安装就无须clean。

clean完以后,就可以输入以下命令./scripts/feeds update -a

image.png

因为 Lienol 的Package包 和lean大的部分 Package包 冲突,所以不好意思,要删掉 Lienol 的部分Package包 。

rm -rf feeds/lienol/lienol/ipt2socks
rm -rf feeds/lienol/lienol/shadowsocksr-libev
rm -rf feeds/lienol/lienol/pdnsd-alt
rm -rf feeds/lienol/package/verysync
rm -rf feeds/lienol/lienol/luci-app-verysync

以上命令直接复制按回车确认即可。

下面我们运行新命令./scripts/feeds install -a

至此,我们已经把 Lienol先生的PassWall加载到了lean大的lede编译文件里了。

下面我们来加载tty228先生的Serverchan。serverchan是一款非常实用的服务器状态监控软件,可以支持微信推送。

我们先要使用Linux的CD命令,进入到lean的package压缩包,或者lede的package压缩包。 lean固件目录为~/lede/package/lean而openwrt的目录为~/openwrt/lede/package 。这里我以进入lean固件的package目录为例:

在这里我要加载 tty228先生的Serverchan,请输入以下命令

git clone https://github.com/tty228/luci-app-serverchan.git

image.png

回车确认,这样serverchan的编译包就加载进来了。至此,我们的基础编译素材全部加载好了,就可以快乐的进入编译过程了。

3、重头戏,如何配置make menuconfig?使用make -j1 V=s来编译

接下来,我们就要使用make menuconfig命令进入编译环境配置工具界面了。回到lede目录,输入 make menuconfig 命令。

image.png

关于 OpenWrt Configuration 有大量的官方文档可以参考。这里我就以我惯常使用的配置和大伙说一下,如果你没有特别的要求,尽量别去动它。

因为我是X86类型的软路由,所以我就默认不动第一项X86。

下面我要配置IPV6,因为我的部分使用环境需要IPV6,所以必须在软路由里配置好IPV6。经过笔者大量的阅读OpenWrt文档(全英文且生涩难懂),再加上大量的配置实践,终于知晓了IPV6配置的窍门。

选上extra packages——ipv6helper

image.png

在 Network – Firewall – ip6tables 下启用 ip6tables-extra 和 ip6tables-mod-nat 项。

image.png

接下来我们就可以配置丰富的LUCI-APP功能了。

进入LuCI-Applications,参考以下图示勾选上你要的APP

就可以使用make -j1 V=s注意V要大写。祝好运,一般初次编译需要6个小时,全局带代理服务器。


以后的编辑就简单了,你可以使用git pull获得更新,然后再次编译,线程可以加大,比如make -j99 V=s,速度会加快。


  • 评论列表:
  •  访客
     发布于 2020-04-25 21:56:19  回复
  • 楼主 我是小白一枚,一直在找这种 Openwrt 拼接的 技术贴,很感谢你分享这篇教程。我有个疑问就是 有没有 什么指令可以 快速检测 package是否 冲突,如果 有冲突 不做任何 处理进行编译,是编译出错,还是 以 主源码 编译为主(或者以后面 加入的 git clone package进行编译呢?) 如果可以回答一下,万分感谢。
  •  章佳元
     发布于 2020-07-14 15:38:42  回复
  • 兄弟转载我的原创文章也没有带来源啊。哈哈
  •  何先生
     发布于 2020-09-18 01:33:09  回复
  • 写的很棒,不知可否转载

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。