# rootfs_build_scripts **Repository Path**: zzuos/rootfs_build_scripts ## Basic Information - **Project Name**: rootfs_build_scripts - **Description**: 放置构建ssp-r58x根文件系统的代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # `rootfs_build_scripts` 分支介绍与使用 --- #### 1. 分支介绍 - `master` 分支: 此分支存放构建适用于 **智能安全预警系统(`cvai`)** 在 `ssp-r58a` 和 `ssp-r58b` 平台上正确运行的 `rootfs` 镜像,此镜像基于 `https://gitee.com/zzuos/base_image_build_scripts.git`仓库 所构建出的 `base_image.img` 制作。 - `feature_ros2` 分支: 此分支在`master`分支基础上安装`ros2` #### 2. 仓库架构 ```shell ├── build.sh ├── cvai ├── logs ├── IMAGES │ └── rk3588-cvai-22.04-rootfs.img └── scripts ├── cvai │   ├── setup.rk3588.sh │   └── setup.sh ├── in_chroot │   ├── baseaiproject-config.sh │   ├── clean-rootfs.sh │   ├── gstreamer-config.sh │   ├── hostname-config.sh │   ├── network-config.sh │   ├── resize-rootfs.sh │   ├── ssh-login-config.sh │   └── wifi-config.sh └── out_chroot ├── external-files-downloader.sh └── rootfs-image-manager.sh ``` 其中: - `build.sh`:镜像构建脚本,通过执行此脚本构建镜像。该脚本执行分为两个环境,首先是 **`build.sh`的当前执行环境** ,其次是**通过`chroot`进入指定目录后的执行环境**. - `cvai`:系统文件,存放了智能安全预警的相关文件,比如前后端代码、服务器代码等。 - `logs`:存放镜像日志。 - `IMAGES`:该文件夹仓库中没有,是在镜像构建完成后,由脚本自动生成并将镜像放入该目录下。镜像名格式为`{平台类型}-{系统版本}-rootfs_{时间戳}.img`,例如:`R58A-U1001-rootfs_202512311600.img`。 - `scripts`:自定义脚本目录,执行`build.sh`时会调用这个目录下的脚本,因为`build.sh`实现的模块较多,我为了解耦,把脚本按功能分开了。 - `cvai`:放置安装系统相关的脚本,因为此脚本执行是相对于`cvai/scripts`目录的,所以会被复制到`cvai/scripts`中执行。 - ` in_chroot`:此文件夹放置进入`chroot`环境后需要用到的脚本,按功能命名。 - `baseaiproject-config.sh`:配置基础AI服务,将基础AI服务安装到系统中。 - `gstreamer-config.sh`:配置`gstreamer`以实现硬件编解码。 - `hostname-config.sh`:配置主机名称。 - `network-config.sh`:配置镜像的网络。 - `ssh-login-config.sh`:配置镜像`ssh`相关服务,比如用户名、密码。 - `clean-rootfs.sh`:构建完成后删除镜像中不需要的文件。 - `resize-rootfs.sh`:配置服务,烧录进板子后将文件系统大小扩充至板卡实际大小。 - `wifi-config.sh`: 配置`wifi`。 - `out_chroot`:此文件夹放置`build.sh`执行时用到的脚本,按照功能命名。 - `external-files-downloader.sh`:此脚本用于下载外部文件,比如`ubuntu base`、因体积过大无法部署到`gitee`上的文件。 - `rootfs-image-manager.sh`:此脚本放置了三个函数,`make_image`用于创建空白镜像文件,并挂载到指定目录下;`unmount_image`用于卸载挂载点;`clean_image`用于删除构建镜像过程中产生的废弃文件,缩减镜像体积。 #### 3. 使用教程 - 搭建环境 搭建一个 `vmware` 虚拟机,操作系统为 `ubuntu 22.04.5`。**(在本地电脑上搭建,不要使用云服务器等等,否则脚本可能无法正确执行)**。 - `clone`此分支到本地: ```shell git clone https://gitee.com/zzuos/rootfs_build_scripts ``` - 进入`rootfs_build_scripts`: ```shell cd rootfs_build_scripts ``` - 准备 `base_image.img`,获取方式有两种: - 通过 `https://gitee.com/zzuos/base_image_build_scripts.git` 仓库脚本构建自己的镜像,[点击跳转到仓库](https://gitee.com/zzuos/base_image_build_scripts/blob/master/README.md). - 直接通过百度网盘下载(**注意查看日志,看下载的base_image.img中有没有自己需要的linux软件包**) ```bash 通过网盘分享的文件:base_image备份 链接: https://pan.baidu.com/s/1La7LzFfIamQAsJbBfGAR5A?pwd=umew 提取码: umew --来自百度网盘超级会员v7的分享 ``` > 执行构建脚本时,会提示输入基础镜像的绝对路径,无需将其重命名或放到特定目录下 - 确认系统时间是否正确 构建镜像的名称需要获取系统时间,使用`date`命令查看系统时间是否正确,如果不正确,使用`date -s "YY-MM-DD HH-MM-SS"`命令修改,比如: ```bash sudo date -s "2025-12-08 16:28:00" ``` - 执行`build.sh`(**必须使用管理员权限执行**): ```shell sudo ./build.sh ``` - 执行脚本后,会进入交互式配置过程: ### 步骤 1:选择目标平台 ``` 请选择目标平台: ------------------------------------ [1] ssp-r58a [2] ssp-r58b ------------------------------------ 请输入编号 (1 或 2): ``` ### 步骤 2:选择要构建的系统 ``` 请选择要构建的系统: ------------------------------------ [1] cvai1 [2] cvai2 [3] base ------------------------------------ 请输入编号 (1, 2 或 3): ``` ### 步骤 3:输入基础镜像绝对路径 ``` 请输入基础镜像绝对路径: ``` - 等待执行结束,镜像输出在 `IMAGES` 文件夹下,镜像名格式为 `{平台类型}-{系统版本}-rootfs_{时间戳}.img`,例如:`R58A-U1001-rootfs_202512311600.img`. - 该镜像是根文件系统,烧录进板子后,不能使用`root`用户登录,登录的用户名密码为`lemon:linux007!`。进入系统如果想使用`root`权限和`conda`,执行`sudo su`输入密码即可。 #### 4. 注意事项 - 脚本构建需要约`5`分钟,耐心等待, **不要随意`ctrl+c`停止** 。 - 构建过程中需要连接实验室内网,不然一些外部文件无法拉取。