网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件
目录
- 网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件
- 网心云 OEC/OECT 笔记(2) 运行RKNN程序
外观
内部
PCB正面
PCB背面
PCB背面
RK3566
1Gbps PHY
配置
OEC 和 OECT(OEC-turbo) 都是基于瑞芯微 RK3566/RK3568 的网络盒子, 没有HDMI输入输出. 硬件上 OEC 和 OECT 是一样的, 唯一的区别是内存, OEC 内存 2GB 而OECT 内存是 4GB.
产品 | OEC | OEC-turbo |
---|---|---|
CPU | RK3566/RK3568 | RK3566/RK3568 |
内存 | 2GB | 4GB |
系统存储 | 8GB | 8GB |
网络接口 | 千兆以太网接口*1 | 千兆以太网接口*1 |
硬盘接口 | SATA3.0接口*1;支持内置2.5寸 硬盘 | SATA3.0接口*1;支持内置2.5寸 硬盘 |
USB | USB3.0*1 | USB3.0*1 |
电源 | 12V/2A 电源 | 12V/2A 电源 |
产品尺寸 | 145mm90mm47mm | 145mm90mm47mm |
相关下载
https://cloud.189.cn/t/N7RFNn7zIBNz 访问码: h5nu
- DriverAssitant_v5.13
瑞芯微的USB驱动 - RKDevTool_Release_v3.31.zip
瑞芯微的线刷工具 - MiniLoaderAll_oect.bin
线刷时需要写入的BOOT固件, 在PCB版本为 OEC-1.1 的板子上可以正常启动 - Flash_Armbian_25.05.0_rockchip_efused-wxy-oec_bookworm_6.1.99_server_2025.03.20.7z
- 来源: [重发/线刷包]适用于OEC,带VPU,灯控等的Debian Armbian by hoiw
- Armbian固件包,内核信息为 Linux armbian 6.1.99-rk35xx-ophub #1 SMP Mon Mar 17 11:25:03 EDT 2025 aarch64 GNU/Linux
- oec_base.img.7z
据说是救砖时用的OEC底包, 未实测
其它下载地址
- https://share.weiyun.com/Hb8Zhxek
- https://pan.baidu.com/s/13wWc1Z8slffM8WOOBlcf9w?pwd=5xk4
刷机流程
详细的拆机和刷机步骤, 参考这两篇就行
- 扔掉玩客云斐讯N1吧,这才是2025年NAS性价比王者-OEC刷机篇
- 网心云OEC-turbo超越N1的矿渣神器,刷机Armbian系统喂饭教程
大致的步骤就是
- 下载 MiniLoaderAll_oect.bin 到本地
- 下载 Flash_Armbian_25.05.0_rockchip_efused-wxy-oec_bookworm_6.1.99_server_2025.03.20.7z 到本地, 解压
- 下载 DriverAssitant 到本地, 解压, 安装驱动
- 下载 RKDevTool_Release_v3.31 到本地, 解压, 运行, 只勾选前两行, 设置好地址, 选择对应的固件文件
- 使OEC板子进入MASKROOM状态
- 在 RKDevTool 中执行烧录
关于下载BOOT失败
失败是正常的, 多试几次.
对于"下载BOOT失败", 如果一直失败, 可以用下图这种方式试试, 来源恩山论坛 帖子链接. 比短接GND, 1V8的成功率高很多.
- 开着 RKDevTool, 先把地址和固件设置好
- 用一个金属物(例如小螺丝刀)对着图中18ct元件的2,3脚, 悬着先不要短接
- OECT连上USB线, 另一头对着电脑USB口, 往USB口插OECT的灯亮起的那一刻, 迅速点一下2, 3脚使其短路, 点完即可放开, 此时会灯灭一下然后又亮, 就能检测到 MASKROOM 设备了
- 之后立即点击执行.
使用这种方式进入MASKROOM状态, 下载 BOOT 阶段的成功率能达到50%以上.
关于测试设备失败
如果BOOT下载成功, 执行到"测试设备开始", 但总是测试设备失败, 说明BOOT已经写进去了并且板子也启动了, 但是从上位机去检查板子的USB口失败了. 多试几次就可以了. 这种情况也可能是写入的 MiniLoaderAll.bin 不合适, 没有正常启动板子的USB口. 换一个 MiniLoaderAll.bin 试试.
刷机成功的界面
最后一步写入固件因为有7个多GB, 写入的时间会比较久, 如果需要判断 RKDevTool 是否工作正常, 可以开一个系统任务管理器查看, 如果 RKDevTool 这个进程一直有磁盘写入, 说明还在工作.
系统展示
Armbian 系统设置
hoiw原帖中对这个固件的介绍
重写了设备树,设备树及源码已提交至ophub,以后可以通过底包+ophub包的方式直接安装。
目前ophub的rk35xx支持有问题,导致不能双包(底包+ophub镜像包)安装,等ophub那边修复。适用于OEC/OEC-Turbo的Armbian镜像
知道你们想要装OMV,这次是Debian 12(Bookworm)的镜像。
镜像修复了RKVENC,RKVDEC的支持,有RGA设备,有NPU。
GPU目前只能通过panfrost驱动,目测是上游源码的问题,没有mali0节点
eMMC分区目前应该是所有包里利用率最大的,刷好以后eMMC根目录总空间6.5个G
支持灯控,有红蓝绿三色,以及调色后青(蓝+绿),黄(红+绿),粉(红+蓝),白(红+蓝+绿)四色 共7色可调,自己写脚本。
默认是绿灯(不过青色好看些,下一版改掉?)原厂OEC镜像的uboot自带一个BUG,会导致USB插某些设备无法启动。无法修复
但是,只要关闭开机的USB设备启动,让uboot不检测USB,就能避免这个BUG,
这个镜像添加了开关,支持关闭USB启动,这样USB就能开机插着硬盘了。
线刷镜像(此贴)默认关闭USB启动,ophub镜像(双镜像)默认开启。关闭/开启USB启动方法(仅适用于此镜像):
首次运行时,执行以下命令:
apt update
apt-mark unhold armbian-bsp-cli-odroidn2-current
apt remove u-boot-tools
apt install u-boot-tools
apt install armbian-bsp-cli-odroidn2-current
apt-mark hold armbian-bsp-cli-odroidn2-current之后 只要运行fw_setenv enabled_usbboot '0' 就能关闭开机的USB启动
要再打开USB启动,用fw_setenv enabled_usbboot '1'
(注意英文单引号别打错了)
修改软件源
默认的软件源下载太慢了, 修改 /etc/apt/sources.list.d/debian.sources, 替换软件源
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgTypes: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
常用命令
查看CPU温度, 数值要除以1000
$ cat /sys/class/thermal/thermal_zone0/temp
41250
查看emmc寿命, 参数的值以 10% 的步长参考, 例如 0x01 = 0-10%, 0x02 = 10%-20% 寿命损耗
$ mmc extcsd read /dev/mmcblk0 | grep Life
eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x01
eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x00
查看GPIO
$ sudo cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/fdd60000.gpio, gpio0:gpio-19 ( |red-led ) out hi ACTIVE LOWgpio-22 ( |vcc5v0-host-regulato) out hi gpiochip1: GPIOs 32-63, parent: platform/fe740000.gpio, gpio1:gpiochip2: GPIOs 64-95, parent: platform/fe750000.gpio, gpio2:gpiochip3: GPIOs 96-127, parent: platform/fe760000.gpio, gpio3:gpio-107 ( |blue-led ) out hi ACTIVE LOWgpio-108 ( |green-led ) out lo ACTIVE LOWgpiochip4: GPIOs 128-159, parent: platform/fe770000.gpio, gpio4:
查看LED
$ cat /sys/class/leds/blue-led/brightness
0
$ cat /sys/class/leds/red-led/brightness
0
$ cat /sys/class/leds/green-led/brightness
1
相关链接
- oec已经有可以直接刷的固件了,但是是ubuntu的noble版本,大佬可否适配下Debian的bullseye和bookworm,想装个omv,感谢大佬 #2786
ophub 的 armbian 仓库项目下, 关于 oec/oect 固件的讨论1 - 兄弟们。网心云oecturbo 刷入这个固件还会变砖吗 #2834
ophub 的 armbian 仓库项目下, 关于 oec/oect 固件的讨论2 - https://wiki.kobol.io/helios64/maskrom/
Linux 上位机刷机
相关文章:

网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件
目录 网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件网心云 OEC/OECT 笔记(2) 运行RKNN程序 外观 内部 PCB正面 PCB背面 PCB背面 RK3566 1Gbps PHY 配置 OEC 和 OECT(OEC-turbo) 都是基于瑞芯微 RK3566/RK3568 的网络盒子, 没有HDMI输入输出. 硬件上 OEC 和 OECT…...

【Web应用】若依框架:基础篇17二次开发-项目名称修改-新建业务模块
文章目录 ⭐前言⭐一、课程讲解⭐二、自己手动实操⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C)、数据库、操作系统、大数据、人工智能、工控、网络、…...
C获取unix操作系统的信息
在 C 语言中获取 Linux 操作系统的架构类型(如 x86_64)、系统位数(32/64位)、内核信息等,可以通过多种方式实现。下面是几种常见的方法: ✅ 方法一:使用 uname 获取系统信息 #include <stdio.h> #include <sys/utsname.h>int main(...

MQTT入门实战宝典:从零起步掌握物联网核心通信协议
MQTT入门实战宝典:从零起步掌握物联网核心通信协议 前言 物联网时代,万物互联已成为现实,而MQTT协议作为这个时代的"数据总线",正默默支撑着从智能家居到工业物联的各类应用场景。本文将带你揭开MQTT的神秘面纱&#…...

05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作
目录 前言 1 Linux用户管理基础概念 1.1 Linux用户类型 1.2 用户相关配置文件 1.3 UID与GID 2 用户创建与管理 2.1 创建用户 2.2 设置用户密码 3 用户权限管理 3.1 授予sudo权限 3.2 以其他用户身份执行命令 4 用户信息查询 4.1 查看用户基本信息 4.2 查看用户所…...
POP3、IMAP、SMTP:三大邮件协议核心差异与应用场景解析
## 一、协议概述与核心功能 电子邮件系统的运行依赖三大核心协议:**POP3**(Post Office Protocol 3)、**IMAP**(Internet Message Access Protocol)和**SMTP**(Simple Mail Transfer Protocol)…...
HarmonyOS5 仓颉入门:和 ArkTs 互操作
现在一般的场景是在已有 ArkTs 库中使用仓颉,所以可以将仓颉代码封装为 ArkTs 库,提供给外部使用。 原理就是互操作宏解析被注解修饰的仓颉代码,会自动生成 ArkTs 声明文件和互操作层代码。 使用步骤: 1.在 cj 文件中ÿ…...
【Git 合并冲突解决记录:从 “refusing to merge unrelated histories“ 到批量冲突处理】
Git 合并冲突解决记录:从 “refusing to merge unrelated histories” 到批量冲突处理 前言 作为开发者,我们经常会遇到各种 Git 问题,其中最让人头疼的莫过于 fatal: refusing to merge unrelated histories 这个错误。最近在项目开发中遇…...

使用vite-plugin-html在 HTML 文件中动态注入数据,如元数据、环境变量、标题
vite-plugin-html 是一个用于 Vite 构建工具的插件,它可以帮助你在构建过程中动态注入一些 HTML 内容,比如标题、元数据、环境变量等。通过使用这个插件,你可以根据项目的配置和环境变量自动生成带有动态内容的 HTML 文件,适用于 …...

Kinova机械臂在Atlas手术导航系统中的核心作用
Kinova机械臂凭借其高精度运动控制和智能交互功能,成为Atlas手术导航系统的重要组成部分。该系统通过实时跟踪患者位置和精确规划手术路径,提高了医疗过程的精准性与效率。灵活的设计使外科医生能够更轻松地操作复杂的手术工具,从而提升患者安…...
C++——智能指针 auto_ptr
一、RAII思想的引入 #include <iostream> using namespace std;#if 0 // C中动态申请的资源需要用户自己手动释放 // 如果操作不当,容易造成内存泄漏 // 能否做到让资源自动被释放:RAII // RAII : 将资源交给对象管理,对象被销毁时自动…...
.Net Framework 4/C# System.IO 命名空间(文件的输入输出)
一、Path 类 Path 类是一个静态类,只能通过类名访问它的静态成员。 获得文件的名字,可以用 GetFileName,返回的是具有扩展名的指定路径字符串的文件名,也可以用 GetFileNameWithoutExtension,返回的是不具有扩展名的指定路径字符串的文件名。 获得文件夹的名字,可以用 G…...
图像分类进阶:从基础到专业 (superior哥AI系列第10期)
图像分类进阶:从基础到专业 🚀 前言 👋 哈喽,各位深度学习的探索者们!我是你们的老朋友superior哥 😎 经过前面九篇文章的学习,相信大家对深度学习的基础概念、神经网络架构、以及训练部署都…...

性能优化之SSR、SSG
一、SSR和SSG介绍 SSR(Server-Side Rendering,服务端渲染)和 SSG(Static Site Generation,静态站点生成)是现代前端框架(如 Next.js、Nuxt.js、Gatsby)的核心渲染策略,用…...
【C语言】字符与字符串
在 C 语言中,字符(Character) 和 字符串(String) 是两个不同但相关的概念。下面详细介绍它们的定义、存储方式和使用方法: 一、字符(Character) 1. 定义与存储 基本类型ÿ…...

经典算法:回文链表
题目:234. 回文链表 给你一个单链表的头节点 head,请你判断该链表是否为 回文链表。如果是,返回 true;否则,返回 false。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2&#x…...

uboot移植之GPIO上电初始状态的调整
开发板在上电之后,GPIO都有一个默认初始状态,这个状态可能是高电平也可能是低电平。而我们的应用程序在正式接管控制这些GPIO,是在内核起来并成功加载根文件系统之后。所以在内核启动的这段时间内,这些GPIO保持在一种不受控的状态…...
PasteForm(ABP)框架之实现更加灵活的类似多租户的归属过滤功能,比如只能查看自己的相关数据
需求说明 在开发中,我们常会遇到一个问题,就是归属查询问题,比如只能查看我自己的,往往这个时候还附带了一个规则,比如有人是在这个规则之外的! 1.只能查看创建者自己创建的资料 2.只能查看我店铺的相关内容,不能查看别人店铺的 3.只能查看我部门的相关信息等 可能你会…...

本地id_rsa.pub输入到服务器~/.ssh/authorized_keys后,依然需要输入密码的解决办法
首先检查服务器: sudo vim /etc/ssh/sshd_config 然后把这两个修改为: 如果依然需要输入密码,在本地终端: ssh -v userserver 查看认证过程,例如我这里提示说明客户端已成功尝试使用密钥认证: 进一步…...

【设计模式-3.7】结构型——组合模式
说明:本文介绍结构型设计模式之一的组合模式 定义 组合模式(Composite Pattern)又叫作整体-部分(Part-Whole)模式,它的宗旨是通过将单个对象(叶子节点)和组合对象(树枝…...

Unity Mac 笔记本操作入门
在 macOS 笔记本电脑上使用 Unity Editor 的场景视图 (Scene View) 旋转视角,主要依赖于触摸板手势和键盘修饰键的组合。由于没有物理中键,操作方式会与 Windows 鼠标略有不同。 以下是具体的旋转视角操作: 1. 基本旋转视角 (Orbit) 这是最…...

实时数据仓库是什么?数据仓库设计怎么做?
目录 一、实时数据仓库是什么 (一)实时数据仓库的定义 (二)实时数据仓库的特点 二、实时数据仓库的应用场景 (一)金融行业 (二)电商行业 (三)物联网行…...

Linux(12)——基础IO(下)
目录 六、重定向 📄输出重定向 📄输入重定向 📄追加重定向 📄dup2 七、理解一切皆文件 八、缓冲区 🧠什么是缓冲区 🧠为什么要引入缓冲区 📄缓冲区类型 九、FILE 六、重定向 我们这…...

WPF可拖拽ListView
1.控件描述 WPF实现一个ListView控件Item子项可删除也可拖拽排序,效果如下图所示 2.实现代码 配合 WrapPanel 实现水平自动换行,并开启拖拽 <ListViewx:Name"listView"Grid.Row"1"Width"300"AllowDrop"True&…...
rocketmq索引
索引的理解 索引是什么, 索引实质是 相同数据的另一种存储结构 我们都知道读和写天然是存在矛盾的, 我们希望写的快,当然是顺序写的性能最高, 顺序写造成数据杂乱无章,没法按照一定的规律去找数。 如果想要找数的效率高, 必须要有结构组织的存放数据, 这样方便按规律找…...

[蓝桥杯]倍数问题
倍数问题 题目描述 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 nn 个数,希望你从这 nn 个数中找到三个数,使得…...
定时任务的 cron 表达式
定时任务的 cron 表达式 一、什么时 cron 表达式 Cron表达式是一种广泛应用于Linux系统的时间表示格式,常用于定时任务的调度。Cron表达式可以通过指定不同的时间参数,描述一个在 未来某个时间点执行的任务。 二、Cron表达式语法 秒 分 时 日 月 周几…...

【MySQL】 约束
一、约束的定义 MySQL 约束是用于限制表中数据的规则,确保数据的 准确性 和 一致性 。约束可以在创建表时定义,也可以在表创建后通过修改表结构添加。 二、常见的约束类型 2.1 NOT NULL 非空约束 加了非空约束的列不能为 NULL 值,如果可以…...
MySQL 的 redo log 和 binlog 区别?
MySQL 的 redo log 和 binlog 区别? 1. 核心概念对比 1.1 redo log(重做日志) go专栏:https://duoke360.com/tutorial/path/golang 定位:InnoDB引擎层的物理日志作用:实现事务的持久性(ACID中的Durability)记录内容:物理页级别的修改(如"在page 5的offset 10…...

前端vue打开多个窗口,关闭窗口后才继续执行后续逻辑
1.打开第一个弹窗 弹窗的按钮代码 2.点击窗口1中按钮,打开新的窗口 // 请领单按钮点击 async cb_6_delClick() {let ls_yfbm this.st_3Value.BMBMlet pstring {}pstring.a ls_yfbmpstring.b this.queryFormDialog.outDepotDeptCodeawait this.openwithparm_w_md…...