一段时间以来,我一直尝试使用从速卖通订购的显示器来使其与适用于 Orange Pi 5 的非官方 7Ji Arch Linux 发行版,无济于事。也许与我更好的判断相反,我更喜欢这种发行版而不是 OPi 最初的 Arch 发行版,因为我想要一个准系统 Arch,它仍然可以在 OPi5 上正常工作,而且除了显示之外,它确实可以正常工作。显示为5" 4 通道 DSI,型号“WKS50HD005”,如果有用的话。
我知道首先我需要为 OPi5 的正面 lcd2 端口启用 dtbo 覆盖,稍后发现它是通过FDTOVERLAYS
中的条目指定的/boot/extlinux/extlinux.conf
,指向 .dtbo 文件/boot/dtbs/linux-aarch64-orangepi5/rockchip/overlay/
,但启用内置rk3588-lcd2.dtbo仅覆盖显示屏背光。所以到目前为止,我一直在努力让它日复一日地工作......几天了。
显示器的商店页面提供了一个链接Google 云端硬盘上的驱动程序,其中包括 Orange Pi 5 目录,其中包含 .deb 包,面板-innolux-afj101-ba2131.c内核模块和自述文件.txt。 readme.txt 有编译内核的说明原始出处来自百度(卖家后来给出了链接,但是我在那里没有账户所以无法下载任何东西)。
起初我以为简单地用 Arch 的 dpkg 安装 .deb 就可以了,但是系统变砖了(后来发现这个包写入了一个不同的/lib/modules/ 内核目录而不是我的内核目录),尽管它本身不是问题,因为我只是将 Arch 映像重新刷新到我启动的 NVMe 驱动器,并使用 OPi 的 Arch 安装刷新了备份 SD 卡。作为参考,.deb 的内核是 ver。5.10.110
对比 7Ji 的 Arch 内核版本。5.10.110-6
,因此我仍然认为应该有一定的兼容性。
后来我认为我需要编译提供的 .c 模块,所以我从7Ji 仓库,制作一个 Makefile 并编译它,用面板-innolux-afj101-ba2131.ko文件正在输出到/lib/modules/5.10.110-6-aarch64-orangepi5+/kernel/drivers/gpu/drm/panel/
.我还添加了一个kernel/drivers/gpu/drm/panel/panel-innolux-afj101-ba2131.ko
(根据 readme.txt) 线到两者模块.顺序和一个新的/etc/modules-load.d/
.conf文件,仍然无济于事。
然后我决定解压 .deb 文件,几乎什么也没发现:没有目录/kernel/drivers/gpu/
,更不用说模块了,尽管模块.内置包含行:
内核/驱动程序/gpu/drm/panel/panel-simple.ko
内核/驱动程序/gpu/drm/panel/panel-innolux-afj101-ba2131.ko
从.deb,我发现了一个rk3588-lcd2.dtbo文件,在lib/modules/linux-image-legacy-rockchip-rk3588/rockchip/overlay
所有地方,尽管在类似于 7Ji 的 Arch 内置文件的目录中/boot/dtbs/linux-aarch64-orangepi5/rockchip/overlay
——文件与我的内置文件不同,所以我尝试将它放在最初的内置文件旁边rk3588-lcd2.dtbo和链接extlinux.conf到它。结果,显示器甚至没有背光。
格雷普“数字SI“来自 dmesg带有内置 dtbo显示:
[7.606294]dw-mipi-dsi2 fde30000.dsi:[drm:dw_mipi_dsi2_bind]错误无法找到面板或桥:-517
[8.530159] rockchip-drm 显示子系统:绑定 fde30000.dsi(ops 0xffffffc0111897e0)
[9.151023] dw-mipi-dsi2 fde30000.dsi:[drm:dw_mipi_dsi2_encoder_enable]最终 DSI-Link 带宽: 403300 x 4 Kbps
*进一步 grepping ”显示子系统”:
[7.594906]rockchip-drm显示子系统:无法获取hdmi0_phy_pll:-517
[7.594916]rockchip-drm显示子系统:无法获取hdmi1_phy_pll:-2
[7.606247]rockchip-drm显示子系统:绑定fdd90000.vop(操作0xffffffc01117f730)
[8.510393] rockchip-drm display-subsystem:无法获得HDMI0_PHY_PLL:-517
[8.510408] rockchip-drm display-ubsystem:display-subsystem:无法获得hdmi1_phy_phy_pll:
bound fori (操作0xffffffc01117f730)
[8.530159]rockchip-drm显示子系统:绑定fde30000.dsi(操作0xffffffc0111897e0)
[8.531866]rockchip-drm显示子系统:无法解析加载程序内存
[9.262777]rockchip-drm显示子系统: ] fb0:rockchipdrmfb 帧缓冲设备
[9.264376] [drm] 为次要 0 上的显示子系统初始化了 rockchip 3.0.0 20140818
而这样做使用 .deb 提供的 dtbo:
[7.606818]dw-mipi-dsi2 fde20000.dsi:[drm:dw_mipi_dsi2_bind]错误无法找到面板或桥接器:-517
[ 9.139902] dw-mipi-dsi2 fde20000.dsi:[drm:dw_mipi_dsi2_encoder_enable]最终 DSI-Link 带宽:414000 x 4 Kbps
我不情愿地想知道我的内核是否会同意让我目前拥有一个可工作的 Mipi-DSI 显示器的梦想成为现实——将原始 OPi5 的 Arch 指向FDTOVERLAYS
其各自的事实对我很有帮助。rk3588-lcd2.dtbo也只为显示屏提供背光。虽然……考虑到它并没有真正帮助不工作。我对 Linux 内核及其模块的使用经验不是很丰富,但我非常感谢我能够获得使这个项目正常运行的任何和所有帮助和知识。我还将确保提供所有可能有用的附加信息。
非常感谢所有提前认为这个问题值得关注的人。
(PS。没有 Orange-pi 标签,因此#raspberry-pi)