【平头哥Sipeed LicheeRV 86开发板试用】SDK编译的系统屏适配
【平头哥Sipeed LicheeRV 86开发板试用】SDK编译的系统镜像屏不适配问题解决加触屏检验最近群里有小伙用全志官方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 cs range eotf bits err force_sync unblank direct_show iommu
dmabuf: cache cache max umap skip overflow
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 lyr z prem a fmt fb[ 480, 480; 480, 480; 480, 480] crop[ 0, 0, 640, 240] frame[ 0, 0, 480, 480] addr flags trd一切正常
运行命令:
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 0
31929.007613: 0 0 0
到 /root目标ls查看
root@MaixLinux:~# ls
app_sispeed.aot render_example_d1_allwin.wasm
render_example.wasm
看到有3个可以waft程序
输入命令
waft_app render_example_d1_allwin.wasm
可以看到如下效果,我们屏已经适配好了
总结
全志fex屏适配方法,很好用,比修改代码适配方便多,改代码不一定改对,群里小伙伴,改了很久都没适配成功,编译系统镜像也是很费时,给全志点赞
页:
[1]