• 正文
  • 相关推荐
申请入驻 产业图谱

​SipeedLicheeRV86开发板全志D1_SDK编译的系统镜像屏不适配问题解决

01/24 15:02
494
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

最近群里有小伙用全志官方SDK,  编译了D1系统镜像,说屏点不亮, 昨天我也编译好了,没有代码里适配屏,也要这样的操作一下。

准备

开发板fex适配文件, 下载:

https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/SDK/board

LicheeRV 86开发板 SDK编译的系统镜像屏不适配 原因分析

LicheeRV 86开发板是新出来的,全志官方SDK,未适配正常,但sipeed提供了 fex  适配

参考文档https://www.freesion.com/article/42151346373/

driver连接硬件资源大概就这样,mtk和qcom解析硬件资源直接就在厂商驱动中通过dsti解析节点,全志中间加了一层用于解析,解析的节点来自fex文件。基本是一样,还是设备节点,还是of api解析。

这个fex,应该就是适配硬件的, 源码应该没适配好

fex解说

这个网站上有详细的介绍Fex
http://linux-sunxi.org/Fex_Guide#FEX_Description
也可以转到
http://linux-sunxi.org

了解全志的sunxi

翻译一下

一些翻译和概括:

fex目录:
lichee/tool/pack/chips/sun8iw11p1/config/a40-p1/sys_config.fex

fex是Allwinner的设备树,用于配置gpio和一些配置,然后fex文件不是像dts一样用于解析的,而是fex
编译器编译的。

然后后面英文有备注全志跟其他mtk和高通平台不一样,不依赖dts和dsti:

注意:主线Linux内核不使用FEX / script.bin,而是依靠设备树模型(.dtb文件)

 

--------------------
总结起来就是:

驱动 = driver code + fex配置

解决方法

官方文档说:

如果烧录的镜像后缀与板子实际型号不符,下载对应的 boot_package_XXX.fex 来覆盖板级配置

覆盖指令为:

sudo dd if=boot_package_XXX.fex of=/dev/sdX bs=1K seek=16400

小伙伴,不知道,怎么操作,这里吐槽一下,官方文档写的,很不详细,还有错误

操作步骤

下面我把详细步骤说一下:

1、系统镜像烧录到tf卡后,读卡器插到linux开发机,虚拟机的话先主机弹出tf卡设备(软件操作)插电脑上,要点虚拟机访问

2、插卡前 用命令

ls /dev/sd*

检查下 设备号

3、插卡后,用命令

ls /dev/sd*

再检查下 设备号

增加的,就是刚插入的tf卡设备号

sdx 要用查到设备号替换为sdb

4、dd烧录fex

注意:LicheeRV 86开发板有两个屏镜,sipeed也提供了两适配文件fex

标配的是rgb

所以,执行命令:

dd if=boot_package_86_480p_bgr.fex of=/dev/sdb bs=1k seek=16400

注:命令功能 把boot_package_86_480p_rgb.fex 写seek=16400 开始扇区,大小 1k

5、把卡插到LicheeRV 86开发板,启动LicheeRV 86开发板

6、网络配置好操作参考:【平头哥Sipeed LicheeRV 86开发板试用】连接网络

7、测试屏,检查是否适配成功

查看屏信息命令cat /sys/class/disp/disp/attr/sys

root@MaixLinux:~# cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:60
mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
lcd output backlight( 50) fps:59.5 esd level(0) freq(60)pos(0) reset(0) 480x 480
err:0 skip:314 irq:1870259 vsync:0 vsync_skip:0
BUF enable ch[1] lyr[0] z[16] prem[N] a[globl 255] fmt[ 0] fb[ 480, 480; 480, 480; 480, 480] crop[ 0, 0, 640, 240] frame[ 0, 0, 480, 480] addr[ffe00000, 0, 0] flags[0x 0] trd[0,0]

一切正常

运行命令:

fbtest

可以看到条纹

屏幕彩条测试:

echo 1 > /sys/class/disp/disp/attr/colorbar

清除屏幕布彩条

echo 0 > /sys/class/disp/disp/attr/colorbar

用 ts_test进行触摸测试, 点屏,终端会打印坐

root@MaixLinux:~# ts_test

 

31928.017458:     67     45      0

31928.143684:      0      0      0

31928.570296:    226     55      0

31928.673580:      0      0      0

31928.950407:    428     66      031929.007613: 0 0 0

..........

到 /root目标ls查看

root@MaixLinux:~# ls

app_sispeed.aot

render_example_d1_allwin.wasmrender_example.wasm

看到有3个可以waft程序

输入命令

waft_app render_example_d1_allwin.wasm

可以看到如下效果,我们屏已经适配好了

总结

全志fex屏适配方法,很好用,比修改代码适配方便多,改代码不一定改对,群里小伙伴,改了很久都没适配成功,编译系统镜像也是很费时,给全志点赞

全志科技

全志科技

全志科技以客户为中心,凝聚卓越团队,坚持核心技术长期投入,在超高清视频编解码、高性能CPU/GPU/AI多核整合、先进工艺的高集成度、超低功耗、全栈集成平台等方面提供具有市场突出竞争力的系统解决方案和贴心服务,产品广泛适用于工业控制、智能家电、智能硬件、平板电脑、汽车电子、机器人、虚拟现实、网络机顶盒以及电源模拟器件、无线通信模组、智能物联网等多个产品领域。

全志科技以客户为中心,凝聚卓越团队,坚持核心技术长期投入,在超高清视频编解码、高性能CPU/GPU/AI多核整合、先进工艺的高集成度、超低功耗、全栈集成平台等方面提供具有市场突出竞争力的系统解决方案和贴心服务,产品广泛适用于工业控制、智能家电、智能硬件、平板电脑、汽车电子、机器人、虚拟现实、网络机顶盒以及电源模拟器件、无线通信模组、智能物联网等多个产品领域。收起

查看更多
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录