光猫折腾指南三

By | 2026-08-03

来源已经标注,我仅仅进行整理,可能部分型号方法已经失效,但依然可供参考。

华为企业光猫 B610、B650、B850 技术文档

来源: 菜鸟编程论坛
作者: piaoxue888
发布日期: 2023-03-25
浏览量: 4451


一、介绍

华为在 B850 支持三种线路模式:

  • 10G EPON - EPON 的万兆版
  • XG-PON - GPON 的万兆版
  • XGS-PON - 对称万兆 PON

注:10G EPON 和 XG-PON 是同级别的。


二、补全命令、开启 Telnet、修改 PON 模式、更改界面、修改 MAC/SN 等

1. 开启 Telnet

方法一:使用华为 ONT 组播版本配置工具(V300R13C10SPC800)

访问地址:http://192.168.1.1:8080

常用管理员账户:

运营商 用户名 密码
电信 telecomadmin nE7jA%5m
移动 CMCCAdmin aDm8H%MdA
联通 CUAdmin CUAdmin

操作步骤

高级 → 安全 → 广域网访问设置 → ONT 访问控制配置 → LAN 服务
→ 使能 LAN 侧 PC 通过 TELNET 访问设备,勾选开启 telnet

或:

高级 → 安全 → 设备访问精确控制配置 → 新建
优先级:100
端口名称:所有
应用:勾上 TELNET
点击应用

方法二:华为 ONT 使能工具 2.0

首先 v5 使能,然后升级 allshell.bin

方法三:华为 ONT 组播版本配置工具(V300R13C10SPC800)

维修使能可以直接补全个别型号 V3R020C02S100,选择 v3 使能就可以直接补全了。


2. 补全命令

telnet 192.168.1.1
root
adminHW
su
shell
?
exit
getcustominfo.sh    # shell 命令是被禁止的,需要补全

刷入补全固件:

load pack by tftp svrip 192.168.1.2 remotefile allshell.bin

说明:allshell.bin 是个合成的刷机文件,作用就是在/mnt/jffs2/目录下创建 hw_hardinfo_feature 这个解禁文件,可以用 HWFW_GUI 程序查看编辑内容。它的组件只有两部分:SIGNINFO、SIGNATURE,SIGNINFO 是从 hs8145x6 固件中提取出来的。

补全后的特征:

补全后,会增加 /mnt/jffs2/hw_hardinfo_feature 文件,它解禁了 shell 命令:

feature.name = "HW_SSMP_FEATURE_CLI_CHINA_MODE"
feature.enable="1"
feature.attribute="1"

测试是否补全:

ls              # 测试是否补全命令
display deviceinfo    # 测试

3. 修改 PON 模式

telnet 192.168.1.1
root
adminHW 或 admin 或 Hw8@cMcc
su
shell
cd mnt/jffs2/
cp -p hw_boardinfo hw_boardinfo_`date '+%Y%m%d%H%M%S'`    # 备份
tftp 192.168.1.3 -pl hw_boardinfo      # 把 hw_boardinfo 保存到 pc 上进行修改,高版本要用 Dollar2 工具加解密处理
tftp 192.168.1.3 -gr hw_boardinfo      # 修改好的传回光猫覆盖
cp -f hw_boardinfo hw_boardinfo.bak
touch /mnt/jffs2/Equip.sh              # 开启 root 权限,解决 tftp 命令无权限情况,但会上不了网打不开网页
reboot
rm /mnt/jffs2/Equip.sh                 # 关闭 root 权限,恢复上网和开启网页
reboot

修改 hw_boardinfo 配置文件:

GPON B+

obj.id = "0x00000001" ;; obj.value = "1";
obj.id = "0x0000001d" ;; obj.value = "1";
obj.id = "0x00000059" ;; obj.value = "1";

GPON C+

obj.id = "0x00000001" ;; obj.value = "1";
obj.id = "0x0000001d" ;; obj.value = "2";
obj.id = "0x00000059" ;; obj.value = "1";

EPON

obj.id = "0x00000001" ;; obj.value = "2";
obj.id = "0x0000001d" ;; obj.value = "1";
obj.id = "0x00000059" ;; obj.value = "2";

10G E-PON

obj.id = "0x00000001" ;; obj.value = "6";
obj.id = "0x0000001d" ;; obj.value = "3";
obj.id = "0x00000059" ;; obj.value = "6";

10G XG-PON

obj.id = "0x00000001" ;; obj.value = "5";
obj.id = "0x0000001d" ;; obj.value = "5";
obj.id = "0x00000059" ;; obj.value = "5";

10G XGS-PON

obj.id = "0x00000001" ;; obj.value = "10";
obj.id = "0x0000001d" ;; obj.value = "7";
obj.id = "0x00000059" ;; obj.value = "10";

4. 更改界面

⚠️ 警告:restorehwmode.sh 会删除预设的厂家界面,不要用它恢复界面!

华为蓝色界面

IP: 192.168.100.1
账户:telecomadmin
密码:admintelecom
无线:WirelessNET
WiFi 密码:eeeeeeee

配置文件:

obj.id = "0x0000001a" ;; obj.value = "COMMON";
obj.id = "0x0000001b" ;; obj.value = "COMMON";
obj.id = "0x00000031" ;; obj.value = "NOCHOOSE";

华为红色界面

obj.id = "0x0000001a" ;; obj.value = "COMMON";
obj.id = "0x0000001b" ;; obj.value = "GZCMCC";
obj.id = "0x00000031" ;; obj.value = "NOCHOOSE";

电信界面

obj.id = "0x0000001a" = "E8C";
obj.id = "0x0000001b" = "BJCT";    # 默认北京电信(省份名称缩写的大写字母 +CT)
obj.id = "0x00000031" = "CHOOSE_XINAN";

联通界面

"0x0000001a" = "COMMON";
"0x0000001b" = "SHCU";     # 默认上海联通(省份名称缩写的大写字母 +CU)
"0x00000031" = "CHOOSE_UNICOM2"

移动界面

"0x0000001a" = "CMCC";
"0x0000001b" = "CMCC_RMS"
"0x00000031" = "CHOOSE_CMCC_RMS";

天津移动界面

"0x0000001a" = "CMCC";
"0x0000001b" = "TJCMCC_RMS"
"0x00000031" = "CHOOSE_CMCC_RMS";

5. 修改 MAC/SN

参考文件:/etc/wap/hw_boardinfo_readme.txt

#define HW_DM_PD_PON_MODE_OBJ_ID        (0x00000001)    /* 上行口模式 */    // PON 模式
#define HW_DM_PD_SN_OBJ_ID              (0x00000002)    /* PON SN */         // SN
#define HW_DM_PD_SN_PASSWORD_OBJ_ID     (0x00000003)    /* GPON Password */
#define HW_DM_PD_SN_HEX_PASSWORD_OBJ_ID (0x00000004)    /* GPON Password HEX */
#define HW_DM_PD_EPON_KEY_OBJ_ID        (0x00000005)    /* EPON Key */
#define HW_DM_PD_EPON_PWD_OBJ_ID        (0x00000006)    /* EPON pwd */
#define HW_DM_PD_BOARD_ITEM_OBJ_ID      (0x00000007)    /* 单板条码 */
#define HW_DM_PD_MACHINE_ITEM_OBJ_ID    (0x00000008)    /* 整机条码 */
#define HW_DM_PD_OPTIC_ITEM_OBJ_ID      (0x00000009)    /* 光模块条码 */
#define HW_DM_PD_LAN_MAC_OBJ_ID         (0x0000000a)    /* LAN MAC */        // 改成你老猫的 MAC
#define HW_DM_PD_WLAN_MAC_OBJ_ID        (0x0000000b)    /* WLAN MAC */
#define HW_DM_PD_WAN_1_MAC_OBJ_ID       (0x0000000c)    /* WAN1 MAC */
#define HW_DM_PD_WAN_2_MAC_OBJ_ID       (0x0000000d)    /* WAN2 MAC */
#define HW_DM_PD_WAN_3_MAC_OBJ_ID       (0x0000000e)    /* WAN3 MAC */
#define HW_DM_PD_WAN_4_MAC_OBJ_ID       (0x0000000f)    /* WAN4 MAC */
#define HW_DM_PD_WAN_5_MAC_OBJ_ID       (0x00000010)    /* WAN5 MAC */
#define HW_DM_PD_WAN_6_MAC_OBJ_ID       (0x00000011)    /* WAN6 MAC */
#define HW_DM_PD_WAN_7_MAC_OBJ_ID       (0x00000012)    /* WAN7 MAC */
#define HW_DM_PD_WAN_8_MAC_OBJ_ID       (0x00000013)    /* WAN8 MAC */
#define HW_DM_PD_LOID_OBJ_ID            (0x00000016)    /* GPON/EPON LOID */
#define HW_DM_PD_LOID_PASSWORD_OBJ_ID   (0x00000017)    /* GPON/EPON LOID Password */
#define HW_DM_PD_CHIP_INFO_OBJ_ID       (0x00000018)    /* 非关键芯片信息 */
#define HW_DM_PD_E8C_SN_OBJ_ID          (0x00000019)    /* 中国电信 SN */
#define HW_DM_PD_BIN_WORD_OBJ_ID        (0x0000001a)    /* 程序定制特征字 */
#define HW_DM_PD_CFG_WORD_OBJ_ID        (0x0000001b)    /* 配置定制特征字 */
#define HW_DM_PD_OPTIC_MODE_CAP_OBJ_ID  (0x0000001c)    /* 光模块能力 */
#define HW_DM_PD_OPTIC_CLASS_OBJ_ID     (0x0000001d)    /* 光模块 CLASS */
#define HW_DM_PD_OPTIC_MONITOR_CAP_OBJ_ID (0x0000001e) /* 光模块监控能力 */
#define HW_DM_PD_OPTIC_WDM_CAP_OBJ_ID   (0x0000001f)    /* 光模块是否支持 WDM */
#define HW_DM_PD_PROVISION_CODE_OBJ_ID  (0x00000020)    /* PROVISION CODE */
#define HW_DM_PD_PTC_FLAG_OBJ_ID        (0x00000021)    /* PTC FLAG */

三、问题解决

1. 解决 O3 错误

  • 密码留空
  • SN 设置为 4857544339F084A6

2. 解决 O5 错误

桥接路由拨号上网正常,光猫路由不正常,可视同为卡 40%,需要修改 hw_ctree.xml

解密、修改 myconfig.xml

cp hw_ctree.xml myconfig.xml.gz
aescrypt2 1 myconfig.xml.gz tmp
gzip -d myconfig.xml.gz
vi myconfig.xml

加密,覆盖 hw_ctree.xml

gzip -f myconfig.xml
aescrypt2 0 myconfig.xml.gz tmp
cp -f myconfig.xml.gz hw_ctree.xml

修改内容:

<X_HW_UserInfo UserName="" UserId="" Status="0" Limit="10" Times="0" Result="1" X_HW_InformStatus="0" X_HW_AcsCnnctSatus="0"/>

四、光猫状态知识

初始状态 Initial-state(O1)

该状态的光猫 ONU 刚刚上电,仍处于 LOS/LOF。一旦接收到下行流,LOS 和 LOF 消除,ONU 就转移到待机状态(O2)。

待机状态 Standby-state(O2)

该状态的 ONU 已经接收到下行流,在等待接收网络参数。当 ONU 接收到 Upstream_Overhead 消息后根据这些网络参数进行相关配置(如:定界符、功率模式、预置的均衡时延)并转移到序列号状态(O3)。

序列号状态 Serial-Number-state(O3)

OLT 给所有处于该状态的 ONU 发送 Serial-Number Request 消息,以发现新的 ONU 以及他们的序列号。当 OLT 发现了新的 ONU 后,ONU 就等待 OLT 给它指配 ONU-ID。OLT 通过 Assign_ONU-ID 消息来指配 ONU-ID。ONU 获得 ONU-ID 后就转移到测距状态(O4)。

测距状态 Ranging-state(O4)

不同的 CATV ONU 发送信号到达 OLT 时应保持同步,为此每个 ONU 需要一个均衡时延,该参数是在测距状态中测得的。ONU 接收到 Ranging_Time 消息后转移到运行状态(O5)。

运行状态 Operation-state(O5)

处于该状态的 ONU 可以在 OLT 的控制下发送上行数据以及 PLOAM 消息,该状态中的 ONU 也可根据需求建立其他连接。当测距成功后,所有的 ONU 都依据各自的均衡时延发送信号,以保持上行帧的同步。不同 ONU 发送的信号将分别到达 OLT 设备,但每个信号会正好出现在上行帧中它应该出现的位置上。

暂停运行中的 ONU:在正常运行时,OLT 可能使 ONU 暂停发送信号以获得其它 ONU 的序列号或对其它 ONU 进行测距。OLT 持续一段时间停止对所有上行带宽的授权,ONU 按照正常的方式工作,由于没有接收到授权就不会发送信号,从而产生一个安静时段,这样 OLT 就使得所有 ONU 暂停发送信号。

POPUP 状态 POPUP-state(O6)

当处于运行状态(O5)的 ONU 检测到 LOS 或 LOF 时就进入到该状态。在该状态中 ONU 立即停止发送信号,这样 OLT 将检测到该 ONU 的 LOS 告警。当 ODN 光纤中断时,许多 ONU 都会进入到该状态,从网络可靠性考虑,此时应采用以下方式之一:

  • 如果启用了保护倒换,所有的 ONU 将倒换到备用光纤上。这时所有 ONU 将重新进行测距,为此 OLT 发送 Broadcast POPUP 消息通知所有 ONU 进入到测距状态(O4)。
  • 如果没有保护倒换但 ONU 具有内部保护能力,OLT 发送 Directed POPUP 消息通知 ONU 进入运行状态(O5)。当 ONU 进入到 O5 状态时,OLT 需要先对该 ONU 进行检测,之后再恢复该 ONU 的业务。
  • 如果 ONU 没有从 LOS 或 LOF 中恢复过来,ONU 就不会收到 Broadcast POPUP 消息或 Directed POPUP 消息,经过 TO2 时间后 ONU 进入初始状态(O1)。

紧急停止状态 Emergency-Stop-state(O7)

当 ONU 接收到的 Disable_Serial_Number 消息带有”Disable”选项时,ONU 就进入到紧急停止状态(O7)并关闭激光器。在 O7 状态下,ONU 被禁止发送信号。如果 ONU 没有成功进入到 O7 状态,并且 OLT 仍能继续接收到 ONU 发送的信号,OLT 将产生 Dfi 告警。当 ONU 的故障排除后,OLT 发送带有”Enable”选项的 Disable_Serial_Number 消息,从而激活该 ONU。ONU 接收到消息后进入待机状态(O2),所有的参数(包括序列号和 ONU-ID)将被重新检查。


五、附录:补充技术内容

查看、备份光猫上的各分区

cat /proc/mtd    # 查看分区

输出示例:

dev:    size   erasesize  name
mtd0:  00100000 00020000  "bootcode"
mtd1:  0ffffff0 00020000  "ubilayer_v5"
mtd2:  0001f000 0001f000  "flash configA"
mtd3:  0001f000 0001f000  "flash configB"
mtd4:  0001f000 0001f000  "slave paramA"
mtd5:  0001f000 0001f000  "slave paramB"
mtd6:  030ec000 0001f000  "allsystemA"
mtd7:  030ec000 0001f000  "allsystemB"
mtd8:  00117000 0001f000  "keyfile"
mtd9:  0103a000 0001f000  "frameworkA"
mtd10: 0103a000 0001f000  "frameworkB"
mtd11: 0001f000 0001f000  "wifi_paramA"
mtd12: 0001f000 0001f000  "wifi paramB"
mtd13: 00a0d000 0001f000  "file system"
mtd14: 06064000 0001f000  "apps"

备份分区:

dd if=/dev/mtd0 of=/dev/shm/0.bin    # 备份分区 mtd0
dd if=/dev/mtd0 of=/mnt/usb/USB_disc1/0.bin    # 备份分区 mtd0 到 usb 上
dd if=/dev/mtd1 of=/dev/shm/1.bin    # 备份分区 mtd1
dd if=/dev/mtd2 of=/dev/shm/2.bin    # 备份分区 mtd2

传输到 PC:

cd /dev/shm
tftp 192.168.1.3 -pl 0.bin    # 备份到 pc
rm -rf /dev/shm/*.bin    # 删除光猫上备份

完整 shell 功能代码

feature.name = "HW_SSMP_FEATURE_CLI_CHINA_MODE" feature.enable="1" feature.attribute="1"
feature.name = "FT_FIRMWARE_UPGRADE_PAGE" feature.enable="1" feature.attribute="1"
feature.name = "FT_PON_UPPORT_CONFIG" feature.enable="1" feature.attribute="1"

华为 B850 5E4P 模式切换

set support mode 10    # 切换对称 XGS 模式
set support mode 5     # 切换对称 XG 模式
set support mode 6     # 切非对称 10E 非对称
set support mode 7     # 切换对称 10E 模式
display productmac     # 查看 MAC
set productmac mac XX:XX:XX:XX:XX:XX    # 改 MAC

Telnet 登录:

telnet 192.168.100.1
root
admin123
su

HN8145X6(九州)安徽电信配置

LOID: 340558XP52326
宽带账户:055893492505
VLAN: 41

华为界面登录:

192.168.100.1
telnet root adminHW

电信界面登录:

192.168.100.1
telnet root admin

注意:hw_ctree.xml 在 telnet 下没有权限不能写入,可通过配置文件备份,修改,恢复。lan 口是灰色的,在华为界面下把 lan 口二/三层交换都勾选。


常用命令汇总

详见原帖第 8 楼,包含完整的 shell 命令列表,包括:

  • display 系列命令
  • set 系列命令
  • debug 系列命令
  • backup/load 系列命令
  • wifi 管理命令
  • voip 相关命令
  • 等等…

参考资料

  1. ChinaDSL 论坛讨论 1
  2. ChinaDSL 论坛讨论 2
  3. ChinaDSL 论坛讨论 3

免责声明

本文档仅供学习交流使用,请勿用于非法用途。操作有风险,请自行承担责任。