利用modinfo查看kernel使用的driver版本

前言

Linux modinfo命令用于显示kernel模块的信息,确切讲,会显示kernel模块的对象文件,以及显示该模块的相关信息。

语法

shell

root@node243:~# modinfo -h
Usage:
	modinfo [options] filename [args]
Options:
	-a, --author                Print only 'author'
	-d, --description           Print only 'description'
	-l, --license               Print only 'license'
	-p, --parameters            Print only 'parm'
	-n, --filename              Print only 'filename'
	-0, --null                  Use \0 instead of \n
	-F, --field=FIELD           Print only provided FIELD
	-k, --set-version=VERSION   Use VERSION instead of `uname -r`
	-b, --basedir=DIR           Use DIR as filesystem root for /lib/modules
	-V, --version               Show version
	-h, --help                  Show this help
root@node243:~# 

实践

今天碰到需要给技嘉设备(型号:S451-3R0)更新系统里的QLogic driver,技嘉工程师提供的文件名称为server_driver_qlogic_lan_8.18.16.0.zip,从这里可以看出版本是8.18.16.0,问题来了,我要如何知道,当前系统里QLogic版本是多少?如果版本比技嘉工程师提供的高,自然就不需要更新这个驱动;如果比这个低,那就需要了。

查看系统里QLogic driver在内核中加载的模块名称

使用的lspci -vvv命令,下面只截取片段信息:

shell

3f:00.0 Ethernet controller: QLogic Corp. Device 8070 (rev 02)
        Subsystem: Gigabyte Technology Co., Ltd Device 1000
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 411
        Region 0: Memory at b7d20000 (64-bit, prefetchable) [size=128K]
        Region 2: Memory at b7c00000 (64-bit, prefetchable) [size=1M]
        Region 4: Memory at b7d50000 (64-bit, prefetchable) [size=64K]
        Expansion ROM at b8680000 [disabled] [size=512K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/8 Maskable+ 64bit+
                Address: 0000000000000000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [70] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 <8us
                        ClockPM+ Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Via message/WAKE#
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
                         EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
        Capabilities: [b0] MSI-X: Enable+ Count=129 Masked-
                Vector table: BAR=4 offset=00000000
                PBA: BAR=4 offset=00001000
        Capabilities: [d0] Vital Product Data
                Product Name: QLogic FastLinQ QL41212H 25GbE Adapter
                Read-only fields:
                        [PN] Part number: AH2010406-01 02
                        [SN] Serial number: AFE1702F15357
                        [V0] Vendor specific: FFV8.18.01
                        [RV] Reserved: checksum good, 4 byte(s) reserved
                End
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [148 v1] Virtual Channel
                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:    Fixed- WRR32- WRR64- WRR128-
                Ctrl:   ArbSelect=Fixed
                Status: InProgress-
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=01
                        Status: NegoPending- InProgress-
        Capabilities: [168 v1] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [178 v1] Power Budgeting <?>
        Capabilities: [188 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 1
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [198 v1] #19
        Capabilities: [1f8 v1] Transaction Processing Hints
                Interrupt vector mode supported
                Device specific mode supported
                Steering table in MSI-X table
        Capabilities: [284 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Capabilities: [28c v1] Vendor Specific Information: ID=0002 Rev=3 Len=100 <?>
        Capabilities: [38c v1] Vendor Specific Information: ID=0001 Rev=1 Len=038 <?>
        Capabilities: [3c4 v1] #1f
        Capabilities: [3d0 v1] Vendor Specific Information: ID=0003 Rev=1 Len=054 <?>
        Capabilities: [424 v1] #15
        Kernel driver in use: qede

从上面信息看到,qlogic driver,被kernel加载使用的叫qede

查看qede版本

shell

root@node150:~# lsmod | grep qede
qede                  143360  0 
qed                   880640  1 qede
vxlan                  40960  2 i40e,qede
ptp                    20480  2 i40e,qede
root@node150:~# modinfo qede
filename:       /lib/modules/4.1.49-server/updates/dkms/qede.ko
version:        8.33.9.0
license:        GPL
description:    QLogic FastLinQ 4xxxx Ethernet Driver
srcversion:     AFABFD8F281A74624107FE7
alias:          pci:v00001077d00008090sv*sd*bc*sc*i*
alias:          pci:v00001077d00008070sv*sd*bc*sc*i*
alias:          pci:v00001077d00001664sv*sd*bc*sc*i*
alias:          pci:v00001077d00001656sv*sd*bc*sc*i*
alias:          pci:v00001077d00001654sv*sd*bc*sc*i*
alias:          pci:v00001077d00001644sv*sd*bc*sc*i*
alias:          pci:v00001077d00001636sv*sd*bc*sc*i*
alias:          pci:v00001077d00001666sv*sd*bc*sc*i*
alias:          pci:v00001077d00001634sv*sd*bc*sc*i*
depends:        ptp,vxlan,qed
vermagic:       4.1.49-server SMP mod_unload modversions 
parm:           debug: Default debug msglevel (uint)
parm:           int_mode: Force interrupt mode other than MSI-X:(1 INT#x; 2 MSI) (uint)
parm:           gro_disable: Force HW gro disable:(0 enable (default); 1 disable) (uint)
parm:           err_flags_override: Bitmap for disabling or forcing the actions taken according to the respective error flags bits (uint)
parm:           rdma_lag_support: RDMA Bonding support enable - preview mode (uint)
root@node150:~# 

从lsmod吐出信息可以看到,当前系统中QLogic driver版本是8.33.9.0,高于技嘉工程师提供的版本,所有不需要跟新。


来源: Transcendent
文章作者: Gavin Wang
文章链接: 利用modinfo查看kernel使用的driver版本 | Transcendent
本文章著作权归作者所有,任何形式的转载都请注明出处。

<think>好的,我现在需要回答用户的问题:如何在CentOS中检查GPU显卡驱动程序的版本。首先,我要回忆一下之前学过的关于CentOS系统下查看NVIDIA显卡驱动版本的方法。 根据用户提供的引用内容,用户提到可以通过运行`nvidia-smi`命令来查看驱动版本,这在引用[2]中有提到。这个命令应该是NVIDIA提供的系统管理接口工具,通常安装完驱动后就可以使用。不过,我需要确认在CentOS下是否需要额外的步骤来安装这个工具,或者是否默认包含在驱动安装中。 另外,用户还提到了另一个命令`lspci | grep -i nvidia`,这是在引用[1]中用来确定GPU型号的。虽然这个命令主要是查看GPU型号,但可能和驱动版本检查无关,不过可以作为补充信息。 接下来,我需要考虑可能的其他方法,比如使用`modinfo`命令查看内核模块的信息。例如,`modinfo nvidia`可能会显示驱动版本。这种方法适用于未安装nvidia-smi的情况,或者作为另一种验证方式。 另外,用户可能没有安装驱动的情况,这时候运行nvidia-smi会提示命令未找到,这时候需要引导用户先安装驱动。但用户的问题是如何检查版本,所以可能需要分步骤说明:首先确认驱动是否安装,如果已安装,使用哪些命令查看版本。 还需要注意权限问题,是否需要sudo来执行这些命令。例如,某些系统可能需要root权限才能运行nvidia-smi,不过通常普通用户也可以执行。 总结可能的步骤: 1. 使用`nvidia-smi`命令,查看右上角的版本号。 2. 如果无法使用nvidia-smi,尝试检查内核模块信息:`modinfo nvidia | grep version`。 3. 或者使用`cat /proc/driver/nvidia/version`查看版本。 4. 另外,通过包管理器查询已安装的驱动版本,比如`rpm -qa | grep nvidia`。 需要确保回答中提到的命令正确无误,并且适用于CentOS系统。同时,要引用用户提供的参考资料中的方法,比如引用[2]提到的nvidia-smi,以及引用[1]中的lspci命令(虽然主要用于型号,但可以辅助确认GPU是否存在)。 最后,可能还需要提醒用户,如果驱动未安装,需要先按照引用中的步骤安装驱动,然后再检查版本。不过用户的问题是如何检查已安装的版本,所以重点应放在已安装的情况下。 检查是否存在拼写错误,例如命令的正确性,比如`lspci`而不是`lspic`,`grep -i nvidia`中的大小写忽略是否正确。另外,确认CentOS的版本差异,比如CentOS7和CentOS8是否有不同的命令,但用户提供的引用中都是CentOS7,所以可以默认针对CentOS7的回答。 可能需要补充其他方法,例如使用NVIDIA的配置工具`nvidia-settings`,但可能需要图形界面支持,而服务器环境可能没有,所以命令行方法更可靠。 最终,整理回答的结构,先给出主要方法,再提供备用方法,并引用相关资料。</think>在CentOS系统中检查NVIDIA GPU显卡驱动版本,可通过以下方法逐步操作: ### 方法1:使用`nvidia-smi`命令 1. **打开终端**,直接输入命令: ```bash nvidia-smi ``` 2. **查看输出结果**:在表格的右上角显示驱动版本,例如`Driver Version: 470.182.03`[^2]。 ![nvidia-smi示例](https://developer.download.nvidia.cn/cuda/images/screenshot-nvidia-smi.png) ### 方法2:通过内核模块信息查询 如果未安装`nvidia-smi`,可使用以下命令: ```bash modinfo nvidia | grep version ``` 输出示例: ``` version: 470.182.03 ``` ### 方法3:检查系统驱动文件 ```bash cat /proc/driver/nvidia/version ``` 输出示例: ``` NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.182.03 ``` ### 方法4:使用包管理器查询(适用于RPM安装) ```bash rpm -qa | grep nvidia ``` 输出示例: ``` nvidia-driver-470.182.03-1.el7.x86_64 ``` ### 注意事项 - **权限问题**:若提示权限不足,可在命令前加`sudo`。 - **驱动未安装**:若上述命令均报错,需先[安装NVIDIA驱动](https://www.nvidia.com/Download/index.aspx)[^1]。 - **GPU型号确认**:使用`lspci | grep -i nvidia`可验证GPU是否被系统识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值