页次: 1
u-boot也会将某些参数(比如LCD)传导给内核,
这样只要在u-boot里面设置一次参数即可,参考 如何讲uboot和内核的启动过程输出到液晶屏上?具体需要哪些操作?
这个V3s就是只要在u-boot里面设置一次LCD参数,然后用技巧把u-boot的参数读到kernel的dts里面,使之共享了这组参数。但是我觉得你这个系统两个dts应该还是互不影响的, 从u-boot命令行读出bootargs对比入手比较好。
能启动的官方固件和不能启动的我自己编译的固件的uboot是没有变化的,在uboot命令行(看你的帖子,发现有可能我的uboot不带命令行)里打印bootarg会有可能不同吗?能启动的版本与不能启动的版本只有固件部分不同
要修改.config的话,是不是就得重编uboot呀
CONFIG_MTD_CMDLINE_PARTS=y 是linux内核的编译开关, 不是u-boot的
u-boot的dts我觉得是给u-boot的命令行用的,方便在u-boot操作flash里面的文件,
一旦 kernel跑起来了, 根本就不认u-boot dts里面设置的分区了,
kernel 只认自己驱动或者bootargs的分区划分。以上是我猜测,不过应该是接近真理。
这么说的话,固件编译的时候,或者说编译完的固件不受dts文件的影响哈dts文件的话也是在uboot读取使用的是吧,为何LEDE固件源码里有dts,而且启动内核后log信息打印也确实是按dts里配置的走,是说dts里的分区是给uboot看的,但像打印一类的还是内核看的吗?还是说内核启动了其实uboot也还有代码段在被kernel调用然后去查询的dts文件?
HLK-7688开发板,由于官方uboot没有输出信息,刷了Wooya的uboot,固件下载OPenwrt官方的LINKIT开发板版本LEDE17版本的可以正常开机,刷LEDE15版本也可以,但是我自己编译固件bin然后下载的话就会提示下面的Panic.
[ 0.730000] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[ 0.740000] Please append a correct "root=" boot option; here are the available partitions:
[ 0.760000] 1f00 192 mtdblock0 (driver?)
[ 0.770000] 1f01 64 mtdblock1 (driver?)
[ 0.780000] 1f02 64 mtdblock2 (driver?)
[ 0.790000] 1f03 32448 mtdblock3 (driver?)
[ 0.800000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.800000] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 82.700000] random: nonblocking pool is initialized
大概意思就是无法挂载根文件系统。可是我编译的时候芯片选择的7688,开发板选择的LINKIT别的什么都没有改动,但是17和15两个版本都会panic.
查网上的文档,有人说是uboot中文件系统地址写的和固件中地址不一样,原因是有的uboot分了0x2000,有的分了0x3000,导致文件系统位置错位,自然就无法识别。
可是有个问题是如果是这个原因为何官方编译的bin固件就可以启动呢?
由于我没有编程器,不敢改动boot.怕费了就费了,我把固件dts文件中uboot的大小从3000改为了2000,重新编译依然是报相同的错误。
麻烦大侠们给分析下情况,在不改动boot的状态下如何填下这个坑。
如果还是怀疑uboot的问题的话,有没有啥官方途径能得到正确的uboot,自己编的不敢写,没有编程器,谢谢啦
页次: 1