峯言凬语 My life is brilliant~

# OpenWrt合并编译lean固件

IT Tags: 无标签 阅读: 7643

/OpenWrt与其衍生版本Koolshare和Lean简要分析/
/OpenWrt:优点是官方原版,代码最新,稳定可靠。缺点是很多地方需要DIY。/
/Koolshare:优点是简单方便,小白即可操作。缺点是稳定性一般,默认开了多拨均衡,易掉线,软件中心不稳定,且移除了科学上网等插件。/
/Lean:优点是编译可靠,有功能集成。缺点是luci版本旧,内核升级慢。/
/Koolshare属于自闭症且有过大规模掉网翻车的河蟹记录,我们现在采用OpenWrt合并lean代码来编译好用的固件。/


compiling environment
*服务器搭建好梯子
*Ubuntu 18.04 LTS 64bit
*若使用VMware虚拟机环境,安装VMware tools:把VMware tools解压到主文件夹,进入运行 sudo ./wmware-install.pl
*不要用root来git和编译
*Let`s Go~~~

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

git clone https://github.com/openwrt/openwrt

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

*复制/lede/packgage/lean 到/openwrt/package
*自定义Luci:修改openwrt/feeds.conf.default
*自定义安装包:修改openwrt的include/target.mk
*在DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd 后面加上要编译的内容。
*举个例子:

DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd default-settings luci luci-app-aliddns luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot luci-app-ssr-plus ddns-scripts_aliyun luci-app-vlmcsd luci-app-ramfree luci-app-flowoffload 

*说明:default-settings luci 必须要有,luci-app-ddns luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot luci-app-ssr-plus ddns-scripts_aliyun luci-app-vlmcsd luci-app-ramfree luci-app-flowoffload 选择使用。
*在DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables处,将dnsmasq改为dnsmasq-full,把 ip6tables odhcpd-ipv6only odhcp6c去掉,否则手机浏览有ipv6地址的网站时,可能不能访问;扶墙时有问题。
*举个栗子:

DEFAULT_PACKAGES.router:=dnsmasq-full iptables ip6tables ppp ppp-mod-pppoe firewall odhcpd-ipv6only odhcp6c kmod-ipt-offload

*修改目标固件包:修改/target/linux/x86/Makefile 里DEFAULT_PACKAGES
*注意不要加autocore,会和新版luci冲突,导致主页错误。如果是实机写盘安装,此处要加上相关硬件驱动,可参考lean的设置。如果只编译一个固件,也可加在上一步的DEFAULT_PACKAGES 处。
*应用fullconenat:拷贝lede/package/network/config/firewall/里的makefile文件及patches文件夹到openwrt下面的同目录里,覆盖openwrt官方的。
*openwrt设置活动连接数:修改package/kernel/linux/files/sysctl-nf-conntrack.conf里net.netfilter.nf_conntrack_max=16384,可修改为65536 或者更大。

定义主机名和ssr-plus
*修改openwrt/package/lean/default-settings/f iles/zzz-default-settings
*文件中uci set system.@system[0].timezone=CST-8 后增加 uci set system.@system[0].hostname=LEDE
*增加 echo 0xDEADBEEF > /etc/config/google_fu_mode
PPPOE自定义
*添加路由器pppoe拨号账户密码:

uci set network.wan.proto='pppoe'
uci set network.wan.username='宽带账号'
uci set network.wan.password='宽带密码'
uci set network.wan.ifname='eth2'   //网络接口要根据具体的路由器WAN口情况修改
uci set network.wan6.ifname='eth2'
uci commit network  

修改管理ip地址和lan口配置

uci set network.lan.ipaddr='192.168.0.8'    //默认的管理ip
uci set network.lan.proto='static'          //LAN口静态IP方式
uci set network.lan.type='bridge'           //设置桥接
uci set network.lan.ifname='eth0 eth1 eth2 eth4 eth5' //网络接口要根据具体的路由器LAN口情况修改
uci commit network

*v2ray及ssr-puls版本的处理
如果v2ray官方有最新版,在openwrt/package/lean/v2ray/makefile 里PKG_VERSION:=v4.18.0修改成最新版本号。
ssr-plus在新luci下需要处理下,否则安装后不能扶墙,增加服务器的时候会出现错误。 删除luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua和client-config.lua里的'local ipkg = require("luci.model.ipkg")'

安装feeds包

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

OpenWrt默认kb显示内存可用数,修改为MB显示,增加CPU频率显示
/feeds/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js
在其中找到内存处,将1024改为1048576 ,后面的kb改为MB。
/feeds/luci/modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm
里面把第三个

<div class="tr"><div class="td left" width="33%"><%:Architecture%></div><div class="td left"><%=pcdata(boardinfo.system or "?")%></div></div>

修改为:

<div class="tr"><div class="td left" width="33%"><%:Architecture%></div><div class="td left"><%=pcdata(boardinfo.system or "?")%>:<%=luci.sys.exec("cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l ")%>Core<%=luci.sys.exec("cat /proc/cpuinfo | grep 'processor' | wc -l")%>Thread</div></div>
<div class="tr"><div class="td left" width="33%"><%:CPU Info%></div><div class="td left"><%=luci.sys.exec("grep 'MHz' /proc/cpuinfo | cut -c11- |sed -n '1p'")%> MHz <%=luci.sys.exec("sensors | grep 'Core 0' | cut -c10-24")%></div></div>

make defconfig
*预下载dl库可以避免下载造成的编译失败

make defconfig

make menuconfig
*选择Soc,<*>编译进固件,<m>编译不进固件,确定路由配置
*编译冲突,配置还原到初始状态命令: rm -f .config && rm -f .config.old
*根据需要设置
target system,subtarget,target images,修改固件大小 Kernel partition size (in MB) Root filesystem partition size (in MB)。
各种驱动,支持文件,应用,以及luci-application下的web UI。

make menuconfig

编译

make download V=s

make -j1 V=s

*-j1 后面是线程数,根据CPU型号线程数编译

GoodLuck!


8899
/ 若你懒得编译,也可使用我修改的版本 /
/默认IP 192.168.1.1, 密码 password /
*下载地址:

发表评论