找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 18645|回复: 63

[k3] K3 Lean固件编译修改教程

 火.. [复制链接]
本帖最后由 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=smake 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








评分

参与人数 10恩山币 +10 收起 理由
bil*** + 1 风清云淡、飘逸悠然……极爽!
vic*** + 1 恩山全体路由党向你学习!
tang*** + 1 能不能造福大伙,编个支持802.11r/s的固件?
q8927*** + 1 感谢,需要这种帖子,自己不会编译,谢谢大佬
sixty*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
Mr.*** + 1 强大的恩山!(以下重复1万次)
小*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
懒*** + 1 强大的恩山!(以下重复1万次)
Shanh*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
qyz*** + 1 2333

查看全部评分

感谢兄弟的分享,谢谢了!!!
回复

使用道具 举报

 楼主| | 显示全部楼层
tinylion 发表于 2020-2-20 15:40
感谢兄弟的分享,谢谢了!!!

之前论坛下载的固件,cpu平均负载一直在1以上,自己编译的平均负载基本不超过1。前者开启的自带plus出国插件,后者开启的passwall插件,还有就是编译时源码的版本不同吧。
回复

使用道具 举报

希望楼主在编辑一下,修改一下排版
回复

使用道具 举报

不错 虽然完全看不懂
回复

使用道具 举报

 楼主| | 显示全部楼层
qyztbr 发表于 2020-2-20 15:53
希望楼主在编辑一下,修改一下排版

rtf拷贝过来的,又简单排了下
回复

使用道具 举报

 楼主| | 显示全部楼层
raul222 发表于 2020-2-20 16:20
不错 虽然完全看不懂

看着一大堆,步骤没几个,和给电脑装系统差不多简单
回复

使用道具 举报

好东西,收藏了
回复

使用道具 举报

收藏了....
回复

使用道具 举报

来自手机 | 显示全部楼层
认真学习,认真学习,认真学习
回复

使用道具 举报

感谢分享!!!
回复

使用道具 举报

怎么装passwall啊
回复

使用道具 举报

 楼主| | 显示全部楼层

没有单独的ipk,因为还有依赖包要装:brook、china-dns-ng、dns2socks、tcping
回复

使用道具 举报

zwillhill 发表于 2020-2-20 22:36
没有单独的ipk,因为还有依赖包要装:brook、china-dns-ng、dns2socks、tcping

能否提供一份不jayyaoangel@163.com 连接不知道为什么我这里打不开。通过winscp放进指定位置后,还要做什么操作么?
回复

使用道具 举报

 楼主| | 显示全部楼层
tonekey 发表于 2020-2-20 22:38
能否提供一份不 连接不知道为什么我这里打不开。通过winscp放进指定位置后,还要做什么操作么?

还要连接ssh安装ipk,命令:
cd /tmp/upload    进入上传文件所在文件夹
opkg install *.ipk      安装该文件夹下所有ipk
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-9 05:09

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表