本帖最后由 zwillhill 于 2020-12-12 00:09 编辑
有人说复杂,看着一堆字,其实鼠标复制粘贴几下,然后等着编译完成就行,
主要步骤:安装依赖(复制粘贴命令)、下载源码(复制粘贴)、更新引用源(复制粘贴)、修改需要的配置(键盘方向键加空格键选择)、编译(复制粘贴)。
比ttl刷机没复杂多少。脑力活都是源码作者做的,编译也算不得体力活。
再次感谢贡献源码的作者们!
--------------------------------------------------
最近发固件的坛友很多,不过有的固件功能多,有的固件功能少,干脆学着根据自己的需要编译个固件。
Lean的源码地址https://github.com/coolsnowwolf/lede
Lienol的打倒美帝有个负载均衡功能感觉不错,源码地址https://github.com/Lienol/openwrt
給openwrt固件添加打倒美帝插件的方法
(实测将Lienol源程序中luci-app-打倒美帝文件夹及依赖包文件夹brook、china-dns-ng、dns2socks、tcping拷贝到\package\lean目录,menuconfig时选中即可。)
想整合其它包的同理,放入相应文件夹,menuconfig时选中即可。
网易云插件目前的Lean版中的Go版本就是引用的cnsilvan的版本,源码地址https://github.com/cnsilvan/luci-app-unblockneteasemusic,不用另外复制
以下资料来源于互联网,自己边操作边验证修改的。系统Ubuntu18.04 64位
一、安装依赖(终端中输入):
sudoapt-get -y install build-essential asciidoc binutils bzip2 gawk gettext gitlibncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtplibssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconfautomake libtool autopoint device-tree-compiler curl
二、下载源码 git clone https://github.com/coolsnowwolf/lede.git
三、如果后期要更新本地git源码 git pull
四、更新源码中引用源
cd source
./scripts/feeds update -a
./scripts/feeds install -a
或./scripts/feedsupdate -a && ./scripts/feeds install -a
下载所有脚本和程序makedownload -j5
五、测试编译环境
make defconfig 根据屏幕信息补全安装所需依赖
六、进入编译配置界面
make menuconfig
- Target System--→Broadcom BCM47xx/53xx (ARM)
- Target Profile--→PHICOMM K3
- Target Images--→默认选中squashfs
- 支持 iPv6:
Extra packages —> ipv6helper (选定这个后下面几项自动选择了)
Network —> odhcp6c
Network —> odhcpd-ipv6only
LuCI —> Protocols —> luci-proto-ipv6
LuCI —> Protocols —> luci-proto-ppp
- 先在Luci-application和theme里选择要安装的插件,会自动选择依赖。
Luci---→Applications---→ 增加选中
luci-app-guest-wifi 访客网络
luci-app-hd-idle 硬盘休眠
luci-app-meshwizard
luci-app-minidlna
luci-app-mwan3 多拨
luci-app-mwan3helper
luci-app-打倒美帝---→configuration全部选中(外部复制)
luci-app-samba4
luci-app-serverchan 微信推送路由状态
luci-app-乳酸菌饮料-plus---→选中除server选项
luci-app-statistics 增加主菜单统计界面
luci-app-unblockneteasemusic(外部复制)
luci-app-usb-printer
luci-app-vsftpd取消选中
luci-app-wifischedule
luci-app-wrtbwmon (用以配合serverchan统计功能)
Luci-Themes---→ 全部选中
Utilities---→collectd---→ 选中collectd-mod-thermal 开启统计中温度插件
一些需要注意的小问题:
1、局域网传输ftp写入只有30多兆关闭acc里面的bbr加速:禁用默认编译samba,改用samba4,现在已恢复正常 2、 luci里面的wrtbwmon插件貌似新版已经不能用了要关掉flowoffload里的硬件加速才行(影响serverchan流量统计功能)新版似乎不影响。 3、选择了virtual**-Softether编译后 然而功能模块却不出现在Web界面里:p p t p有web界面,因为固件默认勾选了luci-app-p p t p-server,如果你要softether有web界面,那么请你把luci-app-softethervirtual**这个勾上,它自动会加载相关依赖。另外单独勾选softether并没有web界面,因为它并不需要luci-app-softethervirtual**依赖。最好、最简单的方法就是直接勾选luci内相关软件,会自动加载依赖。 4、K3 的 CPU 没有 FPU,不能运行 Docker 和 Nodejs
七、进行编译,输入下列命令
make -j1 V=s或make V=s(单线程,非常慢)
注意:-j1 后面是线程数。第一次编译推荐用单线程,国内请尽量全局兲朝上网。-j8还是j4根据你cpu内核定,我是9900k,直接8核编译,需时大概15-20min左右,即可编译好。生成的文件在openwet/bin/target/x86/64里面,openwrt-x86-64-combined-squashfs.img就是我们要的文件,以后升级我们可以在target images里打开gzip images,升级就用openwrt-x86-64-combined-squashfs.img.gz文件。
还是用Kernel来测试:
用make: 40分16秒
用make -j4:23分16秒
用make -j8:22分59秒
由此看来,在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。不过这个方案不是完全没有cost的,如果项目的Makefile不规范,没有正确的设置好依赖关系,并行编译的结果就是编译不能正常进行。如果依赖关系设置过于保守,则可能本身编译的可并行度就下降了,也不能取得最佳的效果。如果不指定"-j"选项,则默认只有一个job。如果使用了"-j",但没有指定参数,则这时候jobs数目没有限制
八、修改编译设置:
1.修改主机名,设定时区,IP地址
打开/package/base-files/files/bin/config_generate文件,修改如下
generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
add system system
set system.@system[-1].hostname='LEDE'#修改主机名
set system.@system[-1].timezone='Asia/Shanghai'#修改默认时区
lan) ipad=${ipaddr:-"192.168.1.1"} ;;#修改默认IP
2.修改WIFI信息
打开/package/kernel/mac80211/files/lib/wifi/mac80211.sh文件,修改如下
set wireless.radio${devidx}.disabled=0#改为0自动打开wifi
set wireless.default_radio${devidx}=wifi-iface
set wireless.default_radio${devidx}.device=radio${devidx}
set wireless.default_radio${devidx}.network=lan
set wireless.default_radio${devidx}.mode=ap
set wireless.default_radio${devidx}.ssid=LEDE#wifi名称
set wireless.default_radio${devidx}.encryption=psk2#wifi加密方式,没有是none
set wireless.default_radio${devidx}.key=password#wifi密码
3.SSH/TELNET显示信息修改方式:
打开/package/base-files/files/etc/banner文件,修改。
4.修改默认主题
打开/feeds/luci/collections/luci/Makefile文件,修改如下(实测似乎无效)
LUCI_DEPENDS:= \
+uhttpd +uhttpd-mod-ubus +luci-mod-admin-full +luci-theme-argon \
+luci-app-firewall +luci-proto-ppp +libiwinfo-lua \ +rpcd-mod-rrdns
5.修改路由连接数(Lean版默认已经是最大65535)
打开/package/base-files/files/etc/sysctl.conf文件,修改如下
net.netfilter.nf_conntrack_max=65535#连接数
TIPS:修改源码后重新编译需要删除build_dir目录跟staging_dir目录还有tmp目录。
給openwrt固件添加打倒美帝插件的方法
(实测将主程序luci-app-打倒美帝文件夹及依赖包brook、china-dns-ng、dns2socks、tcping拷贝到lean的package目录,menuconfig时选中即可。)
有人喜歡Lienol的打倒美帝的插件,那以下是給openwrt固件添加打倒美帝插件的方法。
1、克隆lean的源代碼到本地;
git clone http://github.com/coolsnowwolf/lede
2、然後 cd lede 進入目錄;
3、添加 src-git lienolhttp://github.com/Lienol/openwrt-package 到 OpenWRT源碼根目錄feeds.conf.default文件。
feeds.conf.default 文件在lede根目錄中,使用文本編輯器打開既可。
4、執行下面的命令
./scripts/feeds clean
./scripts/feeds update -a
rm -rf feeds/lienol/lienol/ipt2socks
rm -rf feeds/lienol/lienol/违禁软件-libev
rm -rf feeds/lienol/lienol/pdnsd-alt
rm -rf feeds/lienol/package/verysync
rm -rf feeds/lienol/lienol/luci-app-verysync
rm -rf package/lean/kcptun
rm -rf package/lean/trojan
rm -rf package/lean/v贰瑞
rm -rf package/lean/luci-app-kodexplorer
rm -rf package/lean/luci-app-pppoe-relay
rm -rf package/lean/luci-app-p p t p-server
rm -rf package/lean/luci-app-v贰瑞-server
./scripts/feeds install -a
然後makemenuconfig 進入編譯菜單。
二次编译时:
cd lede 进入LEDE目录
gitpull 同步更新源码
./scripts/feedsupdate -a && ./scripts/feeds install -a 更新FEEDS
rm -rf ./tmp && rm -rf.config 清除编译配置和缓存
make menuconfig 进入编译配置菜单,根据需要修改
make -jn V=s n=线程数+1,例如4线程的I5填-j5,开始编译
单独编译ipk软件包(一般直接拷贝到/package/lean即可):
你都没有先编译工具链,自然会失败,先 make 这个 target 的固件,然后才可以分别编译包
git clone https://github.com/rosywrt/luci-theme-rosy.git /home/cheng/openwrt/lede/package
到插件里选中要编译的插件,编译主题同理
make package/lean/luci-theme-argon-mc/compileV=99
编译后的ipk文件在以下路径
~/lede/bin/packages/x86_64/base
如果你在luci-app-乳酸菌饮料-plus处按M而不是空格,那么相当于把该插件编译为模块而不是编译入固件,这样做当然可以,但是建议第一次先全部编译,然后再次单独编译,不然单独编译一个插件会失败。
1.下载所有脚本和程序
这一步就是要兲朝上网的原因所在,不然很多程序不能顺利下载导致编译失败。
代码最后的-j5可以把数字替换为你CPU核数+1。
make download -j5
2.开始编译
同上,数字可以改,核越多越快,这一步需要等待几分钟~几十分钟不等。
make -j5 V=s
|