当前位置:操作系统 > Unix/Linux >>

Linux硬件管理的基础知识

摘要:本文主要解说在Linux中,硬件设备的表示方法及查看工具等;最主要的目的是当我们遇到硬件问题时,懂得如何根据硬件信息来解决问题;

  一、在Linux 系统中,对硬件判别的标识的依据;

  在 LinuxSir.Org 讨论区,我们经常看到有些弟兄这样来描述自己的硬件“我的显示卡是XXX牌子的,Linux 不支持怎么办?”。其实这样描述是最差的,大家也根本没有办法提供帮助;因为Linux对硬件的识别是以为芯片组的厂商为依据的,而非硬件的品牌;因为现在硬件厂商大多是OEM的,也就是说硬件的主芯片是他们生产不了的,但他们会从硬件主芯片厂商拿来,焊接在自己的电路板上,这就是OEM 的过程;

  无论什么硬件都是以芯片组的厂商为标识的,而不是什么市场看到的这个品牌,那个品牌的;举个例子,我们在市场上看到有各种各样的显卡,其实看一下他们的芯片,大多是ATI和 NVIDIA的,所有的ATI和NVIDIA的驱动都是ATI和NVIDIA开发出来的。所以我们提问的时候,要把硬件的芯片说出来,芯片是驱动的唯一标识,而不是品牌!!!

  所以我们要找硬件的驱动时,我们一定要根据硬件主芯片的信息来找相关的驱动;

  二、在Linux中查看硬件信息的工具;

  在Linux 中,并不是没有工具可以查看硬件的芯片信息,应该说Linux的工具能把硬件信息查看的更清楚;下面介绍几个常用的工具;我们最常用的工具还是lspci ;其它的工具只是了解一下;

  1、lspci 列出所有PCI 设备;

  lspci - list all PCI devices ,主要是有来列出机器中的PCI 设备,比如声卡、显卡、猫、网卡等,主板集成设备也能列出来;lspci 是读取 hwdata 数据库,hwdata 由软件包 hwdata 提供;大约有如下文件;

  [beinan@localhost ~]# rpm -ql hwdata-0.158-1

  /etc/hotplug/blacklist

  /etc/pcmcia

  /etc/pcmcia/config

  /usr/X11R6/lib/X11/Cards

  /usr/share/doc/hwdata-0.158

  /usr/share/doc/hwdata-0.158/COPYING

  /usr/share/doc/hwdata-0.158/LICENSE

  /usr/share/hwdata

  /usr/share/hwdata/CardMonitorCombos

  /usr/share/hwdata/Cards

  /usr/share/hwdata/MonitorsDB

  /usr/share/hwdata/pci.ids

  /usr/share/hwdata/pcitable

  /usr/share/hwdata/upgradelist

  /usr/share/hwdata/usb.ids

  lspci 有两个参数是我们常用的,-b 和-v ,lspci 也会把usb接口列出来;

  

  举例:

  [root@localhost beinan]# lspci -b

  00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

  00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

  00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

  00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

  00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

  00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)

  00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)

  00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)

  00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)

  00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)

  00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Inte易做图ce Bridge (rev 03)

  00:1f.1 IDE inte易做图ce: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)

  00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)

  00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)

  00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)

  02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

  02:09.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller

  02:09.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller

  02:09.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller

  

  02:09.4 Class 0805: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD)

  分析一下这台机器中有什么设备,看主要的就行,与我们应用相关的;

  00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

  00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02) 注:这是显示卡;

  USB Controller 表示的是USB 接口;我们看到有三个这样的设备;我的笔记本上正好有三个USB 接口;

  Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) 注:这是声卡;

  Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) 注:这是猫;

  Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 注:这是网卡,芯片是8139的;

  FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller 注:这是1394接口的信息;事实上我的笔记本也有这样的接口;

  那得到这些信息有什么用处呢?如果机器中有些设备支持的不好,我们就可以根据这些信息在Google 上搜索,比如我感觉我的声卡有问题,就可以根据声卡信息相关的来搜索找解决问题的办法;根据这些信息,我们也可以到硬件芯片组的官方去找答案或者驱动;

  如果想知道硬件更为详细的内容,我们可以用 lspci -v 来查看;

  [root@localhost beinan]# lspci -v

  比如我们可以通过 lspci -v 来查看硬件的irq中断什么的;比如网卡不好用,是不是irq 存在冲突了?如果您不知道怎么解决硬件驱动不了的情况,就要把 lspci -v 相应硬件的信息整段贴出来,这才是解决问题的唯一办法;所以学会提问也是极为重要的;

  有的系统发行版本,还有lsusb 的工具,自己尝试一下吧;

  2、存储设备查看和操作工具;

  我们查看存储设备的工具主要有 fdisk ;parted ;cfdisk 等;最常用也是最方便的就是fdisk ;parted 就当一个补充吧,这个工具目前看来并不是太成熟;

  请参考:

  《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》

  《实例解说 fdisk 使用方法》

  

  3、通过查看/proc 目录的相应文件获取一些硬件信息;

  我们在查看 /etc/fstab 时,会注意到这样一行;

  /dev/proc /proc proc defaults 0 0

  proc 看起来象是一个文件系统,其实他并不是一个真正的文件系统 , 它是“proc - process information pseudo-filesystem”,译成中文大概的意思是“进程信息伪装文件系统”呵呵,这是我翻译的,有可能不对,请多多指正;

  “The proc filesystem is a pseudo-filesystem which is used as an inte易做图ce to kernel data

  structures. It is commonly mounted at /proc. Most of it is read-only, but some files allow

  kernel variables to be changed.”

  我再来乱译一下然后再根据/proc 的内容自己理解理解。proc 文件系统做为内核kernel 数据结构的接口,把kernel 的一些信息(比如硬件信息,包括CPU 、网卡、显示卡、内存、文件系统、SCSI 设备 ....)写到 proc 文件系统中,proc被mont 到 /proc 目录;/proc 目录中有大数据大多文件是只读的,但一些数据是根据内核的变化而变化的;/proc 目录中的数据是经常变动的,对于系统中的每个进程都有一个PID;都可以在/proc 中找到;我们也可以通过 ps -aux |more 来查看进程;

  我们可以通过 cat 命令来读取/proc 目录下的文件,比如cpu的信息;

  [root@loca
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,