20250516使用TF卡将NanoPi NEO core开发板出厂的Ubuntu core22.04.3系统降级到Ubuntu core16.04.2

20250516使用TF卡将NanoPi NEO core开发板出厂的Ubuntu core22.04.3系统降级到Ubuntu core16.04.2
2025/5/16 10:58


缘起:NanoPi NEO core核心板出厂预制的OS操作系统为Ubuntu core22.04.3系统。
【虽然是友善之臂提供的最新的系统,但是缺少很多用用程序。新的程序可能并不一定那么稳定!】
由于Ubuntu core16.04.2久经考验,我们也在Ubuntu core16.04.2上做了很多开发了。
根据领导要求,降级了。

以前/生产线要求,插入TF卡,给一个时间点,多长时间断电拔卡。
为了满足它们的要求。现在开始琢磨升级卡了。


1、你们这个呼吸灯【快闪2次,然后等一秒^_】、 快闪【一秒2/3/5次】 慢闪【一秒一次?2秒一次】。没有量化指标。
2、大概知道了。你们 在后台自动升级的时候 ,前台的串口还是要输入 账号 密码的。
3、如果是 配置成为上电 自动刷机。我希望的是 刷机成功之后2-5秒钟?执行 poweroff操作。这样安全的关电 拔卡[表情]


https://wiki.friendlyelec.com/wiki/index.php/EFlasher/zh#.E5.BC.80.E6.9C.BA.E8.87.AA.E5.8A.A8.E7.83.A7.E5.86.99.E6.8C.87.E5.AE.9A.E7.9A.84.E7.B3.BB.E7.BB.9F
EFlasher/zh

7 开机自动烧写指定的系统
7.1 默认已开启自动烧写
所有文件名为XXXX-eflasher-OS-YYYYMMDD.img.gz的单个OS的固件,默认情况下均开启了自动烧写,如果你不希望开机自动烧写,请使用文件名为 XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz 的固件。

7.2 配置方法
有三种途径可以进行配置:
方法1:在图形界面上,选择你要烧写的系统,在Ready to Go预览界面上,在屏幕下方钩选 "Start automatically at startup" 。
方法2: 将SD卡挂载到Windows电脑上,用notepad+文本编辑器在SD卡的Fat分区上新建一个名为eflasher.conf文件 (如果已存在就直接编辑即可),其内容如下:
[General]
autoStart=/mnt/sdcard/XXXXXX
其中,XXXXXX替换成SD卡中存放固件的目录名,例如H3平台的FriendlyCore系统目录名为 friendlycore-xenial_4.14_armhf。

方法3: 开发板运行状态下,通过串口终端,用vi编辑文件:/mnt/sdcard/eflasher.conf,文件不存在就新增一个,内容同上面的方法2。
7.3 自动烧写的进度指示
上电开机时,板上的状态灯先是呈呼吸灯状态,开机烧写固件时状态灯会快闪,烧写完成后变成慢闪,并一直停留在慢闪状态。
状态灯通常为蓝灯,某些平台板子可能会是其他颜色。
也可以利用 LCD2USB 模块,或者LCD和HDMI屏幕,得到可视化的进度指示。
8 烧写或恢复系统完成后做些其他事情
在量产时,你可能会希望在烧写系统完成后做一些额外的事情,比如点亮某个LED,你可以修改 /opt/run-eflasher.sh 脚本,在 "./eflasher-gui" 开头这一行的后面加入代码,例如下面的示例,在烧写完成后,设置某个GPIO针脚:

./eflasher-gui -qws >/dev/null 2>&1
echo 13 > /sys/class/gpio/export 
echo out > /sys/class/gpio/gpio13/direction 
echo 0 > /sys/class/gpio/gpio13/value
echo 13 > /sys/class/gpio/unexport
以下脚本则演示在S5P4418/S5P6818平台上, 烧写系统后, 将cpu id写入到eMMC系统的 /etc/cpuid.txt 文件中:

./eflasher-gui -qws >/dev/null 2>&1
partprobe /dev/mmcblk1
mount /dev/mmcblk1p2 /media/
cat /sys/devices/platform/cpu/uuid > /media/etc/cpuid.txt
umount /media/
要让上面的脚本正常运作,我们还需要设置让 eflasher-gui 在烧写完成后自动退出,需要做以下设置:
用notepad+文本编辑器在SD卡的Fat分区上编辑并新建一个名为eflasher.conf文件,将AutoExit字段设置为True:
[General]
autoStart=/mnt/sdcard/friendlycore-xenial
autoExit=true
autoStart字段则是指定开机自动烧写指定的系统而无需交互, 如果没有连接屏幕, 可以通过 LED 烧来识别烧写状态, 默认情况下, 绿色LED快闪表示正在烧写.


H:\eflasher.conf

; This is the eFlasher configuration file.
; See http://wiki.friendlyarm.com/wiki/index.php/EFlasher for detailed information.

[General]
; Automate OS installation at system startup,
; Use the "autoStart" field to specify the image path or RAW image file,
; The RAW image file can be a gzip compressed file,
; The RAW image file extension must be ".raw" or ".gz",
; Available values: friendlycore
autoStart=friendlycore

; If the "autoExit" field set to true, the eflasher-gui will automatically exit after burning or restoring is completed, 
; You can do something else after burning or restoring by modifying /opt/run-eflasher.sh.
autoExit=false

; Don't erase the flash before burning, useful if you only want to update part of the system files
disableLowFormatting=false

[UI]
; HDMI overscan option, examples:
;     screenSizePercent=auto
;     screenSizePercent=90
screenSizePercent=auto

welcomeMessage=
hideMenuButton=false
hideBackupAndRestoreButton=false
hideStatusBar=false
autoRebootWhenSDBeEjected=true

修改:

; This is the eFlasher configuration file.
; See http://wiki.friendlyarm.com/wiki/index.php/EFlasher for detailed information.

[General]
; Automate OS installation at system startup,
; Use the "autoStart" field to specify the image path or RAW image file,
; The RAW image file can be a gzip compressed file,
; The RAW image file extension must be ".raw" or ".gz",
; Available values: friendlycore
autoStart=/mnt/sdcard/friendlycore

; If the "autoExit" field set to true, the eflasher-gui will automatically exit after burning or restoring is completed, 
; You can do something else after burning or restoring by modifying /opt/run-eflasher.sh.
autoExit=false

; Don't erase the flash before burning, useful if you only want to update part of the system files
disableLowFormatting=false

[UI]
; HDMI overscan option, examples:
;     screenSizePercent=auto
;     screenSizePercent=90
screenSizePercent=auto

welcomeMessage=
hideMenuButton=false
hideBackupAndRestoreButton=false
hideStatusBar=false
autoRebootWhenSDBeEjected=true


如果要升级到出厂的Ubuntu core22.04.3系统
H:\eflasher.conf
autoStart=friendlycore-jammy
修改为:
autoStart=/mnt/sdcard/friendlycore-jammy


打印LOG:
[  OK  ] Reached target Network.
         Starting /etc/rc.local...
         Starting OpenBSD Secure Shell server...
         Starting Permit User Sessions...
[  OK  ] Started /etc/rc.local.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Serial Getty on ttyS0.
         Starting Set console scheme...
[  OK  ] Finished Set console scheme.
[  OK  ] Created slice Slice /system/getty.
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Started OpenBSD Secure Shell server.

Ubuntu 22.04 LTS NanoPi-NEO-Core ttyS0

Default Login:
Username = pi
Password = pi

NanoPi-NEO-Core login: root
Password: 
root@NanoPi-NEO-Core:~# 
root@NanoPi-NEO-Core:~# whoami
root
root@NanoPi-NEO-Core:~# 
root@NanoPi-NEO-Core:~# pwd
/root
root@NanoPi-NEO-Core:~# cd /
root@NanoPi-NEO-Core:/# 
root@NanoPi-NEO-Core:/# cd /mnt/sdcard/
root@NanoPi-NEO-Core:/mnt/sdcard# ls -l
total 96
drwxr-xr-x 2 root root 32768 May 16  2025 'System Volume Information'
-rwxr-xr-x 1 root root  1023 May 16  2025  eflasher.conf
drwxr-xr-x 2 root root 32768 Apr  2  2025  friendlycore
root@NanoPi-NEO-Core:/mnt/sdcard# cd friendlycore/
root@NanoPi-NEO-Core:/mnt/sdcard/friendlycore# 
root@NanoPi-NEO-Core:/mnt/sdcard/friendlycore# ls -l
total 1063424
-rwxr-xr-x 1 root root   41943040 Nov  5  2024 boot.img
-rwxr-xr-x 1 root root         53 Apr  2  2025 info.conf
-rwxr-xr-x 1 root root        416 Apr  2  2025 partmap.txt
-rwxr-xr-x 1 root root 1044652408 Apr  2  2025 rootfs.img
-rwxr-xr-x 1 root root    2088960 Nov  9  2023 u-boot-sunxi-with-spl.bin
-rwxr-xr-x 1 root root     159868 Apr  2  2025 userdata.img
root@NanoPi-NEO-Core:/mnt/sdcard/friendlycore# 
root@NanoPi-NEO-Core:/mnt/sdcard/friendlycore# cd /
root@NanoPi-NEO-Core:/# 
root@NanoPi-NEO-Core:/# uname -a
Linux NanoPi-NEO-Core 4.14.111 #193 SMP Thu Jun 10 18:20:47 CST 2021 armv7l armv7l armv7l GNU/Linux
root@NanoPi-NEO-Core:/# 
root@NanoPi-NEO-Core:/# cat /etc/issue
Ubuntu 22.04 LTS \n \l

Default Login:
Username = pi
Password = pi

root@NanoPi-NEO-Core:/# 
root@NanoPi-NEO-Core:/# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/906165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密西根大学新作——LightEMMA:自动驾驶中轻量级端到端多模态模型

导读 目前将自动驾驶与视觉语言模型(VLMs)结合的研究越来越火热,VLMs已经证明了其对自动驾驶的重要作用。本文引入了一种用于自动驾驶的轻量级端到端多模态模型LightEMMA,它能够集成和评估当前的商业和开源模型,以研究…

框架之下再看HTTP请求对接后端method

在当今的软件开发领域,各类框架涌现,极大地提升了开发效率。以 Java 开发为例,Spring 框架不断演进,Spring Boot 更是简化到只需引入 Maven 包,添加诸如SpringBootApplication、RestController等注解,就能轻…

Vue+Go 自定义打字素材的打字网站

Typing_Key_Board 这是一个基于Vue 3和Go语言的自定义素材打字练习网站,灵感来源于常用字打字练习,解决了大多数网站无法自定义打字素材的问题。在 Typing_Key_Board (简称TKB)中,用户可以自定义打字素材进行练习,在复习代码的同…

开源物联网平台(OpenRemote)

在物联网技术蓬勃发展的当下,OpenRemote作为一款强大的开源物联网平台,正逐渐在多个领域崭露头角。尤其是在智能能源管理领域,它为微电网和分布式能源网络提供了全面且灵活的数据集成与管理方案,展现出独特的优势。 OpenRemote提供…

Spring Security与SaToken的对比与优缺点分析

Spring Security与SaToken对比分析 一、框架定位 Spring Security 企业级安全解决方案,深度集成Spring生态提供完整的安全控制链(认证、授权、会话管理、攻击防护)适合中大型分布式系统 SaToken 轻量级权限认证框架,专注Token会…

每日一道leetcode(新学数据结构版)

208. 实现 Trie (前缀树) - 力扣(LeetCode) 题目 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动…

【自然语言处理与大模型】大模型(LLM)基础知识④

(1)微调主要用来干什么? 微调目前最主要用在定制模型的自我认知和改变模型对话风格。模型能力的适配与强化只是辅助。 定制模型的自我认知:通过微调可以调整模型对自我身份、角色功能的重新认知,使其回答更加符合自定义…

基于 Spring Boot 瑞吉外卖系统开发(十五)

基于 Spring Boot 瑞吉外卖系统开发(十五) 前台用户登录 在登录页面输入验证码,单击“登录”按钮,页面会携带输入的手机号和验证码向“/user/login”发起请求。 定义UserMapper接口 Mapper public interface UserMapper exte…

什么是TCP协议?它存在哪些安全挑战?

一、TCP协议概述 TCP(传输控制协议)是互联网中面向连接、可靠的传输层协议,主要负责在不可靠的IP层上实现数据的可靠传输。其核心特点包括: 面向连接:通信前需通过三次握手(SYN-SYN/ACK-ACK)建…

12条热门照片提示

12条热门照片提示 1. 赛博朋克光彩 (Cyberpunk Glow-Up) 未在文件中显示2. 卡通化我 (Cartoonify Me) Convert this image of [your subject here] into a 3D Pixar-style cartoon clean lines, soft lighting, expressive features, and a polished render that feels cine…

Java求职面试揭秘:从Spring到微服务的技术挑战

文章简述 在这篇文章中,我们将通过一个幽默的面试场景,揭秘互联网大厂Java求职者在面试中面对的技术挑战。面试官将从Spring框架、微服务架构到大数据处理等多个维度进行提问,并详细讲解这些技术点的应用场景和解决方案,帮助小白…

用Python输出一个文件夹的所有文件结构

输出一个文件夹的所有目录和文件结构 新建一个Python文件,输入 这个文件表示查询一个文件夹所有的目录结构 import osdef print_directory_structure(root_dir):"""打印树状目录结构(优化版)"""if not os.p…

R语言的专业网站top5推荐

李升伟 以下是学习R语言的五个顶级专业网站推荐,涵盖教程、社区、资源库和最新动态: 1.R项目官网 (r-project.org) R语言的官方网站,提供软件下载、文档、手册和常见问题解答。特别适合初学者和高级用户,是获取R语言核心资源的…

IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎

通过在 IntelliJ IDEA 中的 “Includes” 部分添加多个文件头模板,并在 “Files” 模板中利用这些包含来实现不同类型文件的注释。以下是为 Controller、Service、Mapper 文件设置不同文件头的完整示例: 1. 设置 Includes 文件头模板 File > Settin…

LabVIEW双音信号互调失真测量

该VI构建实现了一套完整的双音信号互调失真(IMD)测量系统。该系统通过精确控制信号生成、采集与分析流程,实现对被测设备(DUT)非线性特性的量化评估,可广泛应用于通信设备、音频系统、射频器件等领域的研发…

56.合并区间(java)

题目描述: 1.先判断给定intervals是否为空或者大小是否为1,是则直接返回intervals。 2.对intervals进行排序 数组形式则使用:Arrays.sort(intevals,(a,b)->Integer.compare(a[0],b[0])); ArrayList形式:intervals.sort((a,b)-…

Redis设计与实现——Redis命令参考与高级特性

Redis命令参考 数据类型相关命令 SET:设置键值,支持过期时间、不存在/存在条件。GET:获取键值,若键不存在返回 nil。INCR/DECR:将键的整数值增1/减1,键不存在时初始化为0。MSET/MGET:批量设置…

基于 STM32 的全自动洗车监控系统设计与实现

摘要 本文提出一种基于 STM32F103RCT6 芯片的全自动洗车监控系统方案,通过多传感器融合与智能控制算法,实现车辆检测、洗车流程自动化及状态远程监控。系统集成硬件选型、电路设计、软件流程及通信功能,可广泛应用于智能洗车场景。 一、硬件系统设计 1. 核心芯片选型 主控…

掌握Multi-Agent实践(七):基于AgentScope分布式模式实现多智能体高效协作[并行加速大模型辅助搜索、分布式多用户协同辩论赛]

之前的案例都是运行在单台机器上以单进程形式运行,受限于 Python 的全局解释器锁,实际只能有效利用一个 CPU 的计算资源,并且无法支持多个用户从自己的电脑上接入同一个 Multi-Agent 应用进行交互。为了提高运行效率并支持多用户接入同一个应用中,AgentScope 提供了分布式…

docker-compose部署项目(springboot服务)以及基础环境(mysql、redis等)ruoyi-ry

上传jar 配置文件等 到目录:/home/ruoyi/docker 设置权限 chmod x *.sh 开通端口(我已经开通了) sh ./deploy.sh port 开始构建 docker-compose build 构建成功 可以先拉取镜像 docker pull nacos/nacos-server docker pull nginx docker …