嵌入式Linux系统中根目录爆满(根文件系统爆满)解决思路
本节的问题是我想在星宸369G开发板上移植第三方库合软件包到根目录的/lib和/bin目录下,由于根目录太小,还没移植一半就爆满了,导致没移植成功。0x400000 刚好是 20M, 我们修改为0xB40000,大概170M左右,只要不超过我们在u-boot分的空间就行。然后编译出镜像,在u-boot中把之前的根文件系统擦掉,再把新的根文件系统烧进去即可。通过下图可以看到,我在u-boot的时候是
在嵌入式Linux系统中,根文件系统是内核启动后挂载的第一个文件系统。根目录下有/bin /lib /sys
等等目录。
本节的问题是我想在星宸369G开发板上移植第三方库合软件包到根目录的/lib和/bin目录下,由于根目录太小,还没移植一半就爆满了,导致没移植成功。网上也有一些关于Linux磁盘空间分配的教程,我今天分享的是另一种思路。

通过下图可以看到,我在u-boot的时候是给根文件系统分区分了200M空间大小的。通过系统启动后根目录的大小却只有18.4M呢?
其实这是一位在制作 rootfs.ext4 的时候,其大小只有20M左右。其他的空间没利用到。

那我们把这个 rootfs.ext4 制作得大一点,根目录不就可以扩大了嘛?
确实是如此!
接下来我来讲解一下我是怎么把这个 rootfs.ext4 做大的。
首先,进入厂家提供的SDK包,先对板子进行一个 defconfig,然后先别着急编译。
进入厂家提供的SDK包的images中的configs目录

这里可以看到我们板子的内存分区配置文件


这里可以看到与rootfs.ext4 相关的配置信息
PATSIZE 表示你在u-boot为这块分区划分的大小
DATASIZE 表示编译得到的 rootfs.ext4 文件系统的大小
0x400000 刚好是 20M, 我们修改为0xB40000,大概170M左右,只要不超过我们在u-boot分的空间就行。然后编译出镜像,在u-boot中把之前的根文件系统擦掉,再把新的根文件系统烧进去即可。
重启系统后我们可以看见根目录的大小变为了170.3M,如下图所示,此时我一成功移植了第三方软件包和第三方库。

本期分享就到这里啦,下期再见!
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐



所有评论(0)