Skip to content

LCD screen controller for PHICOMM K3(7 screens perfect display, the original speed is not normal)

License

Notifications You must be signed in to change notification settings

lwz322/k3screenctrl

 
 

Repository files navigation

简介

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转发)

上面主要是接近官方固件的屏幕信息显示,针对新版本通过修改脚本,添加了在前两屏更多信息的显示的选项,默认开启,如下

custom

  • 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无法统计流量

SDK编译

因为在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提供了屏幕固件的文件

  1. 所有代码的基础:

  2. 指出问题:

    屏幕过一段时间会睡死,关了天气更新都会。。但路由功能正常的。。。

En

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)

Screen Interface

New Version add additional info display, including: CPU temprature, Load, RAM, uptime, etc

  1. Update
  2. Model, Version, CPU Temp, MAC
  3. Port
  4. Speed, WiFi (2.4G/5G client) Assicated
  5. Weather, Date and Time
  6. WiFi Info:SSID & Password (suppressible)
  7. Client speed (IPv4 Forward only)

About

LCD screen controller for PHICOMM K3(7 screens perfect display, the original speed is not normal)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 34.7%
  • Shell 34.2%
  • Makefile 30.7%
  • M4 0.4%