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[0m
Board : ${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 : $IP
Temper. : $(grep Tsensor /proc/msp/pm_cpu | awk '{print $4}')°C
MAC 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=512
chmod 600 /swapfile
mkswap /swapfile
swapon /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=16M
input-file=/mnt/sda1/usr/aria2/aria2.session
save-session=/mnt/sda1/usr/aria2/aria2.session
dht-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 access
path = /mnt/sda1/
browsable =yes
create mask = 0600
directory mask = 0700
writable = no
guest ok = yes
遇到的问题
盒子供电能力不足
2.5寸SATA机械盘HDD的电流要求一般为0.5A, 盒子带动机械盘没什么问题. 但是对于电流要求普遍在 0.9A 以上的 SSD 固态, 就可能会有问题. 经过测试, 可以带动绝大部分 500GB 以下的固态, 对于 1TB 以上的固态, 尤其是电流要求为 1.7A 的镁光系列SSD固态, 无法识别, 无法初始化, 或者即使能初始化, 在读写过程中也很可能报错重置. 测试过 闪迪ECO 1.92T 可以识别, 工作不稳定, 镁光1100 2T 不识别.
系统负载一直为7.x
这个是内核的问题, 内核中一直存在多个 HI_ 开头的进程, 怀疑与多媒体编解码以及加解密有关. 尚未找到关闭的方法.
Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改的更多相关文章
- 【bzoj5173】[Jsoi2014]矩形并 扫描线+二维树状数组区间修改区间查询
题目描述 JYY有N个平面坐标系中的矩形.每一个矩形的底边都平行于X轴,侧边平行于Y轴.第i个矩形的左下角坐标为(Xi,Yi),底边长为Ai,侧边长为Bi.现在JYY打算从这N个矩形中,随机选出两个不 ...
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...
- 【bzoj3132】上帝造题的七分钟 二维树状数组区间修改区间查询
题目描述 “第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a,b),右下角为(c,d)的一个矩形区域内的全部数字加上一个值的操作. ...
- Lua中对自定义二维表进行添加、修改、计算、删除、判断是否存在操作
引言: 最近刚稍微深入了解一下Lua,正好最近需要用到Lua中对表的操作,于是借助现有的了解实现了对一个简单的二维表进行添加.修改.计算.删除及判断存在的操作 表的创建及相关方法: 1. 创建表及自定 ...
- 吴恩达机器学习笔记(二) —— Logistic回归
主要内容: 一.回归与分类 二.Logistic模型即sigmoid function 三.decision boundary 决策边界 四.cost function 代价函数 五.梯度下降 六.自 ...
- TFS二次开发系列:四、TFS二次开发WorkItem添加和修改、保存
WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1.首先获得某服务器的WorkItemStore. WorkIte ...
- 攻城狮在路上(叁)Linux(二十三)--- linux磁盘参数修改(设备代码、设备名)
一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hd ...
- linux4.10.8 内核移植(二)---初步裁剪、分区修改和文件系统
一.初步裁剪 在内核根目录下 执行: make menuconfig 1.1 system type裁剪 选择 SAMSUNG S3C24XX SoCs Support 进入其中,这里是配置我们的单板 ...
- WPS长文档编辑技巧之二:对样式的设置与修改
目录: 1.使用系统内置样式 2.如何修改样式 3.如何自定义样式 4.在文档使用多级编号 5.结合样式编辑文档大纲 6.利用文档结构图查看大纲结构 正文: 1.使用系统内置样式 在使用样 ...
- POJ2155 Matrix(二维树状数组||区间修改单点查询)
Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row an ...
随机推荐
- 5分钟实现调用ChatGPT接口API实现多轮问答
5分钟实现调用ChatGPT接口API完成多轮问答 最近ChatGPT也是火爆异常啊,在亲自使用了几个月之后,我发现这东西是真的好用,实实在在地提高了生产力.那么对于开发人员来说,有时候可能需要在自己 ...
- 联想win8改win7
知识点分析:目前联想出厂预装Windows 8的台式和一体机使用都是UEFI+GPT硬盘的组合,并且开启了安全启动,但是目前除Window 8以外的其他Windows系统均不支持这种模式,因此如果需要 ...
- 2022-09-12:以下go语言代码输出什么?A:true;B:false;C:无法编译;D:运行时 panic。 package main func main() { var x chan<-
2022-09-12:以下go语言代码输出什么?A:true:B:false:C:无法编译:D:运行时 panic. package main func main() { var x chan< ...
- Element-DatePicker的宽度
Element如何修改DatePicker的宽度 方法/步骤 1 打开一个vue文件,添加DatePicker日期选择器组件,设置默认日期为null.如图 2 在组件上添加style样式属性,设置wi ...
- vue之关闭eslint及vue/require-v-for-key 、vue/no-unsed-vars报错解决方法
报错:Page1组件已经注册但是没有被使用. vue/no-unused-components 如果报错以下: 解决方法: 首先打开项目中的package,json 找到eslint-config ...
- MMCM/PLL VCO
输入输出时钟频率,input 322.265625Mhz, output 312.5Mhz 对于使用MMCM与PLL的不同情况,虽然输入输出频率是一样的,但是,分/倍频系数是不同的,不能使用同一套参数 ...
- 小程序使用echarts 在一个页面打印多个饼图的坑
一.下载echarts微信版 下载地址:https://github.com/ecomfe/echarts-for-weixin 或者直接云盘下载 https://pan.baidu.com/s/1i ...
- nc工具利用
c: 瑞士军刀/网络测评工具 将本地的cmd 权限移交到外网 nc工具:应用 本地cmd打开, 输入 nc -e cmd 远程ip 5577 #连接到远程ip的5577 远程cmd打 ...
- [MAUI]模仿Chrome下拉标签页的交互实现
@ 目录 创建粘滞效果的圆控件 贝塞尔曲线绘制圆 创建控件 创建形变 可控形变 形变边界 形变动画 创建手势控件 创建页面布局 更新拖拽物位置 其它细节 项目地址 今天来说说怎样在.NET MAUI中 ...
- C++程序开发技巧
引言 类(class)的使用分为两种--基于对象(object Based)和面向对象(object oriented) 基于对象是指,程序设计中单一的类,和其他类没有任何关系 单一的类又分为:不带指 ...