Intel Galileo 运行 yocto 上的 space 错误不足

Insufficient space error on Intel Galileo running yocto

我想在我的 Intel Galileo Gen 2 开发板 运行ning yocto (iot-devkit-1.5-i586-galileo) 上安装一个带有 npm 的新节点库。这在之前已经有好几次了,但是我已经到了 npm 告诉我我的系统上没有足够的 space 的地步,我无法相信,因为我使用的是 8GB SD 卡而yocto只占用1.3GB。

当我 运行 npm install geoip-lite 我得到以下错误:

当我 运行 df -h 我得到以下信息:

嗯,您的 rootfs 已满(已使用 100%)。 npm install 写入 rootfs,所以问题很清楚。因此,要么从 rootfs 中删除不必要的位,要么增加 rootfs 的大小。

Yocto 不会创建更大的 rootfs,除非你告诉它(你可以想象如果图像无缘无故是 4GB,拥有 2GB SD 卡的人会很生气)。

您可能应该在图像配方中使用 IMAGE_ROOTFS_EXTRA_SPACE = "1048576" 来设置您想要的可用 space 字节数,但请阅读 IMAGE_ROOTFS_SIZE documentation 以及更大的图景。

我不太喜欢 IMAGE_ROOTFS_EXTRA_SPACE =,因为考虑到我在 Amazon EC2 中编译图像,这会大大增加文件 (*.sdcard *.rootfs) 的下载大小。

我一般是把rootfs压缩成tarball然后下载到本地

在我的 SD 卡中,我使用 fdisk 设置了 2 个分区,一个用于内核,另一个用于 Rootfs。使用 dd command 作为 uboot,将内核 .dtb.bin 放入第一个分区,然后将 rootfs tarball 提取到第二个分区分区。

这样做,我确保我使用了 SD 卡中的每一个 space。而且,如果需要,我可以更轻松地更改 rootfs。