您尚未登录。

楼主 # 2022-06-10 14:19:00

future
会员
注册时间: 2021-11-28
已发帖子: 43
积分: 20

关于F1C100无法启动,卡在Waiting for root device /dev/mtdblock2...

大家好,我使用的是论坛里buildroot-tiny200 (F1C100/200s) 开发包
使用
cd buildroot-tiny200
make widora_mangopi_r3_defconfig
得到镜像后使用Win32DiskImager将镜像下载到sd卡后启动如下图所示:
_20220610141304.png
就卡在这里了,重启后在uboot命令行手动输入
setenv bootargs 'console=tty0 console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw'
然后boot
就能正常进系统了,但是uboot里面没有saveenv指令,下次启动还是会卡死,除非再输入一遍上面的指令。
然后使用spi flash启动后也是卡在这里不动:
_20220610141304.png
希望知道的老哥指定一下哈。

离线

楼主 #2 2022-06-10 15:29:03

future
会员
注册时间: 2021-11-28
已发帖子: 43
积分: 20

Re: 关于F1C100无法启动,卡在Waiting for root device /dev/mtdblock2...

哇酷小二 说:

我记得 uboot那个脚本实现了自动检测启动介质,实现了不同的bootargs。

下面那个问题检查一下dts设备树,可能默认是spi nand,而不是spi nor。

_20220610152214.png
我尝试过再配置中使能bootargs,但是好像没有生效,那我想从tf卡启动应该怎么设置,将设备树flash的status都改为disable?
从flash启动我看有同学改过设备树,我尝试过修改nor的 status = "okay";将nand    的status = "disabled";还是一样的效果,这个是linux设备树,uboot的设备树也要改嘛?
原先这样:
&spi0 {
    status = "okay";

    spi-nor@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "winbond,w25q128", "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <50000000>;
        status = "disabled";

        partitions {
            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            partition@0 {
                label = "u-boot";
                reg = <0x000000 0x70000>;
                read-only;
            };

            partition@1 {
                label = "kernel";
                reg = <0x70000 0x590000>;
                read-only;
            };

            partition@2 {
                label = "rom";
                reg = <0x600000 0x700000>;
                read-only;
            };

            partition@3 {
                label = "overlay";
                reg = <0xd00000 0x300000>;
            };
        };
    };

    spi-nand@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "spi-nand";
        reg = <0>;
        spi-max-frequency = <50000000>;

        partitions {
            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            partition@0 {
                label = "u-boot";
                reg = <0x000000 0x100000>;
                read-only;
            };

            partition@1 {
                label = "kernel";
                reg = <0x100000 0x500000>;
                read-only;
            };

            partition@2 {
                label = "rom";
                reg = <0x600000 0x2a00000>;
                read-only;
            };

            partition@3 {
                label = "vendor";
                reg = <0x3000000 0x1000000>;
            };

            partition@4 {
                label = "overlay";
                reg = <0x4000000 0x3000000>;
            };
        };
    };
};

离线

楼主 #5 2022-06-10 23:48:17

future
会员
注册时间: 2021-11-28
已发帖子: 43
积分: 20

Re: 关于F1C100无法启动,卡在Waiting for root device /dev/mtdblock2...

哇酷小二 说:

改了 dts之后要看有没有生成新的dtb,要打包进去才会真正起作用。

我修改/media/xiang/red/buildroot-tiny200/board/widora/mangopi/r3/devicetree/linux/devicetree.dts后把/media/xiang/red/buildroot-tiny200/output/images/devicetree.dtb删掉后直接就编译出错了,这个不正常把吧,我理解,image文件夹下及时删除了,下次我make的时候应该都会生成的,但是现在看来,好像没有,能麻烦帮我看下吗

离线

楼主 #7 2022-06-16 17:07:47

future
会员
注册时间: 2021-11-28
已发帖子: 43
积分: 20

Re: 关于F1C100无法启动,卡在Waiting for root device /dev/mtdblock2...

哇酷小二 说:

修改 board/widora/mangopi/r3/devicetree/linux/devicetree.dts

之后,


删除

rm output/build/linux-5.4.66/.stamp_built

再 make

就不会出错了。

多谢多谢,使用上面方法就可以了,另外在helper文件夹里面有重新编译啊的脚本,开始没看到。

离线

页脚

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

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