正点原子STM32MP257开发板移植ubuntu24.04根文件系统(带桌面版)
本篇主要内容效果展示一、环境准备二、移植步骤1.下载、解压rootfs2.ubuntu虚拟机安装qemu-user-static3.根文件系统换软件源4.安装必要软件5.配置串口登录6.设置root账户、主机名7.网络配置8.安装桌面环境三、打包、烧写rootfs1.创建一个4GB的ext4并格式化2.拷贝根文件系统到ubuntu2404_rootfs.ext4四、烧录ubuntu2404_rootfs1.烧录测试效果展示一、环境准备✅虚拟机ubuntu24.04✅开发板正点原子STM32MP257✅根文件系统ubuntu-base-24.04.2-base-arm64.tar.gz二、移植步骤1.下载、解压rootfswgethttps://cdimage.ubuntu.com/ubuntu-base/releases/24.04/release/ubuntu-base-24.04.2-base-arm64.tar.gzmkdirubuntu2404_rootfstar-xvfubuntu-base-24.04.2-base-arm64.tar.gz-Cubuntu2404_rootfs2.ubuntu虚拟机安装qemu-user-static⚠️这里是在ubuntu虚拟机安装qemuqemu是一个提供虚拟环境的工具类似模拟器。在这里主要是在后续ubuntu虚拟机临时挂载我们制作的rootfs时可以运行rootfs里的命令进行一些配置这些命令都是aarch64架构的。安装后可以看到有多种架构的qemu这里我们用到的是aarch64。关于aarch64和arm64什么区别查阅资料后据说都是一个意思指同一个架构只是说法不同aarch64比arm64更正式apt-getinstallqemu-user-static# 拷贝aarch64架构的qemu到rootfs中cp/usr/bin/qemu-aarch64-static ubuntu2404_rootfs/usr/bin3.根文件系统换软件源⚠️ubuntu24.04更换软件源的配置文件不再是/etc/apt/source.list而是/etc/apt/source.list.d/ubuntu.sources并且修改方式也改变了具体修改如下。viubuntu2404_rootfs/etc/apt/sources.list.d/ubuntu.sources⚠️更换好软件源后在执行apt update之前需要先安装ssl相关的证书才可以访问上面的软件源。由于此时在rootfs里还无法安装软件这里得先拷贝虚拟机中的证书到rootfs。sudocp-r/etc/ssl/ ubuntu2404_rootfs/etc/# 直接拷贝整个ssl目录到根文件系统的etc目录sudochmod777ubuntu2404_rootfs/# 这里需要给根文件系统加上权限否则更新以及后续会报错⚠️接着进行apt update前需要先临时挂载到这个rootfs使用里面的apt进行前面安装的虚拟环境qemu在这里就发挥作用了。这里的挂载命令比较多我们通过一个简单的脚本来做比较方便具体路径不唯一需要根据实际确定。#!/bin/bashechoMOUNTINGsudomount-tproc /proc ~/ubuntu2404_rootfs/procsudomount-tsysfs /sys ~/ubuntu2404_rootfs/syssudomount-obind/dev ~/ubuntu2404_rootfs/devsudomount-obind/dev/pts ~/ubuntu2404_rootfs/dev/ptssudochroot~/ubuntu2404_rootfs#!/bin/bashechoUNMOUNTINGsudoumount~/ubuntu2404_rootfs/procsudoumount~/ubuntu2404_rootfs/syssudoumount~/ubuntu2404_rootfs/dev/ptssudoumount~/ubuntu2404_rootfs/dev⚠️执行mount.sh脚本可以看到以下的界面就成功挂载到了正在制作的rootfs中后续的更新、安装软件配置串口等操作均在这里执行。4.安装必要软件⚠️安装前先更新源可以看到源更换成了阿里云的也就是上面配置的aptupdate⚠️再下载必要的一些软件以下命令安装的时候需要选择一些信息随意即可。apt-getinstall-ysudolanguage-pack-en-basesshnet-toolsethtoolifupdown iputils-pinghtopvimbash-completion systemd# 其余按需添加5.配置串口登录⚠️配置文件路径sudo vi ubuntu2404_rootfs/lib/systemd/system/serial-getty.service。这是一个Linux系统管理串行控制台的服务具体配置文件的含义可见下图注释注释为UP查阅资料后自行添加仅供参考可能有误⚠️第一处修改:BindsTodev-%i⚠️第二处修改ExecStart-/sbin/agetty -a root --keep-baud 115200,38400,9600 %I $TERM6.设置root账户、主机名⚠️主机名的设置也可以省略在后续安装好桌面环境后初次登录会有设置的界面。这里是设置完后面登录后的串口终端就是这样的rootAlientek-STM32MP257:~#⚠️将上面的主机名绑定到本地回环地址名称必须和上面对应7.网络配置# 没有这个文件就创建内容如下vietc/netplan/50-cloud-init.yamlnetwork:version:2ethernets:end0:dhcp4:trueend1:dhcp4:false8.安装桌面环境⚠️ubuntu的桌面环境一般有以下几种gnome、xfce和KDE等。我们使用的ubuntu虚拟机一般都是gnome而如果想要比较轻量级的可以考虑xfce。这里我们安装的是gnome。大小大概需要3G安装时间比较久不想要桌面环境的这一步可以略过。sudoaptinstallubuntu-gnome-desktop⚠️安装完桌面环境rootfs简单的配置就完成了可以看到此时的大小大概是3.4G三、打包、烧写rootfs1.创建一个4GB的ext4并格式化ddif/dev/zeroofubuntu2404_rootfs.ext4bs1Mcount4096mkfs.ext4 ubuntu2404_rootfs.ext42.拷贝根文件系统到ubuntu2404_rootfs.ext4# 挂载ubuntu2404_rootfs.ext4到虚拟机mkdirmount_point# 创建一个目录作为挂载点sudomountubuntu2404_rootfs.ext4 mount_point/⚠️注意看是拷贝到mount_point这个目录上面将ext4挂载到的这个目录。拷贝时间比较久需要稍等一会。# 拷贝根文件系统所以内容到挂载点目录sudocp-arvubuntu2404_rootfs/* mount_point/⚠️拷贝完卸载ubuntu2404_rootfs.ext4使用ST的烧写工具烧录即可。四、烧录ubuntu2404_rootfs1.烧录测试⚠️这里我们可以复制官方提供的出厂系统固件包里的tsv文件将最后要烧写的根文件系统改成前面制作的ubuntu2404_rootfs.ext4并将这个文件放到E:\【正点原子】STM32MP257开发板\【正点原子】STM32MP257开发板A盘-基础资料\08、系统镜像\01、出厂系统镜像\01、STM32CubeProg烧录固件包这个目录下。⚠️接着就可以打开STM32CubeProgram烧写了完成后就可以得到同款ubuntu24.04了。当然这仅是简单移植ubuntu的根文件系统可能会有不少bug出现。⚠️等待烧写完成串口登录开发板就可以看到以下结果了。同时接上屏幕可以登录到桌面第一次登录会有个初始化向导也会重新让填写主机名、用户名。⚠️插上键盘和鼠标填写完用户名和一些信息就可以看到下图的效果了。

相关新闻

第12课:模块与包管理

第12课:模块与包管理

12_modules_and_packages.py 一、课程目标 序号 学习目标 ① 理解模块的概念和作用 ② 掌握导入模块的各种方式 ③ 熟悉Python常用的内置模块 ④ 学会创建和使用自定义模块 ⑤ 理解包的创建和结构 ⑥ 学会安装和使用第三方库 ⑦ 理解模块搜索路径 二、知识讲解 2.1 模块概述 …

2026/8/8 7:53:45 阅读更多 →
Vike框架终极指南:如何用模块化思维构建稳定高效的企业级应用

Vike框架终极指南:如何用模块化思维构建稳定高效的企业级应用

Vike框架终极指南:如何用模块化思维构建稳定高效的企业级应用 【免费下载链接】vike (Replaces Next.js/Nuxt) 🔨 Build mission-critical applications with stability and development freedom. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/8 6:13:25 阅读更多 →
Lunalytics核心功能解析:HTTP、TCP与Docker容器监控全攻略

Lunalytics核心功能解析:HTTP、TCP与Docker容器监控全攻略

Lunalytics核心功能解析:HTTP、TCP与Docker容器监控全攻略 【免费下载链接】Lunalytics 🚀 Open source monitoring tool built with Node.js 项目地址: https://gitcode.com/gh_mirrors/lu/Lunalytics Lunalytics是一款基于Node.js构建的开源监控…

2026/8/8 6:43:55 阅读更多 →

最新新闻

C++控制台游戏开发:三种运行时动态调整字体大小的实战方法

C++控制台游戏开发:三种运行时动态调整字体大小的实战方法

1. 项目概述:为什么控制台字体大小对C游戏开发如此重要? 如果你正在用C写控制台游戏,无论是贪吃蛇、俄罗斯方块,还是更复杂的RPG或Roguelike,你很可能已经遇到了一个看似微小却极其影响体验的问题:控制台里…

2026/8/8 14:03:23 阅读更多 →
laravel中moudle模块多很慢nwidart/laravel-modules有40个如何优化FileRepository的scan用php.ini缓存opcache

laravel中moudle模块多很慢nwidart/laravel-modules有40个如何优化FileRepository的scan用php.ini缓存opcache

laravel中moudle模块多很慢nwidart/laravel-modules有40个如何优化以文件http://usr/local/php/etc/php.ini中开启以下配置zend_extensionopcacheopcache.enable1 opcache.enable_cli0 opcache.memory_consumption256 opcache.interned_strings_buffer32 opcache.max_accelerat…

2026/8/8 14:03:23 阅读更多 →
GeoGebra:从动态几何到全能数学实验室的深度解析与实战指南

GeoGebra:从动态几何到全能数学实验室的深度解析与实战指南

1. 项目概述:从“动态几何”到“全能数学实验室”如果你是一位数学老师,或者正在学习数学的学生,又或者是对数学可视化感兴趣的爱好者,那么“GeoGebra”这个名字你一定不陌生。它早已不是十年前那个单纯的“动态几何”软件了。今天…

2026/8/8 14:03:23 阅读更多 →
低代码集成!RPA 企业微信第三方 API,外部群主动调用快速落地

低代码集成!RPA 企业微信第三方 API,外部群主动调用快速落地

在企业数字化转型加速的当下,“想做自动化运营却缺技术团队、官方接口部署周期长、定制开发成本高”,成为很多企业在企业微信外部群运营中面临的核心困境。尤其对于中小微企业或非技术驱动型团队,即便深知 “外部群主动调用” 能提升私域效率…

2026/8/8 14:03:23 阅读更多 →
CTF竞赛逆向工程与电子取证工具全解析

CTF竞赛逆向工程与电子取证工具全解析

1. CTF竞赛工具全景图:从逆向工程到电子取证的装备库 作为一名打了七年CTF的老兵,我深刻体会到工具选型对比赛效率的直接影响。记得2019年某次线下赛,因为取证工具链配置不当,我们团队在文件恢复环节浪费了整整两小时。本文将系统…

2026/8/8 14:03:23 阅读更多 →
你的微信记忆会消失吗?用这个开源工具永久保存每一刻对话

你的微信记忆会消失吗?用这个开源工具永久保存每一刻对话

你的微信记忆会消失吗?用这个开源工具永久保存每一刻对话 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/We…

2026/8/8 14:02:23 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/8 8:58:26 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →