Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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内核如何创建/dev/root-Initramfs查询_Linux_Embedded Linux_Bootloader_Yocto - Fatal编程技术网

linux内核如何创建/dev/root-Initramfs查询

linux内核如何创建/dev/root-Initramfs查询,linux,embedded-linux,bootloader,yocto,Linux,Embedded Linux,Bootloader,Yocto,我需要创建一个initramfs来加载一个驱动程序来访问包含rootfs的EMMC 在我当前的内核构建中,EMMC驱动程序是模块化的(很抱歉,无法更改) 内核引导后,它加载initramfs 从initramfs,它需要使用switch\u root函数切换到EMMC上包含实际rootfs的分区 在这里,一切都很顺利。我可以创建initramfs,让内核加载它,然后让它切换到/dev/mmcblk0p2,这是包含实际rootfs的EMMC分区。 我的问题是: 引导完成后,mount命令显示以

我需要创建一个initramfs来加载一个驱动程序来访问包含rootfs的EMMC

  • 在我当前的内核构建中,EMMC驱动程序是模块化的(很抱歉,无法更改)
  • 内核引导后,它加载initramfs
  • 从initramfs,它需要使用switch\u root函数切换到EMMC上包含实际rootfs的分区
在这里,一切都很顺利。我可以创建initramfs,让内核加载它,然后让它切换到/dev/mmcblk0p2,这是包含实际rootfs的EMMC分区。 我的问题是:

引导完成后,mount命令显示以下内容:


rootfs on/type rootfs(rw)
/dev/mmcblk0p2打开/键入ext4(rw、sync、noatime、data=ordered)
程序开启/程序类型程序(rw,relatime)
/dev/mmcblk0p1 on/var/volatile/run/media/mmcblk0p1类型vfat(rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,sh)
/dev/mmcblk0p3 on/var/volatile/run/media/mmcblk0p3 type ext4(rw、relatime、data=ordered)
/dev/mmcblk0p4 on/var/volatile/run/media/mmcblk0p4 type ext4(rw、relatime、data=ordered)

如果我将EMMC驱动程序构建为内核的一部分(并去掉initramfs),那么输出将非常不同:


rootfs on/type rootfs(rw)
/dev/root on/type ext4(rw、relatime、discard、journal\u校验和、commit=1、data=ordered)
devtmpfs on/dev类型devtmpfs(rw,relatime,size=112272k,nr_inodes=28068,mode=755)
/dev/mmcblk0p1 on/var/volatile/run/media/mmcblk0p1类型vfat(rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,sh)
/dev/mmcblk0p3 on/var/volatile/run/media/mmcblk0p3 type ext4(rw、relatime、data=ordered)
/dev/mmcblk0p4 on/var/volatile/run/media/mmcblk0p4 type ext4(rw、relatime、data=ordered)

  • 虽然当我检查内核日志和主要、次要设备号时,我发现/dev/root只对应于/dev/mmcblk0p2
  • 但是我不明白为什么mount的输出是不同的

在花了这么多精力让initramfs工作之后,我不想错过任何琐碎的事情。非常感谢您提供的任何帮助。

如果您没有获得此处所需的帮助,您也可以在Linux和Unix堆栈交换站点上尝试:看起来您在/dev/mmcblk0p2上的文件系统是用“安全选项”安装在initramfs中的,而不是用“性能选项”重新安装的当系统运行rootfs的脚本时。谢谢罗兰和斯内克多克。我现在可以将/dev/mmcblk0p2转到以下位置:/dev/mmcblk0p2 on/type ext4(rw、relatime、discard、journal\u checksum、commit=1、data=ordered)。这仍然与第一种情况不同,即/dev/root on/type ext4。你能提供更多关于“性能选项”的细节吗?你的问题真的不清楚。你在这里问什么?如果你没有得到你在这里想要的帮助,你也可以在Linux和Unix堆栈交换站点上尝试:看起来你在/dev/mmcblk0p2上的文件系统是用“安全选项”安装在initramfs中的,而不是在系统从rootfs运行脚本时用“性能选项”重新安装的。谢谢Roland和SnakeDoc。我现在可以将/dev/mmcblk0p2转到以下位置:/dev/mmcblk0p2 on/type ext4(rw、relatime、discard、journal\u checksum、commit=1、data=ordered)。这仍然与第一种情况不同,即/dev/root on/type ext4。你能提供更多关于“性能选项”的细节吗?你的问题真的不清楚。你在问什么?