zoukankan      html  css  js  c++  java
  • linux下查看硬件信息

    linux下查看硬件信息

    用dmidecode命令查看会比较多些


    一、在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 Interface Bridge (rev 03)
    00:1f.1 IDE interface: 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 interface 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@localhost beinan]# cat /proc/cpuinfo

    详细的内容还得需要您来慢慢查看;对于 /proc 的了解也是有必要的;


    4、dmesg


    dmesg 是一个显示内核缓冲区系统控制信息的工具;比如系统在启动时的信息会写到/var/log/

    注:dmesg 工具并不是专门用来查看硬件芯片组标识的工具,但通过这个工具能让我们知道机器中的硬件的一些参数;因为系统在启动的时候,会写一些硬件相关的日志到 /var/log/message* 或 /var/log/boot* 文件中;

    如果我们用这个工具来查看一些硬件的信息;这个工具信息量太大,的确需要耐心;


    [root@localhost beinan]# dmesg


    [root@localhost beinan]# dmesg -c 注:清理掉缓冲区,下次开机的时候还会自动生成;


    5、 hwbrowser


    hwbrowser 是 您当前硬件配置的图形化浏览器 ,这个工具是图形的。可能系统在默认的情况下没有安装。需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;


    [root@localhost beinan]# yum install hwbrowser

    [root@localhost beinan]# apt install hwbrowser
    [root@localhost beinan]# hwbrowser

    当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装


    [root@localhost beinan]# rpm -ivh hwbrowser*.rpm

    我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;


    6、lshal 和 hal-device-manager


    通过 lshal 和hal-device-manager 也能知道硬件相关信息,不过这个工具对新手操作起来是有点麻烦,但我还是得介绍一下;


    [root@localhost beinan]# lshal

    hwbrowser 是 lshal 的图形化界;可能系统在默认的情况下没有安装,这个工具包是Fedora 扩展包,需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;


    [root@localhost beinan]# yum install hal-device-manager

    [root@localhost beinan]# apt install hal-device-manager
    [root@localhost beinan]# hal-device-manager

    当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装


    [root@localhost beinan]# rpm -ivh hal-device-manager*.rpm

    我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;


    三、不同的硬件有不同的配置工具和与之相应的配置文件;


    不同的硬件有不同的配置工具,也有与之相应的配置文件;比如关于显示器和显示卡的配置文件是/etc/X11/xorg.conf ,对于老的Linux版本应该是/etc/X11/X86Config 或 X86Config-4 ,xorg 或 X86的配置文件还包括鼠标、键盘等在X桌面环境下的配置和控制等;

    声卡的配置文件是/etc/modprobe.conf 或 /etc/modules.conf ;

    文件系统的配置文件是 /etc/fstab ;

    声卡的配置工具,一般情况下是alsaconf

    当然不同的发行版也有相应的硬件配置或管理 工具,比如Fedora Core 4.0 有如下的硬件配置或管理工具;


    [root@localhost beinan]# system-config-mouse
    [root@localhost beinan]# system-config-network-tui
    [root@localhost beinan]# gnome-system-monitor
    [root@localhost beinan]# system-config-network
    [root@localhost beinan]# system-config-printer-gui
    [root@localhost beinan]# system-config-soundcard
    [root@localhost beinan]# setup

    当然这些图形化的工具并不是万能的,他们的功能还是有极大的局限性;所以在硬件配置上,大多还是通过文本模式来操作的;


    四、硬件驱动是由内核支持的,但驱动都存放在哪里?


    硬件驱动是必须由内核支持的,无论是我们自己安装驱动,还是内核自带的驱动都是如此。硬件驱动如果是以内核模块支持的,驱动目录位于: /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中;


    [root@localhost beinan]# uname -r
    2.6.11-1.1369_FC4
    [root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/kernel
    arch crypto drivers fs lib net sound

    注:只有驱动在内核中以模块的方法支持的,或者我们自己安装的驱动,驱动才位于 /lib/modules/相应的目录;如果是直接置入内核的,不会出现在/lib/modules驱动相关的目录;


    五、硬件不被系统支持怎么办?


    如果一个Linux 系统不支持您的硬件,解决的办法无非是有两种,一种是下载驱动自己安装,Linux的驱动大多是开源社区开发的,厂商提供的比较少;有时也可能要重编内核,主要看驱动内部的说明文件怎么说了。因为驱动本来是要内核支持的,编译内核也极为正常;

    值得注意的是:如果我们要重新编译内核,最好把硬件情况摸清楚了,比如鼠标、光驱、软驱、USB 设备;硬盘、文件系统... ... 都要仔细的查看;

     
  • 相关阅读:
    Windows Server 2012配置开机启动项
    Windows Server 2019 SSH Server
    NOIP2017 senior A 模拟赛 7.7 T1 棋盘
    Noip 2015 senior 复赛 Day2 子串
    Noip 2015 senior复赛 题解
    Noip 2014 senior Day2 解方程(equation)
    Noip 2014 senior Day2 寻找道路(road)
    Noip 2014 senior Day2 无线网络发射器选址(wireless)
    Noip2014senior复赛 飞扬的小鸟
    Noip 2014 senior 复赛 联合权值(link)
  • 原文地址:https://www.cnblogs.com/dyufei/p/2574019.html
Copyright © 2011-2022 走看看