欢迎来到嵌入式开发的世界!如果你手上有一块RK3506开发板,并且希望为其运行功能强大的Ubuntu 22.04系统,那么这篇教程正是为你准备的。本文将手把手地带你完成整个流程,从环境准备、SDK编译到根文件系统制作,全程详细解读,即使你是刚入门的小白也能轻松跟上。

在开始激动人心的构建之旅前,我们需要准备好所有“建筑材料”和“工具”。这一步至关重要,可以避免后续遇到各种奇怪的问题。
推荐使用一台运行 Ubuntu 22.04 操作系统的电脑(物理机或性能强劲的虚拟机均可)。几乎所有RK3506的官方SDK和文档都是基于此版本开发的,可以确保最佳的兼容性 -1-3。
打开终端,首先更新你的软件包列表,然后安装一系列编译所需的工具和依赖库。复制以下命令并执行:
sudo apt updatesudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake unzip device-tree-compiler ncurses-dev -y
这些工具是编译U-Boot、Kernel和文件系统的基础 -3-6。
RK3506的Linux SDK通常由开发板厂商提供。你需要从官方获取SDK压缩包。假设我们将其解压到用户目录下的 proj/rk3506_sdk 文件夹:
mkdir -p ~/proj/rk3506_sdkcd ~/proj/rk3506_sdk# 将下载好的SDK压缩包放在此处,并解压7z x /path/to/your/rk3506_sdk.7z.001
注意:整个编译过程请始终使用普通用户操作,避免使用root权限,以防止不必要的权限问题 -3-6。
Ubuntu系统需要引导加载程序(U-Boot)和Linux内核才能启动。这些部分我们可以直接使用SDK编译生成。
进入SDK根目录,首先为你的开发板选择正确的默认配置。以Firefly的ROC-RK3506J-CC为例(请根据你的实际板型修改):
cd ~/proj/rk3506_sdk./build.sh firefly_rk3506_roc-rk3506b-cc-emmc_buildroot_defconfig
执行以下命令分别编译U-Boot和内核。编译生成的镜像文件(如 uboot.img 和 boot.img)可以在相应的目录中找到 -1。
./build.sh uboot./build.sh kernel
这是将Ubuntu引入RK3506的核心步骤。我们将使用 debootstrap 工具,从零构建一个纯净的Ubuntu 22.04根文件系统。
debootstrap 是一个神奇的工具,它能直接下载Ubuntu的基础包并安装到一个目录中。
sudo apt install debootstrap -y# 创建一个目录来存放根文件系统mkdir -p ~/ubuntu22-rootfs# 开始构建基础系统,这里选择的是Ubuntu 22.04 (Jammy Jellyfish)sudo debootstrap --arch=armhf jammy ~/ubuntu22-rootfs http://ports.ubuntu.com/
注意RK3506的Cortex-A7核心是32位的,因此我们指定 --arch=armhf。这个过程需要一些时间,取决于你的网络速度 -2。
基础文件系统构建完成后,我们需要通过 chroot “进入”这个新系统,对其进行一些基本配置 -2。
# 挂载必要的文件系统sudo mount --bind /dev ~/ubuntu22-rootfs/devsudo mount --bind /proc ~/ubuntu22-rootfs/procsudo mount --bind /sys ~/ubuntu22-rootfs/sys# 使用chroot进入新系统sudo chroot ~/ubuntu22-rootfs
进入chroot环境后,你的终端提示符会发生变化。接下来进行如下配置:
# 1. 设置时区为上海echo "Asia/Shanghai" > /etc/timezoneln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 2. 更新软件源并安装常用软件apt updateapt install -y language-pack-en base-files sudo ssh net-tools ethtool htop vim bash-completion# 3. 设置主机名echo "rk3506-ubuntu" > /etc/hostname# 4. 设置root密码(强烈建议设置)passwd root# 5. 创建普通用户(可选)# useradd -m -s /bin/bash 你的用户名# passwd 你的用户名# 6. 配置fstab文件,让系统启动时自动挂载分区cat << EOF > /etc/fstab# 根据你的实际分区情况调整,例如dev/mmcblk0p3 / ext4 defaults 0 1EOF# 7. 退出chrootexit
退出chroot后,记得取消挂载:
sudo umount ~/ubuntu22-rootfs/devsudo umount ~/ubuntu22-rootfs/procsudo umount ~/ubuntu22-rootfs/sys
配置完成后,我们将整个文件系统目录打包成一个镜像文件,以便烧录到开发板的存储介质中 -2。
# 创建一个空的镜像文件,例如大小为3GBdd if=/dev/zero of=ubuntu22-rootfs.img bs=1M count=3072# 格式化ext4mkfs.ext4 ubuntu22-rootfs.img# 挂载镜像mkdir -p /mnt/rootfssudo mount ubuntu22-rootfs.img /mnt/rootfs# 将制作好的根文件系统内容全部复制进去sudo cp -rf ~/ubuntu22-rootfs/* /mnt/rootfs/# 卸载镜像sudo umount /mnt/rootfs# 检查并修复文件系统e2fsck -p -f ubuntu22-rootfs.img# 精简镜像大小resize2fs -M ubuntu22-rootfs.img
至此,我们已经成功构建了一个可以用于RK3506的Ubuntu 22.04根文件系统镜像 (ubuntu22-rootfs.img)。
将我们编译好的U-Boot、Kernel和刚制作的Ubuntu根文件系统烧录到开发板上。
瑞芯微开发板通常使用官方工具 RKDevTool (Windows) 进行烧录。在Windows电脑上安装驱动并打开工具 -7。你需要准备以下镜像文件:
u-boot/ 目录获取。kernel/ 目录获取。1. 使用USB线连接开发板的OTG口到Windows电脑。2. 按住开发板上的 RECOVERY (或类似功能的) 键,然后上电或按复位键,使开发板进入Loader模式。RKDevTool会提示“发现一个LOADER设备”。3. 在工具的“下载镜像”或“分区表”页面,将 uboot.img 分配给 uboot 分区,boot.img 分配给 boot 分区,ubuntu22-rootfs.img 分配给 rootfs 分区。4. 点击“执行”开始烧录 -7。
烧录完成后,断开开发板与电脑的连接,通过串口连接到调试串口,然后重新上电。如果一切顺利,你将看到U-Boot启动,加载内核,最后进入Ubuntu 22.04的登录提示符!使用你之前设置的root密码即可登录,一个属于你自己的、功能完备的嵌入式Ubuntu系统就此诞生!
在整个构建过程中,涉及了 RK3506 的底层驱动适配、Ubuntu 22.04 的软件包管理以及嵌入式Linux系统构建的关键环节,这是一个非常有价值的实践项目,能帮助你深入理解现代嵌入式开发的完整流程。祝你玩得开心!
本文由主机测评网于2026-03-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:http://www.vpshk.cn/20260329896.html