找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 18568|回复: 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

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
感谢兄弟的分享,谢谢了!!!

点评

之前论坛下载的固件,cpu平均负载一直在1以上,自己编译的平均负载基本不超过1。前者开启的自带plus出国插件,后者开启的passwall插件,还有就是编译时源码的版本不同吧。  详情 回复 发表于 2020-2-20 15:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

之前论坛下载的固件,cpu平均负载一直在1以上,自己编译的平均负载基本不超过1。前者开启的自带plus出国插件,后者开启的passwall插件,还有就是编译时源码的版本不同吧。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

点评

rtf拷贝过来的,又简单排了下  详情 回复 发表于 2020-2-20 16:38
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

不错 虽然完全看不懂

点评

看着一大堆,步骤没几个,和给电脑装系统差不多简单  详情 回复 发表于 2020-2-20 16:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

rtf拷贝过来的,又简单排了下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

看着一大堆,步骤没几个,和给电脑装系统差不多简单
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好东西,收藏了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

收藏了....
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
认真学习,认真学习,认真学习
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

怎么装passwall啊

点评

没有单独的ipk,因为还有依赖包要装:brook、china-dns-ng、dns2socks、tcping  详情 回复 发表于 2020-2-20 22:36
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

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

点评

能否提供一份不 连接不知道为什么我这里打不开。通过winscp放进指定位置后,还要做什么操作么?  详情 回复 发表于 2020-2-20 22:38
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

点评

还要连接ssh安装ipk,命令: cd /tmp/upload 进入上传文件所在文件夹 opkg install *.ipk 安装该文件夹下所有ipk  详情 回复 发表于 2020-2-20 22:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

点评

多谢大神,我没有源文件,电脑上打不开LIENOL的主页,手机上可以  详情 回复 发表于 2020-2-20 22:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 11:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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