保姆级教程:在Windows 10的VMware里为RK3588制作Ubuntu 20.04根文件系统(含阿里云镜像源配置)
从零构建RK3588 Ubuntu根文件系统VMware环境全流程实战指南当拿到一块全新的RK3588开发板时第一道门槛往往是如何快速搭建可用的Linux环境。不同于x86平台的即插即用ARM架构的开发板需要开发者亲手构建完整的根文件系统rootfs。本文将带你在Windows 10的VMware虚拟机中完成从Ubuntu基础系统下载到最终rootfs.img生成的完整流程特别针对国内开发者优化了软件源配置和网络设置。1. 环境准备与工具链搭建1.1 VMware虚拟机配置要点在Windows宿主机上安装VMware Workstation Pro 16版本后新建虚拟机时需特别注意磁盘空间建议分配至少50GB容量根文件系统构建过程中会产生多份数据副本网络模式优先选择桥接模式Bridged确保虚拟机能够直接访问外部网络CPU核心数分配给虚拟机至少4个核心加速软件包编译和安装安装Ubuntu 20.04 LTS作为客户机系统时在软件选择步骤勾选[*] SSH server [*] Standard system utilities1.2 关键工具安装在虚拟机终端中执行以下命令组安装跨架构模拟和系统构建的核心工具sudo apt update sudo apt upgrade -y sudo apt install -y qemu-user-static binfmt-support debootstrapqemu-user-static是实现x86主机运行ARM程序的关键组件而debootstrap则是构建最小化系统的利器。注意如果遇到Unable to locate package错误请先执行sudo apt update --fix-missing2. 构建基础根文件系统2.1 获取Ubuntu Base镜像国内用户推荐从阿里云镜像站下载速度更快更稳定mkdir ~/rk3588_rootfs cd ~/rk3588_rootfs wget http://mirrors.aliyun.com/ubuntu-cdimage/ubuntu-base/releases/20.04.4/release/ubuntu-base-20.04.4-base-arm64.tar.gz解压并创建基础目录结构sudo mkdir -p rootfs sudo tar -xpf ubuntu-base-*.tar.gz -C rootfs2.2 配置跨架构执行环境将qemu模拟器复制到目标系统sudo cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/ sudo cp -b /etc/resolv.conf rootfs/etc/resolv.conf这个步骤使得x86主机能够解释执行ARM64架构的二进制程序。3. 系统定制化配置3.1 更换国内软件源编辑rootfs/etc/apt/sources.list替换为以下阿里云镜像源配置deb http://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse3.2 创建自动化挂载脚本在宿主系统目录下创建mount.sh#!/bin/bash function mnt() { sudo mount -t proc /proc ${2}proc sudo mount -t sysfs /sys ${2}sys sudo mount -o bind /dev ${2}dev sudo mount -o bind /dev/pts ${2}dev/pts } function umnt() { sudo umount ${2}dev/pts sudo umount ${2}dev sudo umount ${2}sys sudo umount ${2}proc } case $1 in -m) mnt $1 $2 ;; -u) umnt $1 $2 ;; *) echo Usage: $0 {-m|-u} MOUNT_POINT ;; esac赋予执行权限chmod x mount.sh4. 系统初始化与软件安装4.1 进入chroot环境执行以下命令序列进入目标系统./mount.sh -m rootfs/ sudo chroot rootfs /bin/bash在chroot环境中进行基础系统更新apt update apt upgrade -y apt install -y systemd dbus sudo bash-completion4.2 必要软件包安装根据RK3588开发需求安装以下组件apt install -y --no-install-recommends \ network-manager iptables ssh rsync \ vim htop lsof psmisc net-tools \ ethtool wireless-tools ifupdown \ udev rsyslog cron logrotate对于需要图形界面的开发者可以安装轻量级桌面环境apt install -y --no-install-recommends lubuntu-desktop5. RK3588专用适配5.1 硬件加速组件安装将SDK中的硬件加速包复制到chroot环境# 在宿主机执行假设SDK位于~/rk3588_sdk cp -r ~/rk3588_sdk/debian/packages/arm64/rga2 rootfs/tmp/ cp -r ~/rk3588_sdk/debian/packages/arm64/mpp rootfs/tmp/回到chroot环境安装apt install /tmp/rga2/*.deb apt install /tmp/mpp/*.deb5.2 Wi-Fi/BT模块配置复制固件和驱动cp -r /tmp/rkwifibt/firmware /lib/ cp -r /tmp/rkwifibt/modules /lib/ ln -s /lib/firmware /etc/firmware创建服务单元文件cat /etc/systemd/system/wifibt.service EOF [Unit] DescriptionRockchip Wi-Fi/BT Service Afternetwork.target [Service] Typeoneshot RemainAfterExityes ExecStart/usr/bin/wifibt-init [Install] WantedBymulti-user.target EOF6. 系统优化与清理6.1 时区与本地化设置配置亚洲上海时区ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime apt install -y tzdata dpkg-reconfigure tzdata设置系统语言环境apt install -y locales sed -i s/# zh_CN.UTF-8/zh_CN.UTF-8/ /etc/locale.gen locale-gen update-locale LANGzh_CN.UTF-86.2 创建新用户避免长期使用root账户创建普通开发者账户useradd -m -s /bin/bash rock passwd rock usermod -aG sudo,adm rock7. 生成最终镜像文件退出chroot环境并卸载挂载点exit ./mount.sh -u rootfs/使用dd命令创建空白镜像dd if/dev/zero ofrootfs.img bs1M count6144 mkfs.ext4 -F -L rootfs rootfs.img挂载并复制文件系统mkdir mnt sudo mount rootfs.img mnt sudo cp -a rootfs/* mnt/ sudo umount mnt最后进行文件系统检查与压缩e2fsck -p -f rootfs.img resize2fs -M rootfs.img现在得到的rootfs.img就可以通过RKDevTool等烧录工具写入RK3588开发板了。首次启动时建议通过串口终端观察系统日志确保各服务正常初始化。