lspci是列出所有的硬件信息,包括已经安装了驱动还是没有安装驱动的硬件设备,因为根据pci规范,只要改设备在pci总线上挂着,就可以读到起Vendor ID和Device ID等一些列信息,就能知道这个设备是什么设备。如果要确认有没有安装驱动,就需要通过lsmod命令来看,当然lsmod命令只能显示编译linux内核时选中为“M”的驱动程序,最靠谱的还是dmesg来查看该设备的驱动有没有安装,dmesg信息太多,需要grep来过滤一下。


// 工作中的时候总结的一些经验吧

1、确定需要安装驱动的硬件型号,可以在/etc/sysconfig/hwconf中找到,里面列出了所有硬件的型号和生产商等信息,其中vendorId指的是硬件的生产商编号,deviceId是指该设备的编号,一般生产商和设备编号都是四位的

2、lspci命令可以查看当前系统中所有PCI的设备的信息,lspci -n|grep 02:00 可以查看02:00设备对应的生产商和设备编号信息,这些信息也可以在hwconf中找到

3、找到了设备编号可以到http://pci-ids.ucw.cz/iii/查找与该设备相关的信息,可以找到设备的名字

4、通过设备名字和型号查找设备驱动

5、编译模块/驱动

6、lsmod命令可以列出当前系统中所有已经加载了的模块/驱动

7、modinfo命令可以单看指定的模块/驱动的信息,其中alias指的是这个模块/驱动所支持的硬件的型号

8、使用modprobe或者insmod命令可以加载驱动,使用rmmod可以删除一个模块/驱动


在LINUX环境开发驱动程序,首先要探测到新硬件,接下来就是开发驱动程序。

常用命令整理如下:

用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)

查看CPU信息:cat /proc/cpuinfo

查看板卡信息:cat /proc/pci

查看PCI信息:lspci (相比cat /proc/pci更直观)

查看内存信息:cat /proc/meminfo

查看USB设备:cat /proc/bus/usb/devices

查看键盘和鼠标:cat /proc/bus/input/devices

查看系统硬盘信息和使用情况:fdisk & disk - l & df

查看各设备的中断请求(IRQ):cat /proc/interrupts

查看系统体系结构:uname -a

dmidecode查看硬件信息,包括bios、cpu、内存等信息

dmesg | more 查看硬件信息


我的FC5显示结果如下:

查看键盘和鼠标 
[root@localhost input]# cat /proc/bus/input/devices 
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 
N: Name="AT Translated Set 2 keyboard" 
P: Phys=isa0060/serio0/input0 
S: Sysfs=/class/input/input0 
H: Handlers=kbd event0 
B: EV=120013 
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe 
B: MSC=10 
B: LED=7 
I: Bus=0003 Vendor=06a2 Product=0001 Version=0100 
N: Name=" USB Mouse " 
P: Phys=usb-0000:00:03.2-2/input0 
S: Sysfs=/class/input/input2 
H: Handlers=mouse0 event1 
B: EV=7 
B: KEY=70000 0 0 0 0 0 0 0 0 
B: REL=103 
查看PCI设备: 
[root@localhost proc]# lspci 
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 651 Host 
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) 
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] 
(rev 04) 
00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller 
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] 
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] Sound //集成声卡 
Controller (rev a0) 
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller 
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast //集成网卡 
Ethernet (rev 90) 
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 65x/M650/740PCI/AGP VGA Display Adapter //集成显卡 
查看CPU信息: 
cat /proc/cpuinfo 
processor : 0 
vendor_id : GenuineIntel // Intel 
cpu family : 15 
model : 1 
model name : Intel(R) Celeron(R) CPU 1.70GHz 
stepping : 3 
cpu MHz : 1703.090 
cache size : 128 KB 
fdiv_bug : no 
hlt_bug : no 
f00f_bug : no 
coma_bug : no 
fpu : yes 
fpu_exception : yes 
cpuid level : 2 
wp : yes 
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm 
bogomips : 3411.63 
查看内存信息: 
cat meminfo 
MemTotal: 321104 kB // 256M+128M 
MemFree: 5212 kB 
Buffers: 10284 kB 
Cached: 157304 kB 
SwapCached: 0 kB 
Active: 171456 kB 
Inactive: 117120 kB 
HighTotal: 0 kB 
HighFree: 0 kB 
LowTotal: 321104 kB 
LowFree: 5212 kB 
SwapTotal: 522104 kB 
SwapFree: 522104 kB 
Dirty: 116 kB 
Writeback: 0 kB 
Mapped: 177868 kB 
Slab: 19224 kB 
CommitLimit: 682656 kB 
Committed_AS: 412960 kB 
PageTables: 3736 kB 
VmallocTotal: 704504 kB 
VmallocUsed: 2776 kB 
VmallocChunk: 701540 kB 
HugePages_Total: 0 
HugePages_Free: 0 
Hugepagesize: 4096 kB 
查看USB设备:

插上我的魅族: 
cat /proc/bus/usb/devices 
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 
P: Vendor=0000 ProdID=0000 Rev= 2.06 
S: Manufacturer=Linux 2.6.15-1.2054_FC5 ehci_hcd 
S: Product=EHCI Host Controller 
S: SerialNumber=0000:00:03.3 
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms 
T: Bus=04 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 6 Spd=480 MxCh= 0 
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 
P: Vendor=0471 ProdID=0000 Rev= 0.01 
S: Manufacturer=MEIZU Co., Ltd //魅族MP3 
S: Product=Meizu E3 HS 
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA 
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage 
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms 
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms 
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 
B: Alloc= 14/900 us ( 2%), #Int= 1, #Iso= 0 
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 
P: Vendor=0000 ProdID=0000 Rev= 2.06 
S: Manufacturer=Linux 2.6.15-1.2054_FC5 ohci_hcd 
S: Product=OHCI Host Controller 
S: SerialNumber=0000:00:03.2 
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms 
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0 
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 
P: Vendor=06a2 ProdID=0001 Rev= 1.00 //USB键盘 
S: Manufacturer= 
S: Product= USB Mouse 
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid 
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms 
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 
P: Vendor=0000 ProdID=0000 Rev= 2.06 
S: Manufacturer=Linux 2.6.15-1.2054_FC5 ohci_hcd 
S: Product=OHCI Host Controller 
S: SerialNumber=0000:00:03.1 
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms 
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 
P: Vendor=0000 ProdID=0000 Rev= 2.06 
S: Manufacturer=Linux 2.6.15-1.2054_FC5 ohci_hcd 
S: Product=OHCI Host Controller 
S: SerialNumber=0000:00:03.0 
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms 
[root@localhost usb]#

===========================================

Linux 硬件管理的基础知识

作者:北南南北 
来自:LinuxSir.Org 
摘要:本文主要解说在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 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 设备;硬盘、文件系统... ... 都要仔细的查看;

请参考:


后记: 

Linux 对硬件的支持目前的情况来看是要比前几年好多了,比如声卡、网卡、显示卡(非3D加速,如果是3D加速的,要下载厂商驱动,如果厂商不提供,那大多是没有 办法了,因为厂商不公开硬件的相关参数,开源社区也没有办法开发,对不对?);对于有些硬件还是需要我们来自己安装驱动或编译内核来解决;

Linux对硬件的驱动的开发,开源社区是相当积极的,但厂商很少提供非Windows的驱动,大多数的Linux的驱动都是开源社区奉献的;有人 可能会说Windows的硬件驱动最容易,但我不是这么认为,我有一声ISA接口的声卡,在windows 98 和winme 中发出怪声,在windows 2000更是没有驱动。但在Linux中却支持的非常好。 呵。。。

Linux 对硬件并不是大家原来所说的,越老越旧的硬件跑起来最好,Linux对新设备的支持,可能厂家刚放出来产品,开源社区就有人研究了。解决办法也会在开源社 区可以找到;但有些硬件厂商不会提供驱动的开发参数、信息之类的,所以开源社区有时对这样的硬件也是无奈,但这样的设备目前看来是比较少;大多硬件都支持 Linux ;

如果您遇到硬件相关的问题,不妨通过我上面所说的来找线索解决,就目前来看也没有太多的问题。只要仔细一点,细点心,学会用Google 搜索,大多问题还是能解决的。


相关文档: 

1、《编译内核操作流程 ──为新手指南》 
2、《内核管理概述》 
3、《用ALSA驱动声卡流程详解》 
4、《Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践》 
5、
《存储设备分区操作及文件系统管理概述》 
6、《Fedora / Redhat 软件包管理指南》 
7、《硬件相关网站收集》