我们将进一步开发测试,这次就不用连接那些外设了,直接使用VNC来进行开发,前面的配置我们已经开启了VNC,接下来使用电脑自带的VNC Viewer来登录一下,新建VNC连接:
输入我们当时创建的新密码就可以登录了:
我们这次给其配备了一个树莓派5的屏幕,Touch Display 2,5寸电容触控显示屏2代 720×1280像素,五点触摸,DSI 接口IPS显示屏,似乎和七寸的分辨率很像,不过不知道驱动是不是一样的,刚连接并没有任何显示(注意连接好再上电):
目前默认的是HDMI输出,我们修改一下配置试一下,这个分辨率和吋很像,依然是使用srpi-config工具来修改,需要开启DSI输出:
选择7吋屏:
接下来重启看一下效果,黑屏,甚至背光都没有效果。对于并没有有太多linux底层开发经验的我来说,直接添加驱动是不显示的,所以我们参考了乔老板的驱动进行屏幕的更换,手里正好有DFRobot的V2版本的屏,应该是通用的,安装的了对应的驱动后依然式黑屏状态,不过背光是亮的,通过乔老板的帮助对系统和驱动进行了全面的检查,我们实现了启动设备后的屏幕驱动成功,进行了不同颜色的刷屏现实,到这一步正常来说屏已经驱动成功了,可是进入桌面后还是依然是黑屏状态,我们还需要继续查找原因。
我们检查一下驱动:
这些都在工作,包括HDMI:
进一步检查:
cat /sys/class/drm/card0-HDMI-A-1/status
cat /sys/class/drm/card0-DSI-1/status
居然都在正常连接,可是我们HDMI接口物理上层次上应该是没有的:
这里埋个伏笔,后面的问题大概率就是这里的问题导致的,通过不断的检查在进行xrandr检查,发现使用的桌面输出是默认的,也就是这两个连接的输出都没有用,不过实物连接的只有DSI,我们通过检查可以发现:
硬件连接没问题;
驱动层也没有问题;
桌面输出也有,但是就没有用正确的通道。
我们看到了在启动阶段,屏幕的显示也是正常的,乔老板的驱动在无信号的时候是五色循环的,但是启动之后就黑屏了,那么问题就处在了启动之后的处理,这里涉及到系统底层的内容,能力有限,只能求助了乔老板,通过多天的测试终于定位到了问题的位置,具体的解决办法可以看:
大致介绍一下问题的所在,在启动后桌面要输出,这个时候进行对应的输出通道的检测,这个时候检测到HDMI和DSI,但是RDK这个系统HDMI的优先级应该是比较高得,“没接HDMI接口屏幕却显示 connected”,可能原因是HPD引脚被硬件拉高,这就导致被检测到了进而实现了假连接,然后就通过这个接口进行协议输出,结果失败了,这就导致转向了默认输出,默认输出是个虚拟输出,这里得输出接口逻辑存在很大的问题,正常系统的逻辑是连接里面的设置优先级,如果失败了就连接下一个比较好。
这里进行了全面的对比,最后发现只有这里的差异:
这个差异还是不可消除了,乔老板的固件已经把这个问题解决了,就是在获取桌面后直接强制进行DSI进行输出,正常的板子没有来连接就是“未连接”,现在不知道@空耳是那种情况的。单板之间的差异导致的这个问题。
现在桌面已经能通过5吋屏显示了: