结合ningnao、ZhangCharlieの修改,感谢大佬们的付出。 更多见我fork的k3screenctrl_build
在 zxlhhyccc/Hill-98-k3screenctrl 已经给K3屏幕开启了7屏的基础上,使用 K3 openwrt18.06.02 固件中的/lib/k3screenctrl/
下的sh文件做了替换
搭配的 luci-app 是根据固件的LuCI文件修改的 lwz322/luci-app-k3screenctrl
最后使用修改自 lean/lede 中的编译文件 k3screenctrl_build 编译
实测在用官方ImmortalWrt/OpenWrt固件给刷机后,屏幕是常亮状态,下载release的IPK文件:
上传到路由器,安装之后,检查服务,k3screenctrl是否是启动(enable)状态;如果不是启动状态手动调整为启动状态;之后重启路由器,待重启后观察屏幕是否正常显示内容(如果不需要显示天气功能的话,建议在设置界面关掉)
如果使用的是OpenWrt 21.02之后的版本,由于没有编译对应DSA架构的ipk,需要替换/lib/k3screenctl/port.sh
为仓库最新的port.sh
2023.7.20 OpenWrt在21.02更新后,K3的BCM53xx平台swconfig迁移到DSA导致port.sh报错:修改了port.sh,使用ip link替换swconfig读取网络接口的状态
2020.9.17 TARGET依赖导致menuconfig不显示的兼容 :详见k3screenctrl_build的README
2020.3.14 睡死问题的修复进展 :尝试修复屏幕驱动睡死的问题对睡死问题在逐步跟进和修复,修复这个问题或许就差几个反馈
具体进展可见于likanchen/k3screenctrl,编译固件时也可以尝试替换,希望有这方面问题的同学可以积极测试和反馈,一起完善K3的OpenWrt
2020.3.13 脚本arp命令报错 :对报错,调查了下应该是历史遗留问题
OpenWrt早先时候(k3screenctrl的开发时间是2017年)的arp命令对应一个程序,现在版本只是定义在/etc/profile的一个函数,即登陆shell的环境变量中的函数,故单独运行脚本就会报错,然而这个不影响k3screenctrl的正常输出,理论上注释也不影响
2020.2.15 屏幕睡死问题:总算是接到反馈,亲眼见到了屏幕睡死的表现
- 黑屏,触摸无响应
- 进程并没有被终止(也就不是靠添加守护进程就能解决)
- 负载处于正常范围内,网络路由功能也是正常的
所以,暂时没有什么特别有效的方法,只能重启k3screenctrl临时恢复屏幕功能;K3的屏幕固然鸡肋,但是解决问题是趋势所向,在readme后段提供了个人已知的k3screenctrl的信息,如果有修复的案例,欢迎反馈
2020.1.31 天气API的问题:已知的一个致命问题
屏幕会隔三差五的睡死,睡死时候,网路会出异常,变得非常慢,检查系统日志,会发现k3screenctrl大量的错误信息。硬重启后恢复正常。软重启无法激活屏幕。 所有带k3screenctrl的固件都有睡死问题,据说是天气API导致的。但是也有人说一切正常,所以真实原因,自己刷了才知道
考虑到作为路由器还是要稳定性优先的,所以尽可能排除不稳定因素,参考了下 K3 OpenWrt固件(更新日期 2020.1.30),决定本仓库的代码默认不再自带天气的私钥,默认不再开启天气更新(更新间隔设置为0,脚本不运行),有需求可以自行申请心知天气的API或者下载已经提供了API Key的固件;
基本情况可以参考下图:
- 第一屏:升级界面
- 第二屏:型号(硬件版本型号H/W全部显示为A1),MAC,软件版本
- 第三屏:USB与网口接入情况
- 第四屏:网速以及2.4G和5G WiFi的接入客户端数量
- 第五屏:天气,时间
- 第六屏:WiFi信息:SSID和密码(可选隐藏)
- 第七屏:已接入终端和网速(只统计IPv4转发)
上面主要是接近官方固件的屏幕信息显示,针对新版本通过修改脚本,添加了在前两屏更多信息的显示的选项,默认开启,如下
- U:0.14 R:8%:CPU负载 内存占用百分比(和第二屏的软件版本显示的一样)
- up 10:47:运行时间
- H/W: 48*C:CPU温度
- MAC地址: OpenWrt 19.07.0:系统版本号
- 部分设备的屏幕在使用本软件后无法正常显示界面,可能是屏幕本身的固件版本较低,可以通过刷较新版本的官方/官改固件对屏幕固件升级
- 部分设备存在屏幕睡死的问题,具体表现为黑屏状态下触摸无反应
- 依靠IP定位偶尔可能无法定位到准确的城市,进而无法自动查询天气,建议关闭IP定位,手动指定城市
- WiFi信息部分的访客网络信息,OpenWrt官方没有访客网络的APP,也就没有标准一说,脚本中的设置貌似不适合添加SSID访客网络的做法
- 在开启硬件转发加速(HWNAT或者offload)的情况下,iptable无法统计流量
因为在k3screenctrl的Makefile文件中有对机型的要求的倚赖,所以使用SDK单独编译k3screenctrl时,k3screenctrl不会被编译
具体也就是k3screenctrl_build文件中的DEPENDS:
define Package/k3screenctrl
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=@TARGET_bcm53xx_DEVICE_phicomm-k3 +@KERNEL_DEVMEM +coreutils +coreutils-od +bash +curl
TITLE:=LCD screen controller on PHICOMM K3
URL:=https://github.com/lwz322/k3screenctrl.git
endef
解决办法:去掉depends中的=@TARGET_bcm53xx_DEVICE_phicomm-k3 +@KERNEL_DEVMEM
最早要追溯到2017年updateing的【测试】K3 的 LEDE(更新部分屏幕支持),最主要的是逆向做出了k3screenctrl,使得屏幕显示有了开源支持;另外作者在2019年也更新了屏幕固件更新的代码,CCluv/k3screenctrl提供了屏幕固件的文件
-
所有代码的基础:
-
[2019-01-21]K3补丁已经提交合并到OpenWrt官方源码,附加自编译说明,K3补丁(基于updateing的创始代码)。补丁继承了LCD屏幕接口,增加了对USB3.0的支持
-
2018.5 Hill-98/luci-app-k3screenctrl添加了网页设置的支持
-
[2019.03.26更新]K3 openwrt18.06.02 完美适配屏幕天气页,应该是天气显示支持的开端,我的仓库中的sh文件基于此修改,结合了在Github上找到的可能的开源实现zxlhhyccc/Hill-98-k3screenctrl
修复因天气api超时导致程序进程卡死屏幕黑屏的问题, 不保证API的稳定可用
因为自动识别天气城市的api用的阿里的一个api,最近抽风,脚本里没有超时设置,会导致进程卡死,屏幕会有错误或黑屏的问题,可以通过手动指定城市解决,有能力的自己改下脚本设置一下超时,后面有时间修复
屏幕显示天气要以前刷过新版官方或官改固件,屏幕固件是新版的才行
-
-
指出问题:
-
2019-10-21斐讯 K3 屏幕控制程序升级版 【6个页面】MAC显示修复 长按脚本,github内附了最详细的技术readme
-
(2020-1-8)netflixcn的裴讯 K3 OpenWrt LEDE刷机固件,k3的openwrt固件中用户最多的一个?也是直接指出了问题
已知的一个致命问题: 屏幕会隔三差五的睡死,睡死时候,网路会出异常,变得非常慢,检查系统日志,会发现k3screenctrl大量的错误信息。硬重启后恢复正常。软重启无法激活屏幕。
所有带k3screenctrl的固件都有睡死问题,据说是天气API导致的。但是也有人说一切正常,所以真实原因,自己刷了才知道。
屏幕过一段时间会睡死,关了天气更新都会。。但路由功能正常的。。。
-
On the basic of zxlhhyccc/Hill-98-k3screenctrl,added .sh file from K3 openwrt18.06.02,It works fine with lwz322/luci-app-k3screenctrl & k3screenctrl_build (fromlean/lede)
New Version add additional info display, including: CPU temprature, Load, RAM, uptime, etc
- Update
- Model, Version, CPU Temp, MAC
- Port
- Speed, WiFi (2.4G/5G client) Assicated
- Weather, Date and Time
- WiFi Info:SSID & Password (suppressible)
- Client speed (IPv4 Forward only)