您尚未登录。

楼主 #1 2018-03-22 19:28:56

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

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,自己编的不敢写,没有编程器,谢谢啦

离线

楼主 #4 2018-03-23 07:25:09

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

晕哥,你说的bootargs是指的解压内核前打印的还是解压后打印的?官方内核解压完内核启动信息就改成串口三打印了,我的开发板没有串口三,Wpanic这段在切换之后

离线

楼主 #6 2018-03-23 07:30:55

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

关键问题是官方的固件也应该是用个我一样的编译配置编出来的,官方的没事,我的却不行,这个arg是在编译阶段修改的吗?

离线

楼主 #7 2018-03-23 07:33:12

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

好的,我去打印下

离线

楼主 #9 2018-03-23 07:36:58

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

如果是uboot有问题,官方固件有可能不用uboot传入的信息吗?在传信息这步自己编和官网编的有可能有区别?两个都是LINKIT板子

离线

楼主 #10 2018-03-23 07:50:04

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

启动过程中,我可以进boot.打印出来发现不对的话,修改好,然后继续启动过程是吧?

离线

楼主 #12 2018-03-23 08:37:53

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

要修改.config的话,是不是就得重编uboot呀?另外编固件的时候有办法让uboot传过来的参数不生效,而用dts里边的分区信息吗?

离线

楼主 #14 2018-03-23 08:57:15

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

晕哥 说:

要修改.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文件?

离线

楼主 #16 2018-03-23 11:10:52

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

晕哥 说:

u-boot也会将某些参数(比如LCD)传导给内核,
这样只要在u-boot里面设置一次参数即可,参考 如何讲uboot和内核的启动过程输出到液晶屏上?具体需要哪些操作?
这个V3s就是只要在u-boot里面设置一次LCD参数,然后用技巧把u-boot的参数读到kernel的dts里面,使之共享了这组参数。

但是我觉得你这个系统两个dts应该还是互不影响的, 从u-boot命令行读出bootargs对比入手比较好。

能启动的官方固件和不能启动的我自己编译的固件的uboot是没有变化的,在uboot命令行(看你的帖子,发现有可能我的uboot不带命令行)里打印bootarg会有可能不同吗?能启动的版本与不能启动的版本只有固件部分不同

离线

楼主 #18 2018-03-23 11:44:52

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

晕哥,我晕了,你是说官方出的编好的bin里的dts和它源码里的dts有区别?它出的bin也写着是LINKIT版本的?有没有可能我的固件里就是没有根文件系统?make menuconfig或者某个地方配置会导致rootfs没包进bin吗?我编译出来的bin好像是小一些

离线

楼主 #20 2018-03-23 12:48:19

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

晕哥 说:
sgf201 说:

晕哥,我晕了,你是说官方出的编好的bin里的dts和它源码里的dts有区别?它出的bin也写着是LINKIT版本的?有没有可能我的固件里就是没有根文件系统?make menuconfig或者某个地方配置会导致rootfs没包进bin吗?我编译出来的bin好像是小一些

方便发个帖子告诉我LINKIT怎么编译吗?我手里有widora mt7688开发板,或许我可以帮你试一试。

好的,晚上发

离线

楼主 #25 2018-03-28 18:29:25

sgf201
会员
注册时间: 2018-03-22
已发帖子: 12
积分: 12

Re: HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文

感谢大老支招
我那个7688的板子刷wadora的boot 波特率是115200打出来全是乱码,只有几个 1 2 3 能打印出来,然后我感觉就是我编译的固件没有文件系统,因为我编出来是2.8M,官方的是3.3M,kernel能启动是不是说明flash的驱动没问题呢?稍后我贴一下编译过程吧

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn