哈嘍,你好啊,我是雷工!
最近有個項目使用信創的服務器,總是出現死機的情況,
聯系廠家檢查了一下,說是沐創網卡固件較低造成的,
讓移除網卡或升級固件嘗試一下。
記得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
至此,網卡驅動和固件更新完成。