欢迎光临
我们一直在努力

源码编译OpenWrt及插件

  1. 编译和git时不要使用root用户操作
  2. 在国内编译前需要连接好梯子
  3. 编译系统路径不能存在空格,最后是在英文目录下线,报错的可能性会降低
  4. 本文是在Ubuntu 64位系统下编译

梯子需要全局模式,或者把以下内如加入到GFWList会提高成功率

h12.io
go.starlark.net
golang.org
honnef.co

接下来我们安装编译所需要的工具及依赖环境

sudo apt-get install update
sudo apt-get install gcc g++ build-essential asciidoc  binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch flex bison make autoconf texinfo unzip sharutils subversion ncurses-term zlib1g-dev ccache upx lib32gcc1 libc6-dev-i386 uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev libglib2.0-dev xmlto qemu-utils automake libtool

获取源码文件

git clone https://github.com/coolsnowwolf/lede #获取Lean 源码
cd lede

更新feeds的包文件

./scripts/feeds update -a  #获取最新的包

Updating feed 'luci' from 'https://github.com/coolsnowwolf/luci' ...
Already up-to-date.
Create index file './feeds/luci.index' 
Updating feed 'packages' from 'https://github.com/coolsnowwolf/packages' ...
Already up-to-date.
Create index file './feeds/packages.index' 
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git;openwrt-18.06' ...
Already up-to-date.
Create index file './feeds/routing.index' 

安装更新feeds的包

./scripts/feeds install -a #安装所有包

Installing all packages from feed luci.
Installing all packages from feed packages.
Installing all packages from feed routing.

测试编译环境

make  defconfig            #测试编译环境

#
# configuration written to .config
#

设置编译的配置文件

make menuconfig            #配置编译

│      Target System (x86)  --->	#设置CPU类型
│      Subtarget (x86_64)  --->	#设置CPU平台
│      Target Profile (Generic)  --->	#设置镜像档案类型
│      Target Images  --->	#设置编译的格式
│      Global build settings  --->	#全局设置
│  [ ] Advanced configuration options (for developers)  ----	#高级配置选项
│  [ ] Build the OpenWrt Image Builder	#创建OpenWrt镜像生成器
│  [ ] Build the OpenWrt SDK	#创建OpenWrt SDK
│  [ ] Package the OpenWrt-based Toolchain	#打包基于OpenWrt的工具链
│  [ ] Image configuration  ---> #镜像配置
│      Base system  ---> #设置基础系统
│      Administration  ---> #管理
│      Boot Loaders  ---> #设置启动加载器
│      Development  ---> #
│      Extra packages  ---> #设置额外软件包
│      Firmware  ---> #设置固件
│      Fonts  ---> #设置字体
│      Kernel modules  --->	#设置内核模块	
│      Languages  ---> #设置语言
│      Libraries  ---> #设置库
│      LuCI  --->	#LuCi设置
│      Mail  --->                         
│      Multimedia  --->	#设置多媒体
│      Network  ---> #网络配置
│      Sound  ---> #声音配置
│      Utilities  ---> #设置实用程序
│      Xorg  --->

开始编译

make V=99

固件信息修改

package/lean/default-settings/files/zzz-default-settings #默认设置
package/lean/default-settings/files/bin/config_generate #网络配置
feeds/luci/modules/luci-base/root/etc/config/luci #修改默认语言和主题

开始SSR-Plus的神奇代码

echo 0xDEADBEEF > /etc/config/google_fu_mode

二次编译:

cd lede                                                          #进入LEDE目录
git pull                                                         #同步更新源码
./scripts/feeds update -a && ./scripts/feeds install -a          #更新FEEDS
rm -rf ./tmp && rm -rf .config                                   #清除编译配置和缓存
make menuconfig                                                  #进入编译配置菜单
make V=99                                                        #开始编译

单独编译某一个软件:这个是只编译adbyby-plus

make package/lean/luci-app-adbyby-plus/compile V=99

LuCi Applications软件包说明:
[qgg_gray]LuCI —> Applications —> luci-app-accesscontrol #访问时间控制
LuCI —> Applications —> luci-app-adblock #ADB广告过滤
LuCI —> Applications —> luci-app-adbyby-plus #广告屏蔽大师Plus +
LuCI —> Applications —> luci-app-adbyby #广告过滤大师(已弃)
LuCI —> Applications —> luci-app-adkill #广告过滤(已弃)
LuCI —> Applications —> luci-app-advanced-reboot #Linksys高级重启
LuCI —> Applications —> luci-app-ahcp #支持AHCPd
LuCI —> Applications —> luci-app-aliddns #阿里DDNS客户端
LuCI —> Applications —> luci-app-amule #aMule下载工具
LuCI —> Applications —> luci-app-aria2 # Aria2下载工具
LuCI —> Applications —> luci-app-arpbind #IP/MAC绑定
LuCI —> Applications —> luci-app-asterisk #支持Asterisk电话服务器
LuCI —> Applications —> luci-app-attendedsysupgrade #固件更新升级相关
LuCI —> Applications —> luci-app-autoreboot #支持计划重启
LuCI —> Applications —> luci-app-bcp38 #BCP38网络入口过滤(不确定)
LuCI —> Applications —> luci-app-bird4 #Bird 4(未知)
LuCI —> Applications —> luci-app-bird6 #Bird 6(未知)
LuCI —> Applications —> luci-app-bmx6 #BMX6路由协议
LuCI —> Applications —> luci-app-bmx7 #BMX7路由协议
LuCI —> Applications —> luci-app-caldav #联系人
LuCI —> Applications —> luci-app-cjdns #加密IPV6网络相关
LuCI —> Applications —> luci-app-clamav #ClamAV杀毒软件
LuCI —> Applications —> luci-app-commands #Shell命令模块
LuCI —> Applications —> luci-app-cshark #CloudShark捕获工具
LuCI —> Applications —> luci-app-ddns #动态域名 DNS
LuCI —> Applications —> luci-app-diag-core #core诊断工具
LuCI —> Applications —> luci-app-dnscrypt-proxy #DNSCrypt解决DNS污染
LuCI —> Applications —> luci-app-dnscrypt-dnsforwarder #DNSForwarder防DNS污染
LuCI —> Applications —> luci-app-dnspod #DNSPod
LuCI —> Applications —> luci-app-dump1090 #民航无线频率(不确定)
LuCI —> Applications —> luci-app-dynapoint #DynaPoint(未知)
LuCI —> Applications —> luci-app-e2guardian #Web内容过滤器
LuCI —> Applications —> luci-app-filetransfer #文件传输
LuCI —> Applications —> luci-app-firewall #添加防火墙
LuCI —> Applications —> luci-app-flowoffload #Turbo ACC FLOW转发加速
LuCI —> Applications —> luci-app-freifunk-diagnostics #freifunk组件 诊断(未知)
LuCI —> Applications —> luci-app-freifunk-policyrouting #freifunk组件 策略路由(未知)
LuCI —> Applications —> luci-app-freifunk-widgets #freifunk组件 索引(未知)
LuCI —> Applications —> luci-app-frpc #内网穿透 Frp
LuCI —> Applications —> luci-app-fwknopd #Firewall Knock Operator服务器
LuCI —> Applications —> luci-app-guest-wifi #WiFi访客网络
LuCI —> Applications —> luci-app-hd-idle #硬盘休眠
LuCI —> Applications —> luci-app-hnet #Homenet Status家庭网络控制协议
LuCI —> Applications —> luci-app-kooldns #virtual服务器 ddns替代方案(已弃)
LuCI —> Applications —> luci-app-koolproxy #KP去广告(已弃)
LuCI —> Applications —> luci-app-lxc #LXC容器管理
LuCI —> Applications —> luci-app-meshwizard #网络设置向导
LuCI —> Applications —> luci-app-minidlna #完全兼容DLNA / UPnP-AV客户端的服务器软件
LuCI —> Applications —> luci-app-mjpg-streamer #兼容Linux-UVC的摄像头程序
LuCI —> Applications —> luci-app-mmc-over-gpio #添加SD卡操作界面(已弃)
LuCI —> Applications —> luci-app-multiwan #多拨虚拟网卡(已弃)
LuCI —> Applications —> luci-app-mwan #MWAN负载均衡
LuCI —> Applications —> luci-app-mwan3 #MWAN3分流助手
LuCI —> Applications —> luci-app-n2n_v2 #N2N内网穿透 N2N v2 virtual服务
LuCI —> Applications —> luci-app-nft-qos #QOS流控 Nftables版(已弃)
LuCI —> Applications —> luci-app-ngrokc #Ngrok 内网穿透(已弃)
LuCI —> Applications —> luci-app-nlbwmon #网络带宽监视器
LuCI —> Applications —> luci-app-noddos #NodDOS Clients 阻止DDoS攻击
LuCI —> Applications —> luci-app-ntpc #NTP时间同步服务器
LuCI —> Applications —> luci-app-ocserv #OpenConnect virtual服务
LuCI —> Applications —> luci-app-olsr #OLSR配置和状态模块
LuCI —> Applications —> luci-app-olsr-services #OLSR服务器
LuCI —> Applications —> luci-app-olsr-viz #OLSR可视化
LuCI —> Applications —> luci-app-ocserv #OpenConnect virtual服务(已弃)
LuCI —> Applications —> luci-app-openvirtual #Openvirtual客户端
LuCI —> Applications —> luci-app-openvirtual-server #易于使用的Openvirtual服务器 Web-UI
LuCI —> Applications —> luci-app-oscam #OSCAM服务器(已弃)
LuCI —> Applications —> luci-app-p910nd #打印服务器模块
LuCI —> Applications —> luci-app-pagekitee #Pagekite内网穿透客户端
LuCI —> Applications —> luci-app-polipo #Polipo代理(是一个小型且快速的网页缓存代理)
LuCI —> Applications —> luci-app-pppoe-relay #PPPoE NAT穿透 点对点协议(PPP)
LuCI —> Applications —> luci-app-p p t p-server #virtual服务器 p p t p
LuCI —> Applications —> luci-app-privoxy #Privoxy网络代理(带过滤无缓存)
LuCI —> Applications —> luci-app-qos #流量服务质量(QoS)流控
LuCI —> Applications —> luci-app-radicale #CalDAV/CardDAV同步工具
LuCI —> Applications —> luci-app-ramfree #释放内存
LuCI —> Applications —> luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器
LuCI —> Applications —> luci-app-samba #网络共享(Samba)
LuCI —> Applications —> luci-app-samba4 #网络共享(Samba4)
LuCI —> Applications —> luci-app-sfe #Turbo ACC网络加速(开启Fast Path转发加速)
LuCI —> Applications —> luci-app-s-s #SS兲朝上网(已弃)
LuCI —> Applications —> luci-app-s-s-libes #SS-libev服务端
LuCI —> Applications —> luci-app-shairplay #支持AirPlay功能
LuCI —> Applications —> luci-app-siitwizard #SIIT配置向导 SIIT-Wizzard
LuCI —> Applications —> luci-app-simple-adblock #简单的广告拦截
LuCI —> Applications —> luci-app-simple-softethervirtual #SoftEther virtual服务器 NAT穿透(已弃)
LuCI —> Applications —> luci-app-splash #Client-Splash是无线MESH网络的一个热点认证系统
LuCI —> Applications —> luci-app-sqm #流量智能队列管理(QOS)
LuCI —> Applications —> luci-app-squid #Squid代理服务器
——————————————————————————————-
LuCI —> Applications —> luci-app-S-S R-plus #S-S R兲朝上网Plus+
LuCI —> Applications —> luci-app-S-S R-plus —> Include s-s New Versiong #新SS代理
LuCI —> Applications —> luci-app-S-S R-plus —> Include V2ray #V2Ray透明代理
LuCI —> Applications —> luci-app-S-S R-plus —> Include Kcptun #Kcptun代理
LuCI —> Applications —> luci-app-S-S R-plus —> Include s-sR Server #S-S R客户端
LuCI —> Applications —> luci-app-S-S R-plus —> Include s-sR Socks and Tunnel #S-S R代理
——————————————————————————————-
LuCI —> Applications —> luci-app-S-S R-pro #S-S R-Pro
LuCI —> Applications —> luci-app-S-S Rserver-python #s-sR Python服务器
LuCI —> Applications —> luci-app-statistics #流量监控工具
LuCI —> Applications —> luci-app-syncdial #多拨虚拟网卡(原macvlan)
LuCI —> Applications —> luci-app-tinyproxy #Tinyproxy是 HTTP(S)代理服务器
LuCI —> Applications —> luci-app-transmission #BT下载工具
LuCI —> Applications —> luci-app-travelmate #旅行路由器
LuCI —> Applications —> luci-app-ttyd #网页终端命令行
LuCI —> Applications —> luci-app-udpxy #udpxy做组播服务器
LuCI —> Applications —> luci-app-uhttpd #uHTTPd Web服务器
LuCI —> Applications —> luci-app-unbound #Unbound DNS解析器
LuCI —> Applications —> luci-app-upnp #通用即插即用UPnP(端口自动转发)
LuCI —> Applications —> luci-app-usb-printer #USB 打印服务器
LuCI —> Applications —> luci-app-v2ray-pro #V2Ray透明代理
LuCI —> Applications —> luci-app-vlmcsd #KMS服务器设置
LuCI —> Applications —> luci-app-vnstat #vnStat网络监控(图表)
LuCI —> Applications —> luci-app-virtualbypass #virtual BypassWebUI 绕过virtual设置
LuCI —> Applications —> luci-app-vsftpd #FTP服务器
LuCI —> Applications —> luci-app-watchcat #断网检测功能与定时重启
LuCI —> Applications —> luci-app-webadmin #Web管理页面设置
LuCI —> Applications —> luci-app-webshell #网页命令行终端(已弃)
LuCI —> Applications —> luci-app-wifischedule #WiFi 计划
LuCI —> Applications —> luci-app-wireguard #virtual**服务器 WireGuard状态
LuCI —> Applications —> luci-app-wireless-regdb #WiFi无线
LuCI —> Applications —> luci-app-wol #WOL网络唤醒
LuCI —> Applications —> luci-app-wrtbwmon #实时流量监测
LuCI —> Applications —> luci-app-xlnetacc #迅雷快鸟
LuCI —> Applications —> luci-app-zerotier #ZeroTier内网穿透[/qgg_gray]

源码回退:

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

files大法:就是把你 改好的配置 直接编译进固件
这样做的好处就是升级不需要保留配置,或者恢复出厂设置,缺省值就是你自己设置好的配置
固化某配置教程例子:
1.提取路由固件下的\etc\config\network
2.在编译机LEDE根目录下创建files目录
3.拷贝到\files\etc\config\network
这样编译完,network就是你自己配置好的network,注意提取的文件路径和权限要一致

一些常用的配置,路由器路径
\etc\config 各个LUCI配置
\etc\gfwlist gfwlist目录
\etc\shadow 登录密码
\etc\firewall.user 自定义防火墙规则
\usr\share\adbyby adbyby里的相关规则和设置
\usr\lib\lua\luci\view\admin_status\index.htm 主页样式文件,温度显示等等
X86架构固件的index,默认被大雕files强奸了,自己到源码里替换/lede/package/lean/autocore/files/index.htm
如果无效请make clean或者删除/lede/build_dir/target架构/autocore-1(编译其他失败同理)

参考:

https://github.com/coolsnowwolf/lede
http://www.jiayie.xyz/2019/05/08/Openwrt%E7%BC%96%E8%AF%91%E6%97%B6%E7%94%A8%E5%AE%98%E6%96%B9%E5%8E%9F%E7%89%88%E7%9A%84%E6%BA%90%EF%BC%8C%E7%84%B6%E5%90%8E%E5%8A%A0%E5%85%A5lean%E7%9A%84%E6%8F%92%E4%BB%B6%E6%BA%90/

窗外天空
关注公众号『窗外天空』

获取更多建站运营运维新知!
互联网创业、前沿技术......

赞(3) 打赏
文章名称:《源码编译OpenWrt及插件》
文章链接:https://www.nixonli.com/23027.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫