当前位置: 首页 > news >正文

TB-RK3399Pro移植ubuntu 26.04及烧录

TB-RK3399Pro移植ubuntu 26.04及烧录

  • 一、Ubuntu 26.04根文件系统制作
    • 1.1 安装必要工具包
    • 1.2 获取 Ubuntu Base RootFS
    • 1.3 文件系统挂载
    • 1.4 换源:
    • 1.5 更新系统并安装基础软件
    • 1.6 配置中文支持(可选)
    • 1.7 设置时区
    • 1.8 添加账户
    • 1.9 串口 getty:让串口有登录提示(RK3399 调试关键)
    • 1.10 清理缓存,退出 chroot
    • 1.11 安装内核模块到根文件系统
    • 1.12 设置hostname
    • 1.13 设置默认ip
  • 二、制作烧录镜像
    • 2.1 boot.img
    • 2.2 rootfs.img
  • 三、烧录
    • 3.1 rkdeveloptool 工具
    • 3.2 烧录Uboot
    • 3.3 emmc分区
    • 3.4 烧录系统和镜像
  • 四、总结

一、Ubuntu 26.04根文件系统制作

这个流程已经很成熟了,直接问AI也能生成个七七八八,这里就简单写写,以及一些踩坑记录。

1.1 安装必要工具包

sudoaptupdatesudoaptinstall-y\qemu-user-static\binfmt-support\debootstrap\wget\tar\gcc-aarch64-linux-gnu\device-tree-compiler\build-essential\libncurses-dev\flex\bison\libssl-dev\bc\dosfstools\e2fsprogs\kmod

如有遗漏请根据报错自行补齐。ubuntu26.04的PC,安装 qemu-user-static 和 binfmt-support 需要 universe 源,而且需要指定安装版本,这里不多赘述,可根据实际情况咨询AI。

1.2 获取 Ubuntu Base RootFS

到 http://cdimage.ubuntu.com/ubuntu-base/releases/ 下载对应版本和架构即可。

1.3 文件系统挂载

# 解压mkdir~/ubuntu_rootfssudotar-xpfubuntu-base-26.04-base-arm64.tar.gz-C~/ubuntu_rootfs# 复制 QEMU 模拟器和DNS配置ROOTFS=~/ubuntu_rootfssudocp/usr/bin/qemu-aarch64$ROOTFS/usr/bin/sudocp/etc/resolv.conf$ROOTFS/etc/resolv.conf# 挂载临时伪文件系统# 2) 临时挂载伪文件系统sudomount-tproc proc$ROOTFS/procsudomount-tsysfs sysfs$ROOTFS/syssudomount--bind/dev$ROOTFS/devsudomount--bind/dev/pts$ROOTFS/dev/pts# chroot进入sudochroot$ROOTFS/bin/bash

1.4 换源:

ubuntu 26.04使用 DEB822 格式,将 $ROOTFS/etc/apt/sources.list.d/ubuntu.sources 中的地址修改:

1.5 更新系统并安装基础软件

aptupdateaptupgrade-y# 安装必备基础工具aptinstall-y\sudo\vim\net-tools\iproute2\iputils-ping\network-manager\udev\kmod\dbus\systemd\systemd-sysv\openssh-server\less\locales

初次更新如果因校验报错,可以尝试在更新和安装命令添加--allow-insecure-repositories参数。

1.6 配置中文支持(可选)

apt install -y language-pack-zh-hans language-pack-en
locale-gen en_US.UTF-8 zh_CN.UTF-8
update-locale LANG=en_US.UTF-8

1.7 设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

1.8 添加账户

echo"root:123456"|chpasswd# 自己改密码useradd-m-s/bin/bash ubuntuecho"ubuntu:ubuntu"|chpasswdusermod-aGsudoubuntu

1.9 串口 getty:让串口有登录提示(RK3399 调试关键)

ln-sf/lib/systemd/system/serial-getty@.service\/etc/systemd/system/getty.target.wants/serial-getty@ttyS2.service

1.10 清理缓存,退出 chroot

aptcleanrm-rf/var/lib/apt/lists/*exit# 卸载伪文件系统sudoumount$ROOTFS/dev/ptssudoumount$ROOTFS/devsudoumount$ROOTFS/syssudoumount$ROOTFS/proc

1.11 安装内核模块到根文件系统

cd<path_to_linux>makeARCH=arm64CROSS_COMPILE=aarch64-linux-gnu- modules -j$(nproc)sudomakemodules_installARCH=arm64CROSS_COMPILE=aarch64-linux-gnu-INSTALL_MOD_PATH=/path/to/your/rootfs

注:INSTALL_MOD_PATH应直接指向rootfs的顶层目录,系统会自动创建lib/modules/$(uname -r)子目录并填充模块文件。

1.12 设置hostname

添加$ROOTFS/etc/hosts文件:

127.0.0.1 localhost127.0.1.1 my-board ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters

添加$ROOTFS/etc/hostname文件:

ubuntu

1.13 设置默认ip

添加$ROOTFS/etc/netplan/01-netcfg.yaml

network: version:2renderer: networkd ethernets: end0: dhcp4: no addresses:[192.168.1.100/24]routes: - to: default via:192.168.1.1 nameservers: addresses: -114.114.114.114 -223.5.5.5

二、制作烧录镜像

调试阶段需要制作两个镜像,boot.img 和 rootfs.img,后续如果调试稳定再打成总包。

2.1 boot.img

mkdirbootcpImage boot/cprk3399pro-toybrick-prod.dtb boot/mkdir-pboot/extlinux

在 boot/extlinux 创建 extlinux.conf:

timeout 5 menu title Ubuntu Boot label Ubuntu kernel /Image fdt /rk3399pro-toybrick-prod.dtb append root=/dev/mmcblk0p2 rw rootwait console=ttyS2,1500000 earlycon


然后使用以下命令:

ddif=/dev/zeroof=boot.imgbs=1Mcount=256mkfs.ext4-Lboot boot.imgmkdirboot_mountsudomountboot.img boot_mountsudocp-rboot/* boot_mount/sudoumountboot_mount

得到boot.img

2.2 rootfs.img

# 暂定2GB大小ddif=/dev/zeroof=rootfs.imgbs=1Mcount=2048mkfs.ext4-Lrootfs rootfs.imgmkdirrootfs_mountsudomountrootfs.img rootfs_mountsudocp-r<path_to_ubuntu_rootfs>/* rootfs_mount/# 如果已经打成tar包# sudo tar xpf rootfs.tar.gz -C rootfs_mountsudosyncsudoumountrootfs_mount

三、烧录

文件准备:
除了编译生成的镜像,打包的img文件以外,还需要旧版本的MiniLoaderAll文件作为媒介。

3.1 rkdeveloptool 工具

这里直接使用rockchip的官方烧录工具,适用性和灵活性好的。
https://github.com/rockchip-linux/rkdeveloptool
仓库中有安装说明,直接按照步骤安装即可。

3.2 烧录Uboot

将板卡进入maskrom模式

cd<path_to_rkdeveloptool># 查看设备是否已识别sudo./rkdeveloptool ld

应该看到:

DevNo=1 Vid=0x2207 Pid=0x330c Maskrom

擦除emmc并烧录uboot

sudo./rkdeveloptool db MiniLoaderAll.bin# 擦除emmc,初次烧录时使用sudo./rkdeveloptool ef# 烧录 idbloadersudo./rkdeveloptool wl64idbloader.img# 烧录 ubootsudo./rkdeveloptool wl16384uboot.itb# 重启进入ubootsudo./rkdeveloptool rd

3.3 emmc分区

将板卡进入到uboot,在uboot下进行emmc分区:
boot分区256MB,rootfs为剩余空间。

gptwritemmc0"name=boot,start=16MiB,size=256MiB;name=rootfs,size=-"

3.4 烧录系统和镜像

将板卡进入maskrom模式

sudo./rkdeveloptool db MiniLoaderAll.binsudo./rkdeveloptool wl 0x8000 boot.imgsudo./rkdeveloptool wl 0x88000 rootfs.img# 重启sudo./rkdeveloptool rd

然后即可进入系统:

四、总结

有个坑没解决,extlinux.conf 中,原本想使用 append root=LABEL=rootfs,规避掉dev节点的问题,但是一直报错找不到文件系统,有时间再尝试一下。有知晓的读者也可以告知。
其他的网络、驱动以及功能模块暂未测试,留待以后完善。
总体移植还算顺利,如对您有帮助,请帮忙点赞收藏,感谢。

http://www.jsqmd.com/news/1272868/

相关文章:

  • 告别图层重建:Ai2Psd让你的AI设计无缝迁移到Photoshop [特殊字符]
  • 从C54x到C55x:DSP/BIOS应用迁移实战与核心差异解析
  • RIME优化Kmeans聚类算法:原理、实现与工程实践
  • VictoriaMetrics:解决Prometheus存储困境的高性能时序数据库
  • Codex Dream Skin 主题怎么做?8 套完整换肤效果拆解 + AI Banner 提示词
  • AI辅助学术写作:人机协同的认知革命与实践指南
  • 华为OD机试真题解析:新员工座位问题与多语言算法实现
  • 昆明房屋漏水维修修缮须知(2026 新版):卫生间、厨房、阳台 24 小时全天上门堵漏抢修 - 金信达
  • Claude Code文件过滤机制与Token优化实战
  • Python自动化生成Node.js项目结构的实践
  • 水下AI视觉系统:光学成像与深度学习融合的技术突破
  • 具身智能体强化学习:从理论到实践
  • 大模型工具调用闭环:结果解析与回答生成实践
  • 2026年最新教程:不下载软件GIF怎么转视频 亲测有效方法 - 图片处理研究员
  • 引导滤波算法:原理、实现与工程优化
  • 2026嘉兴装修公司选购秘籍 业主实测家装避坑干货大全 - 资讯报道
  • AI技术在英语培训中的革命性应用与实战解析
  • 深入理解C++标准库std:::从核心概念到高效编程实践
  • 软件定义雷达技术:从FPGA到AI的实时信号处理
  • Personal Jarvis:本地化语音助手的技术原理与实践指南
  • C++服务与Kubernetes集成实战指南
  • Linyaps桌面环境:Wayland协议下的轻量高效解决方案
  • 深入解析硬件CRC控制器:原理、模式与DMA协同实现零开销内存校验
  • Alexa Plus更新:MCP开放标准如何破解智能家居碎片化难题
  • Vibe Coding:AI时代的新型编程协作模式解析
  • AI如何解决学术答辩PPT的三大痛点
  • 2026 年现阶段安次比较好的人孔公司推荐,揭秘:这个小物件如何悄悄改变你的生活-江东管道 - 行业严选官
  • 混合RIS辅助ISAC系统的深度强化学习优化方案
  • NVIDIA GPU保底方案:降低AI开发门槛的金融技术实践
  • 2026年最新教程:毕业证照片发给公司怎么加水印最安全 - 效率工具研究所