谷动谷力

 找回密码
 立即注册
查看: 2076|回复: 0
打印 上一主题 下一主题
收起左侧

【平头哥Sipeed LicheeRV 86开发板试用】SDK编译的系统屏适配

[复制链接]
跳转到指定楼层
楼主
发表于 2022-3-16 00:35:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【平头哥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 来覆盖板级配置
覆盖指令为:
  1. sudo dd if=boot_package_XXX.fex of=/dev/sdX bs=1K seek=16400
复制代码


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


操作步骤

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

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

2、插卡前 用命令
  1. ls /dev/sd*
复制代码

检查下 设备号



3、插卡后,用命令
  1. ls /dev/sd*
复制代码

再检查下 设备号

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


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

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

标配的是rgb


所以,执行命令:

  1. 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
  1. root@MaixLinux:~# cat /sys/class/disp/disp/attr/sys
  2. screen 0:
  3. de_rate 300000000 hz, ref_fps:60
  4. mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
  5. dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
  6.     lcd output    backlight( 50)    fps:59.5    esd level(0)    freq(60)pos(0)    reset(0)     480x 480
  7.     err:0    skip:314    irq:1870259    vsync:0    vsync_skip:0   
  8.    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]
复制代码
一切正常


运行命令:
  1. fbtest
复制代码
可以看到条纹

屏幕彩条测试:
  1. echo 1 > /sys/class/disp/disp/attr/colorbar
复制代码
清除屏幕布彩条
  1. echo 0 > /sys/class/disp/disp/attr/colorbar
复制代码



用 ts_test进行触摸测试, 点屏,终端会打印坐
  1. root@MaixLinux:~# ts_test
  2. 31928.017458:     67     45      0
  3. 31928.143684:      0      0      0
  4. 31928.570296:    226     55      0
  5. 31928.673580:      0      0      0
  6. 31928.950407:    428     66      0
  7. 31929.007613:      0      0      0
复制代码


到 /root目标ls查看
  1. root@MaixLinux:~# ls
  2. app_sispeed.aot                render_example_d1_allwin.wasm
  3. render_example.wasm
复制代码
看到有3个可以waft程序

输入命令

  1. waft_app render_example_d1_allwin.wasm
复制代码


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



总结

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

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-20 11:21 , Processed in 0.092365 second(s), 38 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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