WhyCan Forum(哇酷开发者社区)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2020-03-01 15:10:49

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

NUC970_Buildroot无法生成yaffs2根文件系统

从新唐github上下载的NUC970_Buildroot,默认配置如下:可以编译成功
Buildroot_initramfs.png

现在不想把initramfs集成到内核镜像中,,希望生成独立的yaffs2格式的根文件系统镜像文件,,配置改成如下:
Buildroot_yaffs2.png

编译报错:
  HOSTCC  usr/gen_init_cpio
  ./scripts/gen_initramfs_list.sh: Cannot open '../../images/rootfs.cpio'
usr/Makefile:73: recipe for target 'usr/initramfs_data.cpio.gz' failed
make[3]: *** [usr/initramfs_data.cpio.gz] Error 1
Makefile:1001: recipe for target 'usr' failed
make[2]: *** [usr] Error 2

请问要怎么配置才能生成 yaffs2 格式的文件系统??

离线

#2 2020-03-01 16:05:16

Lvy
会员
注册时间: 2017-11-25
累计积分: 97

Re: NUC970_Buildroot无法生成yaffs2根文件系统

默认的是在sdram运行的,你要选择外部nand才可以的。具体的你可以参考topsemic的文章看一下。

离线

#3 2020-03-01 16:13:51

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

Re: NUC970_Buildroot无法生成yaffs2根文件系统

Lvy 说:

默认的是在sdram运行的,你要选择外部nand才可以的。具体的你可以参考topsemic的文章看一下。

板子上是SPINAND,,系统肯定要在SDRAM中运行,,但文件系统肯定要在Flash上啊,,不然新建的文件掉电不就丢失了吗?

就像电脑上,,系统在DDR中运行,,但文件系统肯定在硬盘上啊

离线

#4 2020-03-01 17:01:30

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,097

Re: NUC970_Buildroot无法生成yaffs2根文件系统

buildroot 只要勾上 yaffs2 就会出错?

离线

#5 2020-03-01 18:07:24

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

Re: NUC970_Buildroot无法生成yaffs2根文件系统

晕哥 说:

buildroot 只要勾上 yaffs2 就会出错?

感谢站长指点,,不是yaffs2的问题,,只要不勾选“initial RAM filesystem linked into linux kernel”就会报上面的错误

可是我看了这个选项的含义,,感觉如果生成yaffs2文件系统的话,,就不应该勾选这个选项,,因为勾选了它内核镜像文件里面就会有一个initramfs格式的根文件系统,,然后再烧录yaffs2格式的根文件系统镜像,,那板子上不就有两个根文件系统了吗?

Buildroot_initramfs_into_kernel.jpg

离线

#6 2020-03-01 18:33:04

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,097

Re: NUC970_Buildroot无法生成yaffs2根文件系统

有可能和 kernel 的配置相关, 你进入 kernel 目录执行 make menuconfig 看看.

离线

#7 2020-03-01 20:35:15

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

Re: NUC970_Buildroot无法生成yaffs2根文件系统

晕哥 说:

有可能和 kernel 的配置相关, 你进入 kernel 目录执行 make menuconfig 看看.

感谢指点,,确实和内核配置有关,,关掉下面这个选项就可以了
Buildroot_initramfs_support.jpg

另外需要注意的是:必须先关掉下面这个选项,,上面那个选项才能关的掉。。否则的话修改了上面的选项、保存成功退出后,,配置文件中的内容还是没改变。。而且软件也不会弹出警告框告诉你有依赖不会修改,,Buildroot还是不够智能啊,,在这里折腾了好久 sad
Buildroot_cpio_rootfs.jpg

离线

#8 2020-03-01 21:10:29

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,097

Re: NUC970_Buildroot无法生成yaffs2根文件系统

感谢分享,感觉台湾的gm,nuvoton等soc厂家sdk都喜欢用 initramfs 作为根文件系统。

离线

#9 2020-03-01 21:26:18

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

Re: NUC970_Buildroot无法生成yaffs2根文件系统

晕哥 说:

感谢分享,感觉台湾的gm,nuvoton等soc厂家sdk都喜欢用 initramfs 作为根文件系统。

这样啊,,不知道怎么考虑的

我查了下确实有一种用法是上电的时候先用 initramfs 作为根文件系统,,后面再挂载真正的文件系统。。

感觉这种方法在复杂的环境下应该有用,,不过在嵌入式这种资源少、连接和配置固定的环境下没必要这么搞。。

离线

#10 2020-03-01 21:40:11

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,097

Re: NUC970_Buildroot无法生成yaffs2根文件系统

可能考虑的是可靠性,只读根文件系统保证每次都能启动,但是这种文件系统既占rom,又占ram,感觉不是最好的解决方案。

离线

#11 2020-03-26 11:17:47

Gentlepig
会员
注册时间: 2018-10-24
累计积分: 323

Re: NUC970_Buildroot无法生成yaffs2根文件系统

用buildroot生成了uboot,uImage和rootfs.yaffs2文件。
烧录到板子上,感觉比之前自己单独下载nuvoton的uboot,kernel编译生成的uboot,kernel启动更快。
在buildroot的make menuconfig里,选了install uboot-spl,也生成了u-boot-spl。

就是不知道其他关于kernel的设置该怎么设置?比如设置lcd,串口等。只能再进去kernel子目录单独make menuconfig吗?

----------------------------------------------------------------------
进buildroot目录下找了一遍,没发现uboot和kernel目录...

-------------------------------------------------------------------------
现在启动这么快是因为用的是initramfs,明明我已经设成yaffs格式的了,而且已经生成rootfs.yaffs2文件了。
估计还是内核配置的问题,可我找不到内核配置选项在哪里?

-----------------------------------------------------------------------------
知道了,在buildroot目录下的output/build目录下,有uboot和linux。

最近编辑记录 Gentlepig (2020-03-26 11:57:03)

离线

#12 2020-03-26 16:23:06

Gentlepig
会员
注册时间: 2018-10-24
累计积分: 323

Re: NUC970_Buildroot无法生成yaffs2根文件系统

有点糊涂了。
一开始用buildroot编译出来的yaffs类型的根文件,很小,大概13M。
后来把Qt5勾选上了,再次编译,好像也没大多少,忘了是多少来着。
然后把python3和pyqt5勾选,就大了,好像是30多兆还是40多兆来着。
然后把python3和pyqt5取消勾选,结果生成的根文件大小没变。

执行make clean,重新编译,直接勾选Qt5,结果这次直接25M了。

请问:
1,为何我取消勾选某些功能,结果生成的根文件大小没变?
2,如果我想重新编译生成根文件,能不能只执行制作根文件这一步骤?每次make clean后,都要再解压一堆东西,还要重新编译了一遍uboot和kernel,而且kernel还需要重新配置,挺繁琐的(kernel的配置,我是保存了.config文件解决了)。

最近编辑记录 Gentlepig (2020-03-26 16:27:29)

离线

#13 2020-03-26 16:31:57

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,097

Re: NUC970_Buildroot无法生成yaffs2根文件系统

1. 如果有更改重新 make menuconfig

2. 删除目录: rm output/target -rf

3. 删除所有.stamp_staging_installed文件:
find output/build/ |grep .stamp_staging_installed

4. 重新 make

离线

#14 2020-03-27 09:32:00

Gentlepig
会员
注册时间: 2018-10-24
累计积分: 323

Re: NUC970_Buildroot无法生成yaffs2根文件系统

请教了qq群里一位朋友,在Buildroot里,可以通过执行make linux-menuconfig来配置内核,同理还有make uboot-menuconfig,make busybox-menuconfig.
不过我执行make uboot-menuconfig时,界面很混乱...

离线

页脚