使用lspci命令显示当前主机的所有PCI总线信息

记忆方法

ls = list + pci

简单介绍

lspic正如其名,用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。

语法

  1. lspci(选项)

选项

-n:以数字方式显示PCI厂商和设备代码;
-t:以树状结构显示PCI设备的层次关系,包括所有的总线、桥、设备以及它们之间的联接;
-b:以总线为中心的视图;
-d:仅显示给定厂商和设备的信息;
-s:仅显示指定总线、插槽上的设备和设备上的功能块信息;
-i:指定PCI编号列表文件,而不使用默认的文件;
-m:以机器可读方式显示PCI设备信息。

简单实例

$ lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 3e92
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1b.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #17 (rev f0)
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #1 (rev f0)
00:1c.3 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #4 (rev f0)
00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Z370 Chipset LPC/eSPI Controller
00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

使用dmidecode命令在Linux系统下获取有关硬件方面的信息

记忆方法

dmi + decode

简单介绍

dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息。dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示。由于DMI信息可以人为修改,因此里面的信息不一定是系统准确的信息

dmidecode遵循SMBIOS/DMI标准,其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。

语法

dmidecode [选项]

选项

-d:(default:/dev/mem)从设备文件读取信息,输出内容与不加参数标准输出相同。
-h:显示帮助信息。
-s:只显示指定DMI字符串的信息。(string)
-t:只显示指定条目的信息。(type)
-u:显示未解码的原始条目内容。
--dump-bin file:将DMI数据转储到一个二进制文件中。
--from-dump FILE:从一个二进制文件读取DMI数据。
-V:显示版本信息。

简单实例

# Show all DMI table contents:
sudo dmidecode
# Show the BIOS version:
sudo dmidecode -s bios-version
# Show the system's serial number:
sudo dmidecode -s system-serial-number
# Show BIOS information:
sudo dmidecode -t bios
# Show CPU information:
sudo dmidecode -t processor
# Show memory information:
sudo dmidecode -t memory
# 查看服务器型号
sudo dmidecode | grep 'Product Name'
# 查看主板的序列号
sudo dmidecode | grep 'Serial Number'
# 查看OEM信息
sudo dmidecode -t 11

不带选项执行dmidecode命令通常会输出所有的硬件信息。dmidecode命令有个很有用的选项-t,可以按指定类型输出相关信息。

另外,该命令需要使用管理员权限。具体的支持的信息选项可以参考相关链接的第1个。

补充知识

  • DMI(Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。
  • SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。
  • SMBIOSDMI是由行业指导机构Desktop Management Task Force(DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
  • DMI充当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。
  • DMI的主要组成部分是Management Information Format(MIF)数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息

使用hwclock命令查看时间信息

记忆方法

hw = hardware + clock

简单介绍

hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

语法

hwclock(选项)

选项

--adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;
--debug:显示hwclock执行时详细的信息;
--directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;
--set --date=<日期与时间>:设定硬件时钟;
--show:显示硬件时钟的时间与日期;
--systohc:将硬件时钟调整为与目前的系统时钟一致;
--hctosys:将系统时钟调整为与目前的硬件时钟一致;
--test:仅测试程序,而不会实际更改硬件时钟;
--utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;
--version:显示版本信息。

需要管理员权限。

简单实例

# Display the current time as reported by the hardware clock:
hwclock
# 不要随便尝试,可能时间会不正常。Write the current software clock time to the hardware clock (sometimes used during system setup):
hwclock --systohc
# 不要随便尝试,可能时间会不正常。Write the current hardware clock time to the software clock:
hwclock --hctosys

相关知识

在Linux中有硬件时钟与系统时钟等两种时钟。

  • 硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。
  • 系统时钟则是指kernel中的时钟。

当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作

所有Linux相关指令与函数都是读取系统时钟的设定。

使用lsusb显示本机的USB设备信息

记忆方法

ls = list + usb

简单介绍

lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。

lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用,如果您的开发板中或者产品中没有lsusb命令可以自己移植一个,放到文件系统里面。

语法

lsusb(选项)

选项

-v:显示USB设备的详细信息;
-s<总线:设备号>仅显示指定的总线和(或)设备号的设备;
-d<厂商:产品>:仅显示指定厂商和产品编号的设备;
-t:以树状结构显示无理USB设备的层次;
-V:显示命令的版本信息。

简单实例

插入usb鼠标后执行lsusb的输出内容如下:

Bus 005 Device 001: id 0000:0000 
Bus 001 Device 001: ID 0000:0000 
Bus 004 Device 001: ID 0000:0000 
Bus 003 Device 001: ID 0000:0000 
Bus 002 Device 006: ID 15d9:0a37 
Bus 002 Device 001: ID 0000:0000

解释:

Bus 005

表示第五个usb主控制器(机器上总共有5个usb主控制器 — 可以通过命令lspci | grep USB查看)

Device 006

表示系统给usb鼠标分配的设备号(devnum),同时也可以看到该鼠标是插入到了第二个usb主控制器

006        usb_device.devnum
/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/devnum

ID 15d9:0a37

表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备)

15d9    usb_device_descriptor.idVendor
0a37    usb_device_descriptor.idProduct
/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/idVendor
Bus 002 Device 006: ID 15d9:0a37
Bus 002 Device 001: ID 0000:0000

表示002号usb主控制器上接入了两个设备:

  • 一个是usb根Hub — 001
  • 一个是usb鼠标 — 006

使用arch命令显示主机硬件架构

简单介绍

arch命令用于显示当前主机的硬件架构类型。

arch命令等同于命令name -m

在当前的Linux系统下,arch命令输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等

语法

arch

简单实例

$ arch
x86_64

参考链接