Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel uboot如何加载内核并继续进行?_Linux Kernel_Embedded Linux_U Boot_Hdmi_Orange Pi - Fatal编程技术网

Linux kernel uboot如何加载内核并继续进行?

Linux kernel uboot如何加载内核并继续进行?,linux-kernel,embedded-linux,u-boot,hdmi,orange-pi,Linux Kernel,Embedded Linux,U Boot,Hdmi,Orange Pi,最近,我在OrangePi win板上构建了一个soc系统。我使用来自每个官方站点的原始uboot和内核源代码,以及一个可行的ATF代码。 这些都是构建良好的,我可以使用它们来启动主板:但是hdmi上的图形根本不起作用,而调试串行端口工作正常 以下是我的问题: 据我所知,在uboot启动后,当传递正确的设备树信息和其他需要的内核参数时,它将加载内核来处理整个板。我可以说uboot只需要一个简单的设备树来构建和启动该板,而内核需要完整配置的设备树信息吗 uboot加载内核后,内核将处理所有事情,不

最近,我在OrangePi win板上构建了一个soc系统。我使用来自每个官方站点的原始uboot和内核源代码,以及一个可行的ATF代码。 这些都是构建良好的,我可以使用它们来启动主板:但是hdmi上的图形根本不起作用,而调试串行端口工作正常

以下是我的问题:

  • 据我所知,在uboot启动后,当传递正确的设备树信息和其他需要的内核参数时,它将加载内核来处理整个板。我可以说uboot只需要一个简单的设备树来构建和启动该板,而内核需要完整配置的设备树信息吗

  • uboot加载内核后,内核将处理所有事情,不再处理uboot,对吗?如果这是正确的,当我让uboot加载一个内核和一个刚刚从一个运行良好的系统复制的设备树时:连同它们的/lib/模块,为什么内核会遇到很多错误?请注意,我已经修改了原始的工作系统,使其仅更改引导加载程序部分。内核、rootfs没有任何变化。也就是说,我改变的只是 执行命令:

    dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=8k seek=1

  • 然后将内核映像和dtb放在一起,以更正位置和文件名,让新的引导加载程序可以找到并加载它们。 现在引导加载程序可以工作了,加载内核dtb,但随后无法显示hdmi控制台和许多其他故障,根文件系统以只读状态装载。 正如我上面提到的,现在内核已经被加载,所以它应该处理所有的事情,没有任何东西会失败,它就像以前的系统一样,是吗?但它只是每一个不同的改变引导加载程序。我是不是错过了什么要弄清楚的

  • 修改后的系统无法初始化hdmi输出,屏幕上会显示许多垃圾,或者只有一个空白屏幕。请注意,当使用另一个引导加载程序时,内核运行良好,应该在哪里进行更改以使其再次正常工作

  • 无论是Uboot还是内核都不是一个在真空中运行的整体。Uboot有一个传递给内核的参数的命令行输入。内核还加载了各种模块(通常用于设备驱动程序)。因此,您可以更改这些传递来更改其行为的参数。例如,boot.ini文件

    仅仅从这里随机复制一些Uboot内容,然后从那里随机复制一些内核内容(无论编译时的构建参数是什么),不太可能工作得很好。不同的供应商和不同的版本(甚至不同的版本)最终将从环境中获得不同的期望


    特别是,关于如何处理HDMI,或者是否应该打开HDMI,会传递各种参数。这就是你需要寻找的地方

    听起来你有一个引导问题,但是你问了一些迂回的问题来验证你的理论,你想要一篇关于U-boot如何加载和执行内核的论文。即使您得到了所有这些答案,您仍然可能无法找出实际的引导问题。为什么不研究一下(特别是“描述问题的症状,而不是你的猜测”),然后重新开始呢?如果我得到了所有这些答案,了解这些对我会有很大帮助。现在我仍然不明白为什么不同的引导加载程序会影响内核的执行,因为内核会处理整个系统,对吗?