最近在OrangePi-win板子上搭建了一个soc系统。我使用来自每个官方站点的原始 uboot 和内核源代码,以及一个可行的 ATF 代码。这些都构建得很好,我可以用它们来启动板:但是 hdmi 上的图形根本不工作,而调试串行端口工作正常。
这是我的问题:
据我了解,在uboot启动后,它会加载内核来处理整个板,当传递正确的设备树信息和其他需要内核参数时。我可以说 uboot 只需要一个简单的设备树来构建和启动开发板,而内核则需要完整配置的设备树信息吗?
uboot加载内核后,内核会处理所有事情,不再处理uboot,对吗?如果这是正确的,当我让 uboot 加载刚刚从运行良好的系统复制的内核和设备树时:连同它们的 /lib/modules,为什么内核会遇到很多错误?请注意,我已经修改了原来的工作系统,让它只改变了引导加载程序部分。内核,rootfs 没有任何改变。也就是说,我改变的只是做一个命令:
dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=8k seek=1
然后将内核映像与 dtb 一起正确位置和文件名,以便新的引导加载程序可以找到并加载它们。现在引导加载程序可以正常工作,并加载内核 dtb,但随后无法显示 hdmi 控制台和许多其他故障,并且根文件系统安装为只读状态。正如我上面提到的,现在内核已经加载,所以它应该可以处理所有事情,不会失败,它就像以前一样未更改的系统,是吗?但是随着引导加载程序的改变,它只是每一个不同的地方。我错过了一些要弄清楚的事情吗?
- 修改后的系统只是无法初始化 hdmi 输出,屏幕上显示许多垃圾,或者只是黑屏。请注意,内核在使用另一个引导加载程序时运行良好,应该在哪里进行更改以使其再次正常运行?