信创服务器总死机原因及解决办法
哈喽,你好啊,我是雷工!
最近有个项目使用信创的服务器,总是出现死机的情况,
联系厂家检查了一下,说是沐创网卡固件较低造成的,
让移除网卡或升级固件尝试一下。
记得5月份按厂家的说法处理过一台,
处理完观察没有出现死机的情况。
现在其余3台也要使用,但距离上次处理过去3个多月了,都忘记上次咋搞的了。
看来还是有做笔记的必要,于是这次记录一下解决过程。
便于以后类似问题的快速处理。
01 服务器系统
服务器信息
02 操作步骤
要先更新驱动rnp-1.0.102.tar,再更新固件。
2.1、下载驱动固件
首先通过厂家提供的连接下载沐创网卡驱动和固件;
2.2、指定目录
将驱动压缩包解压缩,然后进入解压缩文件中的指定目录src文件夹中,
由于部分操作需要root权限,先切换到root用户;
[admin@localhost src]$ su root
密码:
[root@localhost src]#
2.3、编译驱动
在src文件夹中点击右键-点击【在终端中打开】,打开一个终端,
输入:sudo make 编译驱动
编译驱动显示完整内容如下:
[root@localhost src]# sudo makeMakefile:44: *** compile without define.mk.filtering include/linux/dev_printk.h outfiltering include/net/flow_keys.h outfiltering include/linux/device/class.h outall files (for given query) filtered outfiltering include/linux/device/class.h outfiltering include/linux/device/class.h out1 /* Autogenerated for KSRC=/lib/modules/4.19.90-89.11.v2401.ky10.aarch64/source via kcompat-generator.sh */2 #define HAVE_DEVLINK_FLASH_UPDATE_BEGIN_END_NOTIFY3 #define HAVE_DEVLINK_FLASH_UPDATE_PARAMS4 #define HAVE_DEVLINK_HEALTH5 #define HAVE_DEVLINK_INFO_DRIVER_NAME_PUT6 #define HAVE_DEVLINK_PARAMS7 #define HAVE_DEVLINK_PARAMS_PUBLISH8 #define HAVE_DEVLINK_PORT_SPLIT9 #define HAVE_DEVLINK_PORT_SPLIT_EXTACK10 #define HAVE_DEVLINK_PORT_TYPE_ETH_HAS_NETDEV11 #define HAVE_DEVLINK_REGIONS12 #define HAVE_DEVLINK_REGION_OPS_SNAPSHOT13 #define HAVE_DEVLINK_REGISTER_SETS_DEV14 #define NEED_DEVLINK_RESOURCES_UNREGISTER_NO_RESOURCE15 #define NEED_DEVLINK_TO_DEV16 #define NEED_DEVLINK_UNLOCKED_RESOURCE17 #define HAVE_NDO_FDB_ADD_VID18 #define HAVE_NDO_GET_DEVLINK_PORT19 #define HAVE_NDO_UDP_TUNNEL_CALLBACK20 #define NEED_NETIF_NAPI_ADD_NO_WEIGHT21 #define NEED_NET_PREFETCH22 #define NEED_BUS_FIND_DEVICE_CONST_DATA23 #define NEED_ETHTOOL_SPRINTF24 #define HAVE_ETHTOOL_FLOW_RSS25 #define HAVE_XDP_DO_FLUSH26 #define NEED_NO_NETDEV_PROG_XDP_WARN_ACTION27 #define HAVE_FLOW_DISSECTOR_KEY_CVLAN28 #define HAVE_CDEV_DEVICE29 #define HAVE_POLL_T30 #define HAVE_STREAM_OPEN31 #define NEED_CLASS_CREATE_WITH_MODULE_PARAM32 #define NEED_CLASS_CREATE_WITH_MODULE_PARAM33 #define HAVE_GNSS_MODULE34 #define HAVE_STRUCT_PCI_DEV_PTM_ENABLED35 #define NEED_PCIE_PTM_ENABLED36 #define NEED_MUL_U64_U64_DIV_U6437 #define HAVE_PTP_CLOCK_INFO_ADJFINE38 #define NEED_DIFF_BY_SCALED_PPM*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but*** the signing key cannot be found. Module signing has been*** disabled for this build.make[1]: 进入目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”CC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_main.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_common.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_debugfs.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_ethtool.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_lib.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_mbx.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_pcs.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_n10.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_phy.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_mbx_fw.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_sriov.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_param.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_compat.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_sysfs.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_dcb.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_ptp.oCC [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp_mpe.oLD [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp.oBuilding modules, stage 2.MODPOST 1 modulesCC /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp.mod.oLD [M] /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp.komake[1]: 离开目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”[root@localhost src]#
2.4、安装驱动
通过输入:
sudo make install
开始安装驱动;
安装过程大概需要10分钟左右时间;
安装过程显示所有内容如下:
[root@localhost src]# sudo make installMakefile:44: *** compile without define.mk.filtering include/linux/dev_printk.h outfiltering include/net/flow_keys.h outfiltering include/linux/device/class.h outall files (for given query) filtered outfiltering include/linux/device/class.h outfiltering include/linux/device/class.h out*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but*** the signing key cannot be found. Module signing has been*** disabled for this build.make[1]: 进入目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”Building modules, stage 2.MODPOST 1 modulesmake[1]: 离开目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”Installing modules...*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but*** the signing key cannot be found. Module signing has been*** disabled for this build.make[1]: 进入目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”INSTALL /home/admin/SCADA/001-ruanjian/服务器死机问题/沐创/rnp-1.0.102/src/rnp.koDEPMOD 4.19.90-89.11.v2401.ky10.aarch64make[1]: 离开目录“/usr/src/kernels/4.19.90-89.11.v2401.ky10.aarch64”Copying manpages...Running depmod.../sbin/depmod -e -F /lib/modules/4.19.90-89.11.v2401.ky10.aarch64/source/System.map -a 4.19.90-89.11.v2401.ky10.aarch64Updating initramfs...[root@localhost src]#
2.5、挂载驱动
挂载驱动指令如下:
sudo modprobe rnp
2.6、查看驱动
输入如下指令查看驱动是否安装成功:
lsmod | grep rnp
返回全部内容如下:
[root@localhost src]# sudo modprobe rnp[root@localhost src]# lsmod | grep rnprnp 393216 0[root@localhost src]# modinfo rnpfilename: /lib/modules/4.19.90-89.11.v2401.ky10.aarch64/updates/drivers/net/ethernet/mucse/rnp/rnp.koversion: 1.0.102license: GPLdescription: Mucse(R) 1/10/25/40 Gigabit PCI Express Network Driverauthor: Mucse Corporation, mucse@mucse.comsrcversion: 646B68D921E239654730F07alias: pci:v00008848d00001C00svsdbcsci*alias: pci:v00008848d00001C03svsdbcsci*alias: pci:v00008848d00001003svsdbcsci*alias: pci:v00008848d00001C01svsdbcsci*alias: pci:v00008848d00001001svsdbcsci*alias: pci:v00008848d00001004svsdbcsci*alias: pci:v00008848d00001002svsdbcsci*alias: pci:v00008848d00001000svsdbcsci*depends: name: rnpvermagic: 4.19.90-89.11.v2401.ky10.aarch64 SMP mod_unload modversions aarch64parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)parm: max_vfs:Number of Virtual Functions: 0 = disable (default), 1-MAX_SRIOV_VFS = enable this many VFs (array of int)parm: SRIOV_Mode:Change SRIOV Mode (0=MAC_MODE, 1=VLAN_MODE), default 0 (array of int)parm: pf_msix_counts_set:Number of Max MSIX Count: (default un-limit) (array of int)parm: rnp_loglevel:uintparm: debug:Debug level (0=none,...,16=all) (int)parm: fix_eth_name:set eth adapter name to rnpXX (uint)parm: module_enable_ptp:enable ptp feature, disabled default (uint)parm: mpe_src_port:mpe src port (uint)parm: min_rx_pkt_len:Minumum RX packet length (uint)parm: mpe_pkt_version:ipv4 or ipv6 src port (uint)[root@localhost src]#
驱动安装完毕后关闭此终端即可。
2.7、配置编译环境
更新驱动如果不成功,可以配置下编译环境:
yum install -y kernel-devel
yum install -y gcc
yum install -y make
03 更新固件
安装完网卡驱动以后还需要更新一下固件,
这里使用ethtool命令更新固件,更新固件后需要重启服务器才能生效。
3.1、拷贝
首先将解压后的固件拷贝到Linux系统的/lib/firmware路径下
这里我直接复制粘贴时粘贴选项为灰色,直接拖到该路径下时提示:权限不够
3.2、修改权限
通过如下命令将该路径赋予一下权限:
sudo chmod -R 777 /usr/local/lib
复制完权限再执行复制粘贴,或拖动到指定路径下;
或者也可以通过命令复制到指定路径下。
3.3、烧录命令
执行烧录命令:
ethtool -f <ethX> xxx.img.bin 0
命令中<ethx>需要修改为实际网口名。
更新固件,用时1分钟左右;
3.4、查看版本
烧录完成后通过以下命令查看当前版本:
ethtool -i ens3f0
其中ens3f0为本服务器的实际网口名
通过上面截图可以看到当前截图还是:0.3.0-rc9
于是重启服务器。
再次查看,此时版本号为新安装的1.0.102
至此,网卡驱动和固件更新完成。