银河麒麟v10部署工业网关需五步:一、安装libmodbus库并验证;二、配置systemd托管modbus网关服务;三、放行防火墙502端口;四、加载串口驱动并配置rs485参数;五、通过wine运行图形化配置工具完成ip与寄存器映射。

如果您在银河麒麟V10操作系统上部署工业网关,但Modbus设备无法正常通信,则可能是系统未启用Modbus协议栈支持或网关服务未正确配置。以下是开启Modbus协议支持并完成银河麒麟工业网关基础配置的多种可行方法:
一、安装并启用libmodbus运行时库
银河麒麟V10基于Linux内核,原生不内置Modbus协议实现;需通过标准C语言通信库libmodbus提供RTU/TCP底层支持,为上位机或网关进程提供API调用能力。
1、打开终端,以root权限执行更新源命令:sudo apt update
2、安装libmodbus-dev及运行时库:sudo apt install libmodbus-dev libmodbus5
3、验证库文件是否就绪:ldconfig -p | grep modbus,应返回libmodbus.so.5版本信息
4、若系统为ARM64架构(如飞腾D2000平台),需确认已安装对应架构包,否则手动编译源码:wget https://github.com/stephane/libmodbus/archive/refs/tags/v3.1.10.tar.gz && tar -xzf v3.1.10.tar.gz && cd libmodbus-3.1.10 && ./configure --host=aarch64-linux-gnu && make && sudo make install
二、配置systemd托管的Modbus网关服务
多数国产工业网关(如物通博联、研华EKI系列)在麒麟V10上以守护进程方式运行,需通过systemd统一管理其启动、日志与依赖关系,确保Modbus TCP监听端口(默认502)可被外部PLC访问。
1、将网关主程序(如modbus-gateway-daemon)拷贝至/usr/local/bin/目录,并添加可执行权限:sudo chmod +x /usr/local/bin/modbus-gateway-daemon
2、创建systemd服务单元文件:sudo nano /etc/systemd/system/modbus-gateway.service
3、写入以下内容(适配实际路径与用户):[Unit]\nDescription=Modbus Gateway Service\nAfter=network.target\n\n[Service]\nType=simple\nUser=kylin\nExecStart=/usr/local/bin/modbus-gateway-daemon -c /etc/modbus/config.json\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target
4、重载配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable modbus-gateway.service && sudo systemctl start modbus-gateway.service
三、开放防火墙中的Modbus TCP端口
银河麒麟V10默认启用ufw防火墙,若未放行502端口,外部Modbus主站(如SCADA、C#上位机)将无法建立TCP连接,导致超时或拒绝连接错误。
1、确认ufw状态:sudo ufw status verbose
2、若状态为“active”,执行放行指令:sudo ufw allow 502/tcp comment 'Modbus TCP'
3、若使用firewalld(部分V10 SP1工业版预装),则运行:sudo firewall-cmd --permanent --add-port=502/tcp && sudo firewall-cmd --reload
4、验证端口监听状态:sudo ss -tlnp | grep :502,应显示modbus-gateway-daemon进程绑定信息
四、加载内核串口驱动并校验RS485硬件接口
对于Modbus RTU通信,需确保麒麟V10内核已加载对应串口驱动(如ftpmcu_uart.ko用于飞腾平台、hisi_sir.ko用于鲲鹏),且RS485收发方向控制引脚(DE/RE)能被正确触发,否则出现数据错乱或无响应。
1、插拔RS485转接模块后执行:dmesg | tail -20,查找类似"ttyS2: ftuart010 serial port at..."的驱动加载日志
2、若未识别,手动加载驱动:sudo modprobe ftpmcu_uart(飞腾)或sudo modprobe hisi_sir(鲲鹏)
3、设置串口参数并启用485自动流控:sudo stty -F /dev/ttyS2 9600 cs8 -cstopb -parenb crtscts
4、测试环回通信:echo -ne '\x01\x03\x00\x00\x00\x01\x84\x0A' > /dev/ttyS2 && hexdump -C /dev/ttyS2,观察是否收到响应帧
五、部署轻量级Modbus TCP网关配置工具
部分国产网关(如SS-431、EKI-1221)提供图形化配置软件,但麒麟V10桌面环境(UKUI)默认不兼容Windows版exe;需通过Wine或Java Web Start方式运行跨平台配置前端,完成IP、从站地址、寄存器映射等关键参数设定。
1、安装Wine基础组件:sudo apt install wine64 winetricks
2、配置Wine前缀并安装.NET Framework 4.7.2:WINEDLLOVERRIDES="mscoree,mshtml=" winecfg && winetricks -q dotnet472
3、下载网关厂商提供的Windows配置工具(如SS-123.exe),右键属性设为“允许作为程序执行”
4、双击运行或终端执行:wine /path/to/SS-123.exe,进入界面后填写网关IP(如192.168.2.254)、子网掩码、Modbus从站ID及保持寄存器起始地址










