当前位置:首页 > 互联网 > 正文内容

编译 Lean 大神的 OpenWrt (x86_x64) 固件教程汇总

cmc5年前 (2020-03-10)互联网3276

关于如何编译 OpenWrt 固件,网上已有很多教程,本人根据实操情况做适当的教程汇总,一是方便自已往后使用,二是提供想自已折腾编译 OpenWRT 的朋友一个思路。本教程 OpenWrt 源码来自 Lean 大神

关于为什么自已编译软路由固件?原因与以前的为什么精简手机ROM一样:追求极致的简洁与稳定。现在市面上很多网友提供的固件都是根据他们自身需求而做的编译,里面有很多插件对于我来说根本没什么用处,不好意思,强迫症又犯了。开始正题吧。

编译 OpenWrt 固件环境:

一台安装好 Ubuntu 64bit 操作系统的电脑或者虚机或者VPS,荐 Ubuntu 18 LTS x64 操作系统。

注意:

1. 不要用 root 用户 git 和编译!!!安装好操作系统后先新建一个用户。
2. 国内用户编译前最好准备好梯子
3. 默认登陆IP 192.168.1.1, 密码 password

如果是电脑或者虚机的,在桌面右键“打开终端”,如果是VPS服务器的,使用 SSH 连接服务器后进入非Root用户帐号进行代码操作。

一、升级及安装必要组件。

命令行输入 sudo apt-get update 后回车,然后输入:

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 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 g++-multilib antlr3 gperf wget curl swig rsync

后回车。

二、克隆lean的源代码到本地

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

回车。

三、开始定制与编译

进入克隆下来的目录后执行下面的命令

1. cd lede/
2. ./scripts/feeds update -a
3. ./scripts/feeds install -a
4. make menuconfig

敲下回车键后稍等片刻进入如下菜单

进入Target System和Subtarget勾选你需要编译的平台,默认的是X86,并且是64位的,所以你需要选择自助选择。

进入Target Images勾选你需要的固件格式等(img、vmdk等这里我保持默认,默认也够用了吧?)

接下来是最重要也是最核心部份,选择编译的插件。进入LuCI–>Applications内选中你需要的插件。



这里按Y勾选,N取消勾选,M编译而不安装。连按两次Esc键返回上一界面。( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 )。

关于 Applications 添加插件应用说明,请看这一篇文章:OpenWrt 编译 LuCI -> Applications 添加插件应用说明【2019.09.22】

勾选完需要的插件后就可以退回第一个界面按Y保存退出,保存按默认的文件名称(.config)保存即可,不需要修改。编译会根据.config的内容编译,想要恢复到初始配置删掉.config文件即可。

最后选好你要的路由,输入: make -j1 V=s

注意:-j1 后面是线程数。第一次编译推荐用单线程,国内请尽量全局科学上网。

即可开始编译你要的固件了。首次编译大概需要两三个小时,之后基本上只需要十多分钟既可。编译过程中不要断开SSH。若断开,请清除整个lede 文件夹重新开始。

编译完成后,前往:/home/lede/bin/targets/x86/64这个目录获取编译成功的固件。

编外:给openwrt固件添加Passwall插件的方法

有人喜欢Lienol的Passwall的插件,那以下是给openwrt固件添加Passwall插件的方法。
1、克隆lean的源代码到本地;

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

2、然后 cd lede 进入目录;
3、添加 src-git lienol https://github.com/Lienol/openwrt-package 到 OpenWRT源码根目录feeds.conf.default文件。
feeds.conf.default 文件在lede根目录中,使用文本编辑器打开既可。
4、执行下面的命令

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

然后make menuconfig 进入编译菜单。
最后按以上教程选择所需的插件后。
退出编译菜单运行命令:make -j1 V=s 进行编译。#n=线程数,例如4线程的I5填-j4,开始编译
给openwrt固件添加Passwall插件的方法结束,建议plus+与passwall二选一吧,如果选择passwall的话,那建议把plus+以下的其它组件都取消掉。

四、再次编译

完成首次编译 再编译可大大缩短时间,只输入以下代码,十几分钟的事情。

OpenWrt编译方式:
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s

以上代码一行一行操作。

五、刷写 OpenWrt 软件由固件方法

好吧,最后如何刷机都告诉大家吧。如何把固件刷到软路由上面,建议使用以下两个方案。

1. DiskImage直接刷写(最直接方便)

刷写方法:制作一个PE盘,把DiskImage和LEDE固件拷贝到PE盘,插到路由上,启动PE,然后和方法一差不多,打开DiskImage,选择软路由上的那块硬盘,选择OpenWrt.img,点开始,等进度条结束,然后关机,拔掉U盘,再开机就可以了

2. 用physdiskwrite刷写
刷写方法:制作一个PE盘,把physdiskwrite和LEDE固件拷贝到PE盘(同一个目录下,建议放在根目录,就是打开U盘就能看到的那个目录),插到路由上,启动PE,然后查看下存放固件的盘符(这里举例为U:盘),打开cmd(不懂的就按Win建+r键,输入cmd回车,Win键就是键盘左下方是Windows图标的那个按键)

  输入U: (回车确定,切换到U盘的目录)
  输入physdiskwrite -u OpenWrt.img(回车确定)

  然后会显示目前检测到的硬盘,输入0或者1选择要刷写到哪个盘(看容量,选择硬盘的那个编号),按Y确定,之后等待刷写结束就可以了,然后关机,拔掉U盘,再开机就可以了.

本文到此结果,是不是挺简单的,有轮子了造车还难吗?也希望你成功。

常用插件列表
一般来说只要选对你的机器型号其他按默认就行了,有特殊需要可以勾选需要的插件即可
luci-app-accesscontrol 上网时间控制
luci-app-adbyby-plus 广告屏蔽大师Plus +
luci-app-amule 电驴下载–我一般精简掉
luci-app-aria2 Aria2下载–我一般精简掉
luci-app-arpbind IP/MAC绑定
luci-app-ddns 动态域名解析
luci-app-flowoffload Turbo ACC FLOW转发加速
luci-app-frpc 内网穿透 Frp–我一般精简掉,因为我的是公网IP
luci-app-hd-idle 硬盘休眠
luci-app-ipsec-vpnd IPSec服务端
luci-app-mwan3 MWAN负载均衡
luci-app-nlbwmon 网络带宽监视器
luci-app-openvpn OpenVPN客户端
luci-app-openvpn-server OpenVPN服务端
luci-app-pptp-server PPTP服务端
luci-app-ramfree 释放内存
luci-app-samba 网络共享(samba)
luci-app-sfe Turbo ACC网络加速(开启Fast Path转发加速)
luci-app-sqm 流量智能队列管理(QOS)
luci-app-ssr-plus 介绍 神秘代码:echo 0xDEADBEEF > /etc/config/google_fu_mode
luci-app-transmission BT下载–我一般精简掉
luci-app-upnp 通用即插即用UPnP(端口自动转发)
luci-app-usb-printer USB 打印服务器–我一般精简掉
luci-app-vlmcsd KMS服务器(WIN激活工具)–我一般精简掉
luci-app-vsftpd FTP服务器–我一般精简掉
luci-app-webadmin Web管理
luci-app-wireguard VPN服务器 WireGuard状态
luci-app-wol 网络唤醒
luci-app-wrtbwmon 实时流量监测

支持 iPv6:
Extra packages —> ipv6helper (选定这个后下面几项自动选择了)
Network —> odhcp6c
Network —> odhcpd-ipv6only
LuCI —> Protocols —> luci-proto-ipv6
LuCI —> Protocols —> luci-proto-ppp

附,切换内核的方法

打开LEDE目录/target/linux/架构/Makefile
KERNEL_PATCHVER:=4.9
具体支持内核版本
include/kernel-version.mk

源码回退:


git log                        查看源码更新日志
git reset --hard HEAD^         回退到上个版本
git reset --hard HEAD~3        回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id     退到/进到 指定commit的sha码(可到大雕源码地址直接查询)


扫描二维码推送至手机访问。

版权声明:本文由陈茂春的博客发布,如需转载请注明出处。

本文链接:https://www.0817cmc.com/post/758.html

分享给朋友:

相关文章

祝大家新年快乐

日:给你温暖;月:给你温馨;星:给你浪漫;风:给你清爽;雨:给你滋润;雪:给你完美;霜,给你无暇;冰,给你晶莹;我:给你祝福;送一份美丽让你欢笑,送一份祝福让你骄傲,送一份开心让你不老,送一份梦想让你逍遥,送一份真情不要回报,再送你平安才算...

一个女生是怎样在QQ上被男生气死的!!!

> 2001-12-17 20:52:55 飞刀 > 你看过一本书叫十万个为什么吧!我是那本书的作者! > 2001-12-17 20:53:08 番茄脸红红 > 骗人!~ > 2001-12-17 20:53:35 飞刀 > 没有!我...

系统敏感端口真正的关闭大法

大致的敏感端口有:23、135、137-139、445、1433、3389等等。   23端口关闭大法:开始-运行-CMD.net stop telnet;   135端口关闭大法:控制面版-管理工具-服务-找到 remote proced...

中国互联网-流氓从良记

中国互联网-流氓从良记

中国早期的互联网,基本上是流氓的天下。  首先,做站长的基本上都是流氓,这里所说的站长,指那些为追求流量和排名的站长,他们为了增加自己的流量而不择手段,这方面的鼻祖,就是3721插件的创始人的周鸿祎。  在中国,用户的电脑是可以随便“插”的...

教你七招,轻松挑选出一款优秀的网站空间

做为一个网站的站长说。最头疼的就是找一个好的空间来放自己的网站。看着别人的网站运行如飞,而自己的网站却慢如蜗牛,站长们的心理不知做何感想。除了后悔和懊恼我想剩下的也只有拿个弹弓打空间商家的玻璃的份了。而现在的空间租用一般都提供了免费试用,(...

选择虚拟主机服务的六大要点

信息化的工作之一就是开设网站,而对大量小规模企业来讲,开设网站就涉及到虚拟主机的选择问题。这是一个看似简单,实际上却有不少“讲究”的工作。  利用虚拟主机技术,可以把一台真正的主机分成许多“ 虚拟”的主机,它们之间完全独立,在外界看来,每一...

发表评论

访客

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