Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
目录
- Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明
- Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
- Hi3798MV200 恩兔N2 NS-1 (三): 制作 Ubuntu rootfs
- Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs
关于
海纳思全称是海思机顶盒NAS系统, 网站 https://www.ecoo.top/ 看起来和海思没什么关系, 应该是一个纯民间的社区. 他们做的固件在 N2 NS-1 上应该是集成度做的最好的一个, 包含的功能很丰富, 除了常见的 Aria2, Transmission, Samba, 还集成了命令行, 网盘和笔记等. 适合想直接刷机使用, 不喜欢折腾的用户.
界面
外网

内网

刷机说明
- HiNAS 固件下载: https://dl.ecoo.top
- 参考前一篇刷机部分的介绍, 以及 https://www.ecoo.top/hitool.html
使用部分
- 盒子上电, 接网线后, 通过DHCP获得IP, 此时可以通过 SSH 登录, 默认账户为 root / ecoo1234
- 用浏览器访问盒子所在 IP, 会有使用说明和各个功能入口
- 加硬盘后上电, 系统会字段挂载硬盘到 /mnt/sda1 分区
如果加硬盘后未能自带挂载, 通过 dmesg 命令查看日志排查问题.
定制部分
删除web界面的浮窗
有个学开发linux的浮窗比较烦人
编辑 /var/www/html/index.html 找到并删除
<div class="adleft">
<button onclick="">关闭</button>
<a href="https://www.ecoo.top/gonggao.html" target="_blank"><img src="https://www.ecoo.top/hongbao.jpg" width="141px" height="203px" border="1" /></a>
</div>
修改欢迎界面
欢迎界面会清除系统自带的登录输出, 如果想将其融合到系统自带的登录输出中, 可以做如下修改
删除 /etc/profile.d/ 下面的两个文件
在 /etc/update-motd.d/ 目录下, 创建文件 60-welcome, 并将其 chmod +x 设置为可执行
文件内容如下, 如果不合适可以自己改
#!/bin/sh
#
IP=$(ifconfig eth0 | grep '\<inet\>'| grep -v '127.0.0.1' | awk '{print $2}' | awk 'NR==1')
DEVICE=$(dmesg 2> /dev/null | grep "CPU: hi3798" | awk -F ':[ ]' '/CPU/{printf ($2)}')
[ ! "$DEVICE" ] && DEVICE=$(head -n 1 /etc/regname 2> /null)
mac_now=$(ifconfig eth0 |grep "ether"| awk '{print $2}')
echo "\e[33m__ ____ __ / / / / /_ __ ______ / /___ __/ / / / __ \/ / / / __ \/ __/ / / // /_/ / /_/ / /_/ / / / / /_/ /_/ / \____/_.___/\__,_/_/ /_/\__/\__,_/
\e[0mBoard : ${DEVICE}Module : $(egrep -oa "hi3798.+reg" /dev/mmcblk0p1| cut -d '_' -f1 | sort | uniq | tr "\\n" ",")CPU : $(cat -v /proc/device-tree/compatible |sed 's/\^@//g') @$(cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l) Cores | $(uname -p)Version : $(awk -F '[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release) | V$(cat /etc/nasversion)-$(uname -r)-$(getconf LONG_BIT)Storage : $(df -m / | grep -v File | awk '{a=$4*100/$2;b=$4} {printf("%.1f%s %.1fM\n",a,"%",b)}')Memory : $(free -m | grep Mem | awk '{a=$7*100/$2;b=$7} {printf("%.1f%s %.1fM\n",a,"%",b)}') | Swap:$(free -m | grep Swap | awk '{a=$4*100/$2;b=$4} {printf("%.1f%s %.1fM\n",a,"%",b)}')StartAt : $(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=($1%60)} {printf("%d Day %d Hour %d Minute %d Second\n",a,b,c,d)}' /proc/uptime)IP Addr : $IPTemper. : $(grep Tsensor /proc/msp/pm_cpu | awk '{print $4}')°CMAC Add : $mac_now
"alias reload='. /etc/profile'
alias cls='clear'
alias syslog='cat /var/log/syslog'
alias unmount='umount -l'
alias reg="egrep -oa 'hi3798.+' /dev/mmcblk0p1 | awk '{print $1}'"
删除,禁用 swap
在这个小设备上开启swap意义不大, 即使在内存溢出的情况, 也不希望增加eMMC的写入.
编辑 /etc/init.d/system-init.sh
删除或注释掉以下内容
if [ ! -f /swapfile ]
then
{dd if=/dev/zero of=/swapfile bs=1M count=512chmod 600 /swapfilemkswap /swapfileswapon /swapfile
} &
fi
grep -q '/swapfile' /etc/fstab || echo "/swapfile swap swap defaults,nofail 0 0" >> /etc/fstab
编辑 /etc/fstab
删除以下内容
/swapfile swap swap defaults,nofail 0 0
关闭swap
swapoff -a
删除swap文件
rm /swapfile
配置 Aria2
假设硬盘已经挂载到 /mnt/sda1, 所以在配置中, 将路径都配置到 /mnt/sda1 下
修改配置文件 /usr/local/aria2/aria2.conf
dir=/mnt/sda1/downloads
disk-cache=16Minput-file=/mnt/sda1/usr/aria2/aria2.session
save-session=/mnt/sda1/usr/aria2/aria2.sessiondht-file-path=/mnt/sda1/usr/aria2/dht.dat
dht-file-path6=/mnt/sda1/usr/aria2/dht6.dat
需要手动创建一个空文件 /mnt/sda1/usr/aria2/aria2.session, 否则 aria2 会启动失败.
重启 aria2 使其生效
配置 Transmission
配置文件在 /etc/transmission-daemon/settings.json
将下载目录修改为硬盘下的目录
"download-dir": "/mnt/sda1/transmission-downloads",
启用 incomplete 目录
"incomplete-dir": "/mnt/sda1/tmp",
"incomplete-dir-enabled": true,
修改前必须停止 transmission, 否则修改不会生效, 在transmission退出时会被原配置覆盖.
配置 Samba
配置文件在 /etc/samba/smb.conf
增加一个只读的 public 目录, 设为硬盘所在路径, 用于局域网内共享
[public]comment = public anonymous accesspath = /mnt/sda1/browsable =yescreate mask = 0600directory mask = 0700writable = noguest ok = yes
遇到的问题
散热
如果长时间运行, 放底座上竖起来, 如果没有底座, 带条码这面尽量朝上放.
这个盒子设计时, 是假设直立放置在底座上工作的, 所以散热安排在其中带条码标签那面的盖板上, CPU的热量直接传到盖板上的一块金属散热片, 再通过盖板散发出去. 但是实际的使用环境, 很可能就是一个狭小的空间, 并不太可能都有底座. 这时候条码那面如果朝下, 就会导致没法散热. 如果上面还放了硬盘, 就会热上加热. 所以带条码标签的那边不要朝下放置, 除非下方是金属面, 散热很好.
盒子供电能力不足
这是没有意料到的一点. 这个盒子不是所有的2.5寸硬盘都能带起来.
2.5寸SATA机械盘HDD的电流要求一般为0.5A, 盒子带动机械盘没什么问题. 但是对于电流要求在 0.9A 以上的 SSD 固态, 就可能会有问题. 经过测试, 可以带动所有 320G 以下的硬盘, 大部分 500GB 以下的固态, 对于 1TB 以上的固态就不一定, 尤其是电流要求为 1.7A 的镁光系列SSD固态, 无法识别, 无法初始化, 或者即使能初始化, 在读写过程中也很可能报错重置. 测试过的 闪迪ECO 1.92T 可以识别, 工作不稳定, 镁光1100 2T 不识别.
系统负载一直为7.x
这个是内核的问题, 内核中一直存在多个 HI_ 开头的进程, 怀疑与多媒体编解码以及加解密有关. 尚未找到关闭的方法.
相关文章:
Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
目录 Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改Hi3798MV200 恩兔N2 NS-1 (三): 制作 Ubuntu rootfsHi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs 关于 海纳思全称是海思机顶盒NAS系统, 网站 https://www…...
无涯教程-Perl - foreach 语句函数
foreach 循环遍历列表值,并将控制变量(var)依次设置为列表的每个元素- foreach - 语法 Perl编程语言中的 foreach 循环的语法是- foreach var (list) { ... } foreach - 流程图 foreach - 示例 #!/usr/local/bin/perllist(2, 20, 30, 40, 50);# foreach loop ex…...
easyWechat 5.x 复写代码 获取企业微信授权用户敏感信息
复写 (new SocialiteManager($config))->extend(wework, function ($config) {return new \App\Extend\EasyWechat\Work\WeWork($config);});创建的 \App\Extend\EasyWechat\Work\WeWork是我们需要复写的类 <?phpnamespace App\Extend\EasyWechat\Work;use Overtrue\So…...
医疗器械研发中的可用性工程实践(一)
致读者:以前看《楚门的世界》,《蝴蝶效应》,《肖申克的救赎》,《教父》,《横道世之介》,《老友记》,一个人的一生匆匆。作为平凡人就是历史大河中的浪花,顺势而为,起起伏…...
LNMP搭建
LNMP:目前成熟的企业网站的应用模式之一,指的是一套协同工作的系统和相关软件 能够提供静态页面服务,也可以提供动态web服务。 这是一个缩写 L linux系统,操作系统。 N nginx网站服务,也可也理解为前端,…...
软件测试分类总结
目录 1.根据源代码可见度划分 1.1黑盒测试 1.2白盒测试 1.3灰盒测试 2.根据开发阶段划分 2.1单元测试 2.2集成测试 2.3系统测试 2.4验收测试 3.按照实施组织划分 3.1α测试 3.2β测试 3.3第三方测试 4.按照是否运行程序划分 4.1静态测试 4.2动态测试 5.根据软件测试工作的…...
模糊PID(三角隶属度函数模糊化CODESYS ST代码)
三角隶属度函数的详细算法介绍,之前的专栏有详细介绍,这里不再展开讨论。相关文章链接如下: 博途三角隶属度函数FC 博途PLC模糊PID三角隶属度函数指令(含Matlab仿真)_博图模糊pid控制_RXXW_Dor的博客-CSDN博客三角隶属度函数FC,我们采用兼容C99标准的函数返回值写法,在…...
探索人工智能 | 计算机视觉 让计算机打开新灵之窗
前言 计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 文章目录 前言…...
7.物联网操作系统互斥信号量
1.使用互斥信号量解决信号量导致的优先级反转, 2.使用递归互斥信号量解决互斥信号量导致的死锁。 3.高优先级主函数中多次使用同一信号量的使用,使用递归互斥信号量,但要注意每个信号量的使用要对应一个释放 优先级翻转问题 优先级翻转功能需…...
Vue - Element el-form 表单对象多层嵌套校验
针对el-form的数据源是对象嵌套对象,在进行数据绑定和校验时和单层的对象有一点区别, 具体是下面两部分: 数据源: fromData: {name: ,health: {height: } }1、 给 el-form-item 的 prop设为:prop"health.height&…...
elementUI全屏loading的使用(白屏的解决方案)
官网中有使用方法,但是我实际上手之后会出现白屏,解决办法如下: <el-button type"text" size"small" click"delRow(scope)"> 删除</el-button>loading: false, // loading 动画loadingInstance…...
flutter开发实战-flutter_spinkit实现多种风格进度指示器
flutter开发实战-flutter_spinkit实现多种风格进度指示器 最近开发过程中flutter_spinkit,这个拥有多种种风格加载指示器 一、flutter_spinkit 引入flutter_spinkit # 多种风格的模糊进度指示器flutter_spinkit: ^5.1.0效果示例 const spinkit SpinKitRotatingC…...
检测文本是否由AI生成,GPT、文心一言等均能被检测
背景 目前很多机构推出了ChatGPT等AI文本检测工具,但是准确率主打一个模棱两可,基本和抛硬币没啥区别。 先说结论,我们对比了常见的几款AI检测工具,copyleaks检测相比较而言最准确。 检测文本 AI文本片段1 来源:G…...
【3D机甲】捏造型功能
文章目录 1. 模型选择2. 变形和调整3. 材质和纹理4. 部件修改5. 关节和动作6. 物理模拟 3D机甲捏造型功能通常包括以下小功能: 模型选择:通过从库中选择机甲模型或导入自定义模型来开始设计。 变形和调整:调整机甲的大小、比例、旋转和位置&…...
设计模式之五:单例模式
有些对象只需要有一个,比如线程池、缓存和注册表等。 对比全局变量,其需要在程序开始就创建好对象,如果这个对象比较耗资源,而在后面的执行过程中又一直没有用到,就造成了浪费。 class Singleton {private:static Si…...
MATLAB的设置路径
在主页下的 或者在命令行输入path,命令行会出现所有路径 必须要将某些函数.m文件以及一些类文件包含在路径当中,否则在脚本代码中输入代码时,不会有代码提示...
Hyperledger Fabric 使用 CouchDB 和复杂智能合约开发
前言 在上个实验中,我们已经实现了简单智能合约实现及客户端开发,但该实验中智能合约只有基础的增删改查功能,且其中的数据管理功能与传统 MySQL 比相差甚远。本文将在前面实验的基础上,将 Hyperledger Fabric 的默认数据库支持 …...
这应该是最全的,Fiddler手机App抓包详解,看完还不会来找我...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 什么是抓包&#…...
使用ubuntu-base制作根文件系统
1:ubuntu官网下载最小根文件系统: 放置到电脑的ubuntu中, Mkdir Ubuntu_rootfs Cd Ubuntu_rootfs Sudo tar –zxvf Ubuntu-bash-xxxxxx.tar.gz 2:电脑的ubuntu安装qemu搭建arm模拟系统 将/usr/bin/qemu-arm-static/(64位拷贝…...
springboot-mybatis的分页查询的接口
一、安装依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version> </dependency> 二、代码定义 分页对象类 Data AllArgsConstruct…...
QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由
QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目…...
智能体所有权与版权:AI Agent Harness Engineering 创造的作品归谁所有?
1. 标题选项 《AI Agent创作版权迷局破解:从Harness工程原理到所有权划分的完整指南》 《智能体作品归谁?AI Agent Harness Engineering场景下的版权规则深度拆解》 《告别权属纠纷:一文搞懂AI Agent生成内容的所有权、版权与收益分配规则》 《Harness工程视角下的AI创作权:…...
skills CANN开源社区贡献技能包开发指南
前言 开源社区的健康运转,不仅依赖核心代码的贡献,还需要降低贡献门槛、提供清晰的指南和自动化工具。skills仓库是CANN开源社区的"贡献技能包",提供了一系列辅助脚本、代码模板、CI检查和文档生成工具,帮助新手快速上…...
真可用!美团数字人模型开源,MV、电商等统统拿下
美团开源的数字人视频生成框架 LongCat-Video-Avatar 刚刚更新到 1.5 版本。是真能用。这版更新把音频编码器换了,推理步数砍到8步,在770人、13240条主观评分的大规模评测里,雷达图面积全面领先。音频编码器换血,8步出图LongCat-V…...
render_async嵌套渲染:构建复杂异步界面的完整解决方案
render_async嵌套渲染:构建复杂异步界面的完整解决方案 【免费下载链接】render_async render_async lets you include pages asynchronously with AJAX 项目地址: https://gitcode.com/gh_mirrors/re/render_async 在现代Web开发中,页面加载速度…...
别再纠结了!给激光焊接新手讲透单模和多模激光到底怎么选(附M²因子解读)
激光焊接设备选型指南:单模与多模激光的实战抉择 当你第一次站在激光焊接设备采购的十字路口,面对"单模"和"多模"这两个专业术语时,那种迷茫感我深有体会。五年前,我作为产线技术负责人,需要为汽车…...
Python-for-Android 完整指南:5分钟将Python应用打包为Android APK
Python-for-Android 完整指南:5分钟将Python应用打包为Android APK 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android Python-for-Android࿰…...
“--glow”并不存在?!深度逆向Midjourney 6.1源码级辉光模拟协议,曝光官方刻意隐藏的4个隐式辉光增强开关
更多请点击: https://kaifayun.com 第一章:辉光效果的视觉本质与Midjourney 6.1协议悖论 辉光(Glow)并非物理光源的直接投射,而是人眼视网膜对高对比度边缘与饱和色域交界处产生的神经光学响应——一种由局部亮度梯度…...
AVR+ESP8266双核架构打造独立WiFi天气显示器:从硬件设计到软件实现
1. 项目概述:一个独立WiFi天气显示器的诞生几年前,我琢磨着在书桌上放一个能实时显示天气信息的小玩意儿,市面上成品要么功能单一,要么价格不菲,要么数据源依赖复杂的服务器。于是,我决定自己动手ÿ…...
终极空洞骑士模组管理器 Lumafly:跨平台一键安装与智能依赖管理指南
终极空洞骑士模组管理器 Lumafly:跨平台一键安装与智能依赖管理指南 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly Lumafly 是一款基于 Avalonia 框…...
