Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

这篇具有很好参考价值的文章主要介绍了Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  • Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明
  • Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
  • Hi3798MV200 恩兔N2 NS-1 (三): 制作 Ubuntu rootfs
  • Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs

介绍

恩兔N2是一个家庭存储的系列产品, NS-1 是其中体积最小的一个型号, 基于海思Hi3798MV200. 和其他设备相比, 特点是内置2.5寸SATA盘位, 并且带千兆网口. 这个设备比较小众, 存量很小, 不如斐讯N1, 玩客云那样有广泛的认知度, 甚至在百度和Google上搜索都没什么结果. 生产商恩兔科技这个公司已经停止经营, 其网站 n2yun.com 也已经无法访问. 因为有海思 Hi3798 系列内核的SDK和刷机工具, 使得这个盒子可以发挥余热, 物尽其用.

本文的内容, 大量参考自以下链接

  • 带图说明 https://www.wdmomo.fun:81/doc/index.html?file=003_各类矿渣/013_恩兔NS-1
  • 刷机说明 https://github.com/xiayang0521/n2ns-1/
  • HiNAS https://www.ecoo.top/hitool.html

实物图

包装

Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

正面

正面是一个带指示灯的按钮, 和三个指示灯. 这四个指示灯都是红绿双色, 可以用红绿橙三色显示状态

Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

背面

背面包含一个用于供电的 USB Type-C 口, 一个 HDMI 口, 一个千兆网口, 一个USB口和一个SD Card卡槽.

Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

内部

螺丝在包装的塑料袋里, 盒子默认没上螺丝, 用指甲沿两边可以轻松撬开. 内部可以看到一个标准的2.5寸SATA盘位. 这个高度可以放7mm和9mm厚度的硬盘, 不确定是否能放更厚的15mm厚盘.

Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

PCB特写

正面和背面

Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

TTL 接口
Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

硬件配置

Part Specs Notes
CPU Hi3798MV200 型号 Hi3798MRBCV2010D000, 四核A53, T450 GPU, 详细信息
RAM DDR4 1GB K4A4G165WE-BCRC * 2, 单颗256M 16b, 最高支持ddr2400
Flash eMMC 4GB 东芝THGBMDG5D1LBAIT
Ethernet 10/100/1000M * 1 Realtek RTL8211
USB 2.0 USB 2.0 * 1
HDMI HDMI 2.0 * 1
HDD SATA 3.0 * 1 2.5 Inch
Power Supply DC 5V 2A USB-TypeC
Other Interfaces SD Card Reader * 1

刷机前的准备工作

硬件部分

  • 一台正常工作的, 运行Win10的电脑
  • 网线, 用于连接 N2NS1 到交换机或路由器
  • 用于USB转串口, USB2TTL的串口模块, 常见的 CH340 模块即可

软件部分

软件部分主要是刷机工具和固件

刷机工具

刷机工具是基于 Eclipse 框架开发的, Windows版下载地址列表

  • https://oss.histb.com/HiTool-windows.7z
  • http://xz.w10a.com/small/HiTool.7z
  • https://dl.ecoo.top/HiTool-soft/HiTool-windows.7z
  • https://www.xitongzhijia.net/soft/211748.html
  • http://www.hihope.org/en/download/download.aspx?mtt=36 需要注册

Linux的版本比较旧, 未尝试使用

  • https://oss.histb.com/hitool_linux.tar.gz
  • https://dl.ecoo.top/HiTool-soft/hitool_linux.tar.gz

固件

常见固件的下载

  • HiNAS https://dl.ecoo.top/
    这是一个功能比较完整的集成系统, 内核4.4.35, 选择恩兔N2 NS1定制的 TTL-hi3798mv200-202307-64-n2ns1.zip
  • Debian https://pan.baidu.com/s/1Dx58Zc43P3b3cx3tnhLlmw?pwd=9qte
    这是我基于4.4.35内核做的Debian10系统, 比较干净的版本, 未安装各种服务软件
  • 合集 https://github.com/xiayang0521/n2ns-1/releases
    这里包含了稍息版的 Debian 10, 以及 Centos7 等系统的固件

备份和刷机

海思烧录的基本原理(摘抄自帮助手册)

HiBurn工具在开始烧写后,

  1. 首先与bootrom进行交互, 工具将 DDR 参数传送到传到bootrom, 即为uboot下载阶段5%处, 然后初始化DDR
  2. 把uboot传输到DDR中, uboot下载阶段100%处表示传输完毕
  3. 从DDR启动uboot
  4. uboot启动完成后, 工具开始与uboot进行交互, 发送烧写命令, 将DDR中的uboot烧写到Flash对应地址中

uboot部分是通过TTL传输, 其他镜像分区烧写, 如kernel, rootfs等分区, 工具默认采用网口传输的方式, 客户可选择裸烧和非裸烧两种方式进行烧写

  • 裸烧即为在按分区烧写或按Emmc烧写中勾选uboot进行烧写,此时uboot会被烧写到Flash中
  • 非裸烧即为不勾选uboot, 仅勾选其他分区进行烧写, 此时需要保证当前单板上已经存在uboot, 烧写时工具会启动uboot, 与其交互, 通过向uboot发送TFTP命令与Write命令, 完成烧写.

准备工作

准备 TTL2USB, 排针和网线, 主板上的四孔接口为 TTL, 接口定义参考前面的图.

方孔为VCC不连接, 工作时测得电压为3.3V, 因此切勿用5V的电压连接, 平时最好不连接. USB转串口模块连接电脑和盒子, USB转串口模块的 RX 接盒子的 TX, TX 接盒子的 RX.

本机(上位机)打开 HiTool, 芯片选择 Hi3798MV200, 点击运行 HiBurn, 点击刷新, 本机会自动识别IP和存在的串口, 将串口修改为USB2TTL所在的串口, 盒子(下位机)的IP和本机IP要在同一网段, 例如本机为 192.168.9.123, 板子的IP就可以设为 192.168.9.100, 不要和网段中其它机器冲突即可. 传输方式选择网口.

MAC 地址可以自行设置, 软件将根据设置在刷机过程中使用该 MAC 地址作为板端 MAC

备份

准备分区表

盒子先上电启动一次, 通过串口 TTL 软件看启动日志, 或者在命令行中查看dmesg, 可以得到当前的分区信息, 其格式为

blkdevparts=mmcblk0:2M(fastboot),1M(bootargs),4M(deviceinfo),6M(stbinfo),8M(baseparam),20M(logo),8M(pqparam),40M(private),10M(privatebak),80M(factory),40M(trustedcore_linux),80M(kernel0),80M(kernel1),150M(root0),150M(root1),300M(roothome),-(userdata)

根据上述信息在分区部分逐个添加分区, 最后选择保存分区表.

除了大小, 分区类型在首次备份可以全部选择 none, 也就是以 raw 方式备份, 备份完成后用 binwalk 等工具测试分区到底是 raw 还是 ext4, squash. 除了 roothome 和 userdata, 其它全是raw, 也就是none. 都使用raw类型对备份无影响.

执行备份

分区表选择刚才设置保存的路径, 然后逐个选择文件路径(备份的目标文件名, 主机上目前没有)

programmer 文件为刷机模式使用的临时 fastboot, 可以从别的固件提取, 也可以通过 TFTP 手动备份, 如果留空则使用 eMMC 内置的, 这种情况要求 eMMC 中有 UBOOT, 否则备份失败.

选择上载, 按照提示给盒子上电, 备份需要大约20分钟.

刷机

准备分区表和刷机文件

  1. 解压需要刷机的固件
  2. 运行 HiTool, 在启动对话框选择正确的芯片型号, 选择默认的按分区烧录
  3. 在 partition file 那一行点击浏览, 选择对应的分区表文件. 此时 HiTool 会显示定义好的分区列表, 对应的大小和文件
  4. 在列表中, 勾选的部分是会被执行操作的, 要备份/擦写/写入哪个部分, 就勾上哪个部分

这里以 Debian 固件下载链接 为例进行说明, 其分区表文件为 partition_debian.xml, 对应的六个分区分别是

  1. fastboot(UBOOT)
  2. bootargs(启动参数)
  3. stock_kernel(recovery内核, 小内核)
  4. stock_squash(recovery系统, 小系统)
  5. kernel(64位目标内核)
  6. rootfs(64位目标系统)

通过 HiTool 写入

点击烧写/Burn按钮后, 根据日志窗口提示断电然后上电, 工具会检测到盒子状态, 自动开始烧录

日志窗口会显示进度, 等待烧写完毕后会自动reset, 时间大概需要五六分钟

Debian系统的使用

  • 通过TTL终端软件在串口可以直接登录, 也可以在路由器中查到盒子的IP后, 通过SSH登录.
  • 默认用户为 root / root
  • 刚刷完的根目录所在分区, 可用空间为0, 登录后执行 local-resize.sh 对分区进行扩容.

通过 Recovery 模式恢复或刷机

在固件的6个分区中, stock_kernel 和 stock_squash 组成了一套可以独立运行的 recovery 系统, 如果要让盒子启动进入 recovery 系统, 只需要修改 bootargs 分区.

在 HiTool 中仅勾选 bootargs, 将对应的文件改为 bootargs_stock 进行烧录, 重启后就会通过 stock_kernel / stock_squash 启动, 进入 recovery 命令行

进入 recovery 命令行, 登录用户 root, 密码为空

  • 选项一: 机器连接串口, 通过串口操作
  • 选项二: 机器连接网线, 在路由器找到设备IP, telnet连接

以稍息版的 Debian 刷机包为例说明如何写入系统.

  1. 将 stretch.tar.bz2 和 bootargs2 文件放入U盘根目录, 插上盒子的USB口.

  2. 执行以下命令 开启U盘供电

echo 33 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio33/direction
echo 1 > /sys/class/gpio/gpio33/value

命令行会输出识别到的 usb storage 设备

# usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host1: usb-storage 1-1:1.0
scsi 1:0:0:0: Direct-Access     Generic  Flash Disk       8.07 PQ: 0 ANSI: 4
sd 1:0:0:0: [sda] 15974400 512-byte logical blocks: (8.18 GB/7.62 GiB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA sda:
sd 1:0:0:0: [sda] Attached SCSI removable disk
udisk1110 -> /dev/sda
  1. 用 blkid 能看到U盘对应的分区, 根据U盘分区方式的不同可能是 /dev/sda 也可能是 /dev/sda1

  2. 挂载U盘到 /mnt/usb1

mount /dev/sda /mnt/usb1
# 或者
mount /dev/sda1 /mnt/usb1

这时候ls /mnt/usb1要能看到 stretch.tar.bz2 和 bootargs2 这两个文件

  1. /dev/mmcblk0p6 是用于放置新系统的目标分区, 先格式化
mkfs.ext4 /dev/mmcblk0p6

然后挂载到 /tmp/mmc, 如果提示couldn't mount as ext3 due to feature incompatibilities, 可以忽略

mkdir /tmp/mmc
mount /dev/mmcblk0p6 /tmp/mmc
  1. 解压 Debian 到 /tmp/mmc, 如果要看详细输出, 加上 v 参数
tar xjpf /mnt/usb1/stretch.tar.bz2 -C /tmp/mmc

注意结束时的输出, 如果最后提示一个 magic 写入错误, 可以忽略, 如果是显示其它类型的错误, 要检查一下, 是否U盘文件损坏

  1. 用 bootargs2 覆盖当前的 bootargs
dd if=/mnt/usb1/bootargs2 of=/dev/mmcblk0p2

这一步用于改变启动参数, 重启后将从 /dev/mmcblk0p5 (64bit kernel) 启动.

附录

进入 Fastboot

通过TTL连接后, 在启动阶段按 Ctrl + C, 会进入 Fastboot 命令行

SDK Version: HiSTBLinuxV100R005C00SPC061_20181030

Reserve Memory
    Start Addr:          0x3FFFE000
    Bound Addr:          0xF900000
    Free  Addr:          0x3FFFE000
    Alloc Block:  Addr         Size

Press Ctrl+C to stop autoboot
fastboot# <INTERRUPT>
fastboot# <INTERRUPT>
fastboot# <INTERRUPT>

可以通过 printenv 查看启动参数, 通过 setenv 进行修改

fastboot# printenv 
baudrate=115200
ethaddr=00:00:00:00:00:00
ipaddr=192.168.1.10
netmask=255.255.255.0
gatewayip=192.168.1.1
serverip=192.168.1.1
bootcmd=mmc read 0 0x1FFFFC0 0x24000 0x10000;bootm 0x1FFFFC0
bootargs_512M=mem=512M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1G=mem=1G mmz=ddr,0,0,48M vmalloc=500M
bootargs_2G=mem=2G mmz=ddr,0,0,48M vmalloc=500M
bootargs_768M=mem=768M mmz=ddr,0,0,48M vmalloc=500M
bootargs_1536M=mem=1536M mmz=ddr,0,0,48M vmalloc=500M
bootargs_3840M=mem=3840M mmz=ddr,0,0,48M vmalloc=500M
bootargs=console=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(stock_kernel),60M(stock_squash),32M(kernel),-(rootfs)
bootdelay=0
stdin=serial
stdout=serial
stderr=serial
ethact=up
ver=Fastboot 3.3.0 (htpc@htpc4105) (Dec 17 2021 - 11:19:34)

Environment size: 800/65532 bytes

GPIO 操作

通过GPIO操作LED

# 打开
echo 255 > /sys/class/leds/green:fn/brightness
# 关闭
echo 0 > /sys/class/leds/green:fn/brightness

触发, 如闪烁、管理mmc读写等. 通过cat命令可以看到 LED 支持的触发方式, 通过echo回写相应的字符串可以实现 LED 的自动触发, 如heartbeat代表闪烁, mmc0 代表 mmc0 的读写触发 LED 等等

env 记录

正常启动的 bootargs 参数

root@n2ns1:~# fw_printenv 
bootdelay=1
baudrate=115200
bootfile="uImage"
ethaddr=C6:04:53:66:0E:36
filesize=3702000
fileaddr=1000000
netmask=255.255.255.0
ipaddr=192.168.1.10
serverip=192.168.1.254
bootargs_stock=mem=1G mmz=ddr,0,0,60M vmalloc=500M console=ttyAMA0,115200 initrd=0x11000000,0x4600000 root=/dev/ram blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(stock_kernel),60M(stock_squash),32M(kernel),-(rootfs)
bootargs_debian=mem=1G mmz=ddr,0,0,120M console=ttyAMA0,115200 root=/dev/mmcblk0p6 rw blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(stock_kernel),60M(stock_squash),32M(kernel),-(rootfs)
bootargs_512M=mem=512M mmz=ddr,0,0,256M
bootargs_1G=mem=1G mmz=ddr,0,0,380M
bootargs_2G=mem=2G mmz=ddr,0,0,600M
ethact=up
bootcmd_debian=mmc read 0 0x10000000 0x24000 0x10000;setenv bootargs ${bootargs_debian};bootm 0x10000000
bootcmd_stock=mmc read 0 0x10000000 0x1000 0x5000;mmc read 0 0x11000000 0x6000 0x1e000;setenv bootargs ${bootargs_stock};bootm 10000000
stdin=serial
stdout=serial
stderr=serial
ver=Fastboot 3.3.0 (htpc@htpc4105) (Dec 17 2021 - 11:19:34)
bootcmd=mmc read 0 0x10000000 0x24000 0x10000;setenv bootargs ${bootargs_debian};bootm 0x10000000

recovery 环境的 env 带引导的命令和内核参数文章来源地址https://www.toymoban.com/news/detail-627199.html

# printenv
USER=root
LD_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib:/usr/share/bluetooth/lib:/hybroad/lib
SHLVL=1
TERMINFO=/usr/share/terminfo
HOME=/root
LOGNAME=root
TERM=vt100
PATH=/hybroad/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
SHELL=/bin/sh
PWD=/root

到了这里,关于Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包

    EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行速度提升,多出大量的存储空间; 5、去除应用安装限制

    2024年02月03日
    浏览(31)
  • 路由固件和刷机基础知识介绍(新手普及贴)

    本篇文章主要向大家普及路由固件和刷机的基础知识,文章介绍的比较详细,文章内容非常实用,非常适合新手朋友阅读学习,希望大家能喜欢。 固件: 也称 firmware, 通常用于嵌入式领域,泛指运行于硬件之上的操作系统软件。刷固件或者更新固件是指删除原系 统,更换新

    2024年02月06日
    浏览(77)
  • 华为盒子EC6110-M、EC6110-T(3798mv310芯片)强刷固件及教程

    固件特点: 1.采用官方系统核心以及官方内核; 2.全局精简,保留基本功能,速度更快,无广告,无推送; 3.微调运行机制,使系统更流畅; 4.默认开启硬件GPU加速; 5.固件默认开启ROOT。默认开启ADB; 6.添加精简版当贝桌面,桌面和软件可以自由选择卸载; 7.本固件刷机为三

    2024年02月11日
    浏览(29)
  • 0.【AOSP+Pixel 5】Android13 开发环境搭建及源码下载、编译和刷机

    本人——入行Android没多久的萌新一枚。这个系列文章主要是我客制化Android系统的一些记录。以下是我的开发环境的信息: Android 版本:13 Android 设备:Pixel 5(欧版) 操作系统:Ubuntu 20.04.5 LTS(64位) 先更新一下软件源和软件 Ubuntu 20.04 LTS已经移除Python2,默认安装python3,但是

    2024年02月14日
    浏览(43)
  • 安卓手机ROOT和刷机基本操作——以红米Note7刷安卓原生系统并Root为例

    学习安卓逆向需要进行调试,虽然之前对测试机root过可以进行一些调试,但是某些软件不能正常运行调试,遂选择刷安卓原生系统(PixelExperience) 软件权限(第三方软件) 权限最低,要向用户请求权限 用户权限 高于第三方软件,可以进行授权 ROOT权限 最高权限 Boot分区 包括了内核(Ker

    2024年02月10日
    浏览(57)
  • 长虹液晶智能电视ZLS70Hi机芯刷机升级方法及刷机数据

    适用机型:长虹电视Q5K Q5N系列 机芯:ZLS70Hi 请认真阅读刷机必读,否则引起系统异常自行承担后果 刷机方法: 1、将upgrade_ZLS70Hi_V1.10xxx.bin拷贝到fat32格式的优盘; 2、电视机进入待机状态,U盘插到电视机的USB端口; 3、按住本机键中间的键,并下压,不松开,等待约10秒,出

    2024年01月19日
    浏览(31)
  • 烽火HG680-KA-MV300/310-刷机固件及教程

    固件特点: 1、系统为当贝界面;内置免费直播   点播软件 ; 2、适配蓝牙遥控器语音直播、点播功能; 3、支持无线WiFi连接,支持WIFI热点功能; 4、系统时间默认24小时格式显示; 5、删除原机自带IPTV等APP高度精简; 6、删除在线升级功能,更完美。   短接点: 1、按钮开关

    2024年02月15日
    浏览(80)
  • Openharmony的设备开发流程 Hi3516DV300

    这里用VirtualBox 6.1.3 https://download.virtualbox.org/virtualbox/6.1.30/VirtualBox-6.1.30-148432-Win.exe 安装 Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上。 https://mirrors.huaweicloud.com/home https://mirrors.huaweicloud.com/ubuntu-releases/20.04/ubuntu-20.04.6-desktop-amd64.iso 通常在嵌入式开发中

    2024年03月13日
    浏览(40)
  • 鸿蒙OS2.0 设备开发之Hi3861-基础功能汇总

    这是一篇讲解在 鸿蒙2.0全量源码中开发Hi3861 的常用功能汇总,可帮助我们 快速配置GPIO 如,如何实现 PWM、I2C、ADC 等。 1.1 输出 分两步,使能、配置输出值; 需要注意的是,有些GPIO还需要设置复用功能,可能默认不是普通GPIO模式。 这时候就需要使用 hi_io_set_func 函数;以

    2024年02月07日
    浏览(37)
  • 【TES714】JFM7K325T(复旦微FPGA)+HI3531DV200(华为海思)的综合视频处理平台设计原理图及调试经验

    板卡概述 TES714 是自主研制的一款 5路HD-SDI 视频采集图像处理平台,该平台采用上海复旦微的高性能Kintex系列FPGA加上华为海思的高性能视频处理器 HI3531DV200 来实现。 华为海思的HI3531DV200是一款集成了ARM A53四核处理器性能强大的神经网络引擎,支持多种智能算法应用,集成多

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包