显示标签为“设备及固件”的博文。显示所有博文

2026年4月18日星期六

Arm设备刷飞牛fnos系统并调整安装到eMMC中的rootfs分区大小,使得小于16GB的设备能自定义预留部分空间做应用储存空间

Arm设备刷飞牛fnos系统并调整安装到eMMC中的rootfs分区大小,使得小于16GB的设备能自定义预留部分空间做应用储存空间

一、刷机流程

1.1刷入第三方安卓底包 如果盒子已经可以正常u盘启动的,可以跳过;

1.2 烧录fnos镜像到U盘,并修改uEnv.txt文件与fnEnv.txt文件中对应的设备DTB文件对应名称;

1.3设备上电启动后,路由器查看飞牛ip ,设置设备名及用户账户和用户密码

1.4在系统设置>SSH>SSH功能  打开功能

二.安装fnos到emmc
2.1 ssh登陆到u盘的fnos 账号密码就是刚刚u盘启动里fnos的设置的账号密码
2.2 切换到root模式,  sudo -i
2.3如果需要修改系统分区大小 修改fnnas-install

编辑命令:sudo vim /usr/sbin/fnnas-install
输入:i 进入编辑模式

原脚本当磁盘可用空间大于 16GiB 时,支持自定义系统根分区大小(默认 16GiB),调整为当磁盘可用空间大于 5GiB 时,支持自定义系统根分区大小(默认 5GiB)

找到这个代码块:
    # Check if the ${fnnas_conf} file exists
    if [[ -f "${fnnas_conf}" ]]; [cite: 28]
    then
        source "${fnnas_conf}"
    else
        # Set root partition size limit (Unit: GiB)
        echo "rootfs_limit_gib=\"16\"" >"${fnnas_conf}" [cite: 28]
        echo "rootfs_resize=\"yes\"" >>"${fnnas_conf}" [cite: 28]
        rootfs_limit_gib="16" [cite: 28]
        rootfs_resize="yes" [cite: 28]
    fi
    # Ensure variables are set
    [[ -n "${rootfs_limit_gib}" ]] || [cite: 29]
rootfs_limit_gib="16" [cite: 29]

用以下方式替换:

    # Check if the ${fnnas_conf} file exists
    if [[ -f "${fnnas_conf}" ]];
    then
        source "${fnnas_conf}"
    else
        # Set root partition size limit (Unit: GiB)
        echo "rootfs_limit_gib=\"5\"" >"${fnnas_conf}"
        echo "rootfs_resize=\"yes\"" >>"${fnnas_conf}"
        rootfs_limit_gib="5"
        rootfs_resize="yes"
    fi
    # Ensure variables are set
    [[ -n "${rootfs_limit_gib}" ]] ||
rootfs_limit_gib="5"

更新交互式菜单文本

在函数中,你需要更新显示给用户的文本,以反映新的5GiB阈值。show_partition_menu()

找到这段代码:

    │    ≥16     │ Enter a number (GiB) to specify Rootfs partition size. 

替换:

    │    ≥5     │ Enter a number (GiB) to specify Rootfs partition size. 

更新输入提示

在函数中,脚本会提示用户输入。这些提示也需要更新以显示新的最低要求。partition_sizing()5

查找代码块::

    echo -ne "${OPTIONS} Please Input ID(1/2/3) or Size(16 ~ ${FREE_SIZE_GiB}): " 

替换

    echo -ne "${OPTIONS} Please Input ID(1/2/3) or Size(5 ~ ${FREE_SIZE_GiB}): "  

查找代码块:

    echo -ne "${OPTIONS} Please Input ID(1/2) or Size(16 ~ ${FREE_SIZE_GiB}): "  

替换:

    echo -ne "${OPTIONS} Please Input ID(1/2) or Size(5 ~ ${FREE_SIZE_GiB}): "  

按键:esc退出编辑模式

输入:wq 保存退出。

2.4 输入安装fnos到emmc命令:fnnas-install

2.5 输入设备模型

2.6 按提示输入 Rootfs partition 分区大小 单位GB

2.7 完成后输入poweroff,拔掉引导盘,并重启设备


设置读写权限,方便使用WinSCP编辑
chmod -R 777 /usr/sbin/fnnas-install
chmod -R 777 /usr/sbin/fnnas-update
恢复权限
chmod -R 777 /usr/sbin/fnnas-install
chmod -R 777 /usr/sbin/fnnas-update




2026年4月1日星期三

arm版飞牛系统(fnnas)系统更新完成重启后依然提示更新(无法完成内核更新)的修复解决办法

arm版飞牛系统(fnnas)系统更新完成重启后依然提示更新(无法完成内核更新)的修复解决办法


修复方法:
检查更新,并等待更新完成,待系统重启后
使用客户端连接SSH
登录 FnNAS 系统 SSH 终端 → 输入命令:
提权:
sudo -i
#安装 u-boot-tools 包
sudo apt update
sudo apt install u-boot-tools -y

打开启动引导目录
cd /boot

Fnos 1.1.20版本修复

手动生成uInitrd-6.12.41-trim
update-initramfs -c -k 6.12.41-trim
复制uInitrd-6.12.41-trim替换uInitrd文件
cp uInitrd-6.12.41-trim uInitrd
复制vmlinuz-6.12.41-trim替换zImage文件
cp vmlinuz-6.12.41-trim zImage
重启系统
reboot

Fnos 1.1.31版本修复

手动生成uInitrd-6.18.18-trim
update-initramfs -c -k 6.18.18-trim
复制uInitrd-6.18.18-trim替换uInitrd文件
cp uInitrd-6.18.18-trim uInitrd
复制vmlinuz-6.18.18-trim替换zImage文件
cp vmlinuz-6.18.18-trim zImage
重启系统
reboot


完成修复。

查看系统信息
uname -a


Linux ZSJX 6.12.41-trim #214 SMP PREEMPT Mon Feb  9 09:24:55 UTC 2026 aarch64 GNU/Linux

注意 :Linux ZSJX 6.12.41-trim  #219  如果比  #214高,可能也会提示更新。

系统更新里也不再提示有-trim 内核更新,至此内核更新问题解决。
资源链接:
提权:
sudo -i 

编辑更新脚本
vim /usr/sbin/fnnas-update
替换源站:https://github.com/ 为加速后的地址:https://gh-proxy.com/https://github.com/ ,https://gh-proxy.com/仅为示例,文件加速网站可自寻可用的地址。
执行更新,确认输入Y
fnnas-update

更新完成后会自动重启系统。

FnNAS 是一款基于最新 Linux 内核(Debian 发行版)深度定制的操作系统。它具备出色的硬件兼容能力,全面支持主流 x86 及 Arm64 设备,支持用户自主组建 NAS 并灵活扩展外部存储。现在,您可以轻松将电视盒子的 Android TV 系统替换为 FnNAS,将其打造为一台功能强大的私有数据存储服务器。

2025年12月19日星期五

自行更换中兴2.5g网口光猫方法

为什么要替换原光猫:

提高下行带宽上限:通常,由运营商提供的光猫均为千兆LAN口,无法胜任大于1000Mbps的家用宽带实际使用需求,而当你办理1000Mbps的家庭宽带后,运营商一般会给不少下行余量的;
减少弱电箱空间占用:运营商光猫体积较大,对于狭小的弱电箱不友好;
去除运营商的运程管控功能:运营商原光猫均带有TR069的远程管理功能;

更换光猫主要经历以下步骤:
通过超级用户帐号和密码进入原光猫后台,获取设备标识码、SN码、MAC地址、LOID码、PASSWORD认证密码等信息。

然后再获取各种WAN连接的参数。主要是PPPOE拨号模式和桥接模式,如果有IPTV,还需要记录一下IPTV模式。 TR069连接不建议记录,这是运营商用来远程监控和修改光猫参数的,有些值友改了桥接模式后又被改回PPPOE模式就是因为TR069连接。

按以下步骤记录PPPOE拨号模式和桥接模式,特别是VLAN ID。

线路协议:确认是GPON, XGPON,目前主流的华为MA5671A和诺基亚的猫棒都只能兼容GPON线路协议(95%的XGPON线路协议兼容GPON,这就是为啥XGPON线路协议也可以用猫棒);

GPON SN: 光猫超管后台可能是设备标识码/号的表述,部分地区光猫注册和认证会需要验证这个参数;

LO ID: 光猫超管后台可能是宽带识别码、逻辑ID等的表述,这个是宽带认证必须的参数;

Password: 移动宽带是通过这个密码认证的,不需要上面的LO ID(仅限移动宽带);

VLAN ID:看网络总览下的有标示02_INTERNET_B_VID_XXX 类似的字段,xxx这个数字就是VLAN ID;

冷知识:一般来来说,一个地区同一家宽带运营商的VLAN ID都是一样的。

转入新光猫选择认证方式,根据地区和运营商确定认证方式,如果不知道就都试一下。一般来说,移动大部分是PASSWROD认证。如果是LOID认证,密码一般是空。我这里(四川移动)是PASSWORD和SN认证(设备标识码)。

冷知识:光纤和光猫是绑定的,但宽带帐号不是绑定的。宽带帐号可以在同一家运营商的任意光猫上登录使用。所有的光猫都要录库才能用,只要把第三方光猫的认证参数改成和已经录库的光猫一样就能用了。

新猫设置

1、务必删除tr069,这样超级密码才不会失效,也不会被乱改设置。

2、改桥接(非必选),取消绑定端口。

3、更改光猫SN(设备标识码)、认证信息。

4、新建WAN网络连接,填入拨号账号和密码。

相关的光猫telnet命令:

查看固件版本

upgradetest getver

明文显示全部参数信息

 setmac show2

如果注册卡百分之40,请用telnet命令劫持ITMS的注册,

由于中兴光猫会劫持ITMS,导致你无法上网,如果无法上网记得设置,重启光猫生效,命令如下

sendcmd 1 DB set PDTCTUSERINFO 0 Status 0

sendcmd 1 DB set PDTCTUSERINFO 0 Result 1

sendcmd 1 DB save

查看当前地区

cat /userconfig/flag_type 

查看所有地区 ,会出现各省的拼音 和代号

/etc/init.d/regioncode    

改地区 upgradetest sdefconf  地区数字

 upgradetest sdefconf 406

如果不能上网,光猫改桥接后电脑拨号 显示 651 691 那就需要改 sn 

修改PON MAC (可选)

setmac 1 32769 xxxxxxxxxxx   

修改lotid: (可选)

setmac 1 2180 05100208848799xx

根据各项参数所对应ID,通过命令进行修改

修改SN码前4位设备品牌代码,GponSN前4位

setmac 1 2176 UMTC

修改SN码后8位设备随机代码,GponSN后8位

setmac 1 2177 080F0Bxx

修改设备标识码横杠前部

setmac 1 768 A3B4xx

修改设备标识码横杠后部

setmac 1 512 UMTC080F0xx

保存设置

sendcmd 1 DB save

—删除Wi-Fi前缀—

sendcmd 1 DB set WLANCfg 0 ESSIDPrefix (设置2.4G的ssid前缀为空)

sendcmd 1 DB set WLANCfg 4 ESSIDPrefix (设置5G的ssid前缀为空)

sendcmd 1 DB save


破解连接数限制

1、输入 sendcmd 1 DB p CltLmt (注意空格和大小写)解释:查看一下当前的用户数量

2、输入 sendcmd 1 DB set CltLmt 8 Max 100 (注意空格和大小写)解释:修改最大用户数为100,原来是4,可以改成其他数目,建议最大数目不超过255

3、输入 sendcmd 1 DB save  (注意空格和大小写)解释:修改保存


补充内容 :

F7015/G7615更新几条命令:

sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0    禁用TR069远程控制

sendcmd 1 DB set FWLevel 0 Level 0     关闭防火墙;

sendcmd 1 DB set FWBase 0 FwConnMaxEnable 0   关闭防火墙并发连接数最大限制

sendcmd 1 DB set FWBase 0 ConntrackMax 65535   改最大并发连接数


—删除电信远程控制—

sendcmd 1 DB p MgtServer (查看一下当前的电信远程控制)

sendcmd 1 DB set MgtServer 0 URL http://127.0.0.1  把服务器 URL 改掉

sendcmd 1 DB set MgtServer 0 Tr069Enable 0 禁用TR069远程控制

sendcmd 1 DB save


看cpu占用率:cat /proc/cpuusage 看温度:cat /proc/tempsensor 

查看系统信息:cat /proc/capability/boardinfo


2024年1月21日星期日

鲸鱼盒子安装armbian系统记录

 1.下载armbian镜像(有5.15、6.1、6.6版本linux内核可选)

https://github.com/ophub/amlogic-s9xxx-armbian/releases

s905x3,选择选x88pro版本对应的系统,如Armbian_xx.x.x_amlogic_s905x3-x88-pro-x3_xxxxxxxx_x.x.xx_server_202x.xx.xx.img.gz。

2.镜像写入U盘

使用USB Image Tool把下载回来并解压缩的img镜像写入U盘(Restore),该步骤会清空U盘内容,请注意。

其他类似专们写镜像的工具都可以用。

更改 uEnv.txt,dtb指向/dtb/amlogic/meson-sm1-x96-max-plus.dtb

使用TF卡引导或把U盘插到蓝色3.0接口那个U口按住鲸鱼头背面那个圆点(用曲别针或牙签戳住),上电,再松开。

盒子启动后,重启后MAC可能会发生改变,可使用ping 盒子ip -t 命令跟踪启动情况

启动后使用Putty以ssh方式登录终端,初始内置账户root、密码1234。

3.把armbian写入到鲸鱼盒子主板的emmc里使用 armbian-install 命令,模型选择525 对应whale。

4.写入完成后执行 poweroff 关闭电源后拔出TF卡重新上电。

5.LED灯控制。

whale.conf,序号23: 678294e

直接同步脚本即可使用:

# 先同步脚本

armbian-sync

# 在终端执行以下命令启用 openvfd 服务,小鲸鱼盒子是23

sed -i 's|^#*openvfd_enable=.*|openvfd_enable="yes"|g' /etc/custom_service/start_service.sh

sed -i 's|^#*openvfd_boxid=.*|openvfd_boxid="23"|g' /etc/custom_service/start_service.sh

# 重启

sync && reboot


更新 Armbian 内核

#执行命令后将更新为最新版本。

armbian-update

脚本文件路径

/usr/sbin/armbian-update



-----------------------------------------------------------------------------------------


以下为过期方法,可参考,但由于镜像文件变更,不一定能成功。

 1.下载armbian镜像(有5.15、6.1、6.6版本linux内核可选)

https://github.com/ophub/amlogic-s9xxx-armbian/releases

s905x3,选择选x88pro版本对应的系统,如Armbian_xx.x.x_amlogic_s905x3-x88-pro-x3_xxxxxxxx_x.x.xx_server_202x.xx.xx.img.gz。

2.镜像写入U盘

使用USB Image Tool把下载回来并解压缩的img镜像写入U盘(Restore),该步骤会清空U盘内容,请注意。

其他类似专们写镜像的工具都可以用,我是习惯用USB Image Tool了。

下载专用dtb(登录后可下载)蓝奏云 解压并重命名dtb文件为 meson-sm1-x96-max-plus.dtb ,

替换原路径/dtb/amlogic/meson-sm1-x96-max-plus.dtb文件

更改 uEnv.txt,指向该 dtb

把U盘插到蓝色3.0接口那个U口或使用TF卡引导,按住鲸鱼头背面那个圆点(用曲别针或牙签戳住),上电,再松开。

盒子启动后,重启后MAC可能会发生改变,使用ping 盒子ip -t 命令 跟踪启动情况

使用Putty以ssh方式登录终端,初始内置账户root、密码1234。

3.把armbian写入到鲸鱼盒子主板的emmc里

主要参考:https://www.right.com.cn/forum/thread-8289728-1-1.html

6.x.x以上内核,使用 armbian-install -m yes -a yes

据说5.15内核用armbian-install即可。6以上版本该命令安装后黑屏。

需要选择机型,不知道选哪个好,输入502(对应X96-Max+_1GB meson-sm1-x96-max-plus.dtb) ♦️ (dtb 可用meson-sm1-x88-pro-x3.dtb 但模型只能选502 X96-Max+_1GB,否则会覆写系统引导分区)

安装后请用poweroff关机,拔掉U盘,拔掉电源,再连接电源开机。

开机后IP会改变,注意分辨。

开机后用内置账户root、1234登录。

4.配置无线

配置wifi,用armbian-config命令,连接好wifi(有线网络似乎不能直接使用,懒得改)

5.安装软件

增加一个普通用户adduser 用户名,会要求输入密码。

之后使用armbian-software就能看到很多可用的安装包

我想体验桌面环境,就输入201进行安装。

安装后问要不要中文支持,当然要了。

然后问需要哪个用户来登录桌面,就输入之前新增的普通用户名。

按提示重启,就可以看到GUI界面了。

体验一下,感觉还可以,显示驱动有点问题,光标、界面有时候会闪。

还是command line比较实用,小马没法拉大车,图形界面下4G内存用近3G,发热还可以,空载50度左右。

之后还可以apt-get update升级软件包。

也可以进入图形化软件商店下一些特定软件。

已知问题:因为型号不对应,所以网卡不启动(可硬改)、蓝牙不驱动、前面板不显示……




参考:

安装homeassistant https://blog.csdn.net/weixin_53928448/article/details/127202419

增加用户https://blog.csdn.net/u013541325/article/details/128521356

刷机https://www.bilibili.com/read/cv26496453/

前面板相关https://www.znds.com/tv-1233520-1-1.html

封面图自己懒得拍,为互联网搜索得到,感谢!

https://blog.csdn.net/qq_36005253/article/details/130562874

可以从U盘启动armbian但不能写入emmc(以江苏移动E900V22D为例) 编译与反编译DTB

1.安装依赖
sudo apt-get update
sudo apt-get install -y device-tree-compiler

2.反编译命令(使用 dtb 文件生成 dts 源码)
cd /boot/dtb/amlogic/
dtc -I dtb -O dts -o meson-g12a-s905l3a-e900v22c.dts meson-g12a-s905l3a-e900v22c.dtb

3.打开转换成功的meson-g12a-s905l3a-e900v22c.dts搜索max-frequency找到mmc开头的把默认值改为0x5f5e100

注:位于 mmc@ffe07000 { 段下

4.编译命令(使用 dts 编译生成 dtb 文件)
dtc -I dts -O dtb -o meson-g12a-s905l3a-e900v22c.dtb meson-g12a-s905l3a-e900v22c.dts

5.写入emmc
armbian-install -a yes


2024年1月9日星期二

Tailscale容器使用方法

在容器中设置 Tailscale

镜像链接:

docker pull tailscale/tailscale:stable

快速创建并运行容器:

docker run -d --name=tailscaled -v /usr/local/app/tailscale:/var/lib/tailscale -v /dev/net/tun:/dev/net/tun --network=host --cap-add=NET_ADMIN --cap-add=NET_RAW tailscale/tailscale

( 若要支持长期服务,其中容器在重启时保留其设置和标识,需要执行以下几项操作: 必须为容器提供持久性存储,例如-v /var/lib/tailscale:/var/lib/tailscale 将 TS_STATE_DIR 设置为持久性存储的挂载位置,例如-e TS_STATE_DIR=/var/lib/tailscale )

设置Tailscale节点作为流量出口使用
声明advertise-exit-node,意思是节点可以作为流量出口使用。

tailscale up --advertise-exit-node --accept-dns=false

设置Tailscale作为子网路由器
设定安装了 TailScale 服务的设备充当子路由(Subnet Route),其他所有的外网的 TailScale 装置都可以透过此安装了 TailScale 服务作为网关访问家里内网所有的设备。
执行以下命令(注意替换自己的内网网段)

tailscale up --advertise-routes=192.168.0.0/24
或
tailscale up --advertise-routes=192.168.0.0/24 --accept-dns=false --advertise-exit-node

参考资料:
ailscale:基于 WireGuard 异地组建虚拟局域网

在 Linux 上设置 Tailscale

Tailscale 适用于各种 Linux 发行版。通常,您可以在 Linux 机器上安装 Tailscale 使用一个命令:

curl -fsSL https://tailscale.com/install.sh | sh

执行后等待Tailscale安装完成:
将计算机连接到 Tailscale 网络并在浏览器中进行身份验证:

sudo tailscale up

复制登录链接到浏览器完成登录验证:
你已连接!您可以通过运行以下命令找到 Tailscale IPv4 地址:

tailscale ip -4

如果添加的设备是服务器或远程访问的设备,则可能需要考虑禁用密钥过期,以防止需要定期重新进行身份验证。
设置Tailscale自动更新:

tailscale set --auto-update

设置Tailscale作为流量中继节点

前序准备,启用IP转发:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf

设置Tailscale作为出口节点:

tailscale up --advertise-exit-node --accept-dns=false

设置Tailscale作为子网路由器

播发子网路由:

tailscale up --advertise-routes=192.168.111.0/24 --accept-dns=false --accept-routes=true --advertise-exit-node

Tailscale子网路由器设置恢复:

tailscale up --reset