PCI板卡是通过称为PCI ID的标识符进行识别的。PCI ID实际上由两个部分组成:
• 供应商ID和设备ID;
• 子系统ID和子系统设备ID;
lspci -nn命令允许识别供应商/设备的PCI ID:
$ lspci -nn
...
00:0a.0 Multimedia controller [0480]: Philips Semiconductors SAA7131/SAA7133/SAA7135␣
, →Video Broadcast Decoder [1131:7133] (rev d1)
00:0b.0 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture␣
, →[109e:0878] (rev 11)
01:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe␣
, →Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev 0f)
02:01.0 Multimedia video controller [0400]: Internext Compression Inc iTVC15␣
, →(CX23415) Video Decoder [4444:0803] (rev 01)
02:02.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23418 Single-
, →Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder [14f1:5b7a]
02:03.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture␣
, →[109e:036e] (rev 11)
...
子系统ID可通过lspci -vn命令查看:
$ lspci -vn
...
00:0a.0 0480: 1131:7133 (rev d1)
Subsystem: 1461:f01d
Flags: bus master, medium devsel, latency 32, IRQ 209
Memory at e2002000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
...
在上面的示例中,第一张卡使用saa7134驱动程序,具有与1131:7133相等的供应商/设备PCI ID和与1461:f01d相等的PCI子系统ID(参见Saa7134卡列表)。
不幸的是,有时不同的产品会使用相同的PCI子系统ID。因此,几个媒体驱动程序允许传递card=参数,以设置与特定板卡的正确设置匹配的卡号。
当前支持的PCI/PCIe卡(不包括分阶段的驱动程序)列在下面:
BTTV cards list
......
1.1.5.3 Platform drivers
有一些驱动程序专注于为已包含在主板中且既不使用USB也不使用PCI总线的功能提供支持。这些驱动程序被称为平台驱动程序,在嵌入式设备上非常流行。
当前支持的平台驱动程序(不包括分阶段的驱动程序)列在下面:
mtk_jpeg, mtk-mdp, mtk-vcodec-dec, mtk-vpu
......
1.1.5.4 Radio drivers
有对纯AM/FM收音机的支持,甚至对一些FM广播发射器也有支持。
1.1.5.5 I 2C drivers
I2C(Inter-Integrated Circuit)总线是一种三线总线,用于媒体卡内部的不同芯片之间的通信。虽然总线对Linux内核不可见,但驱动程序需要通过总线发送和接收命令。Linux内核驱动程序抽象层支持为I2C总线内的每个组件实现不同的驱动程序,就像总线对主系统板可见一样。
I2C设备的问题之一是有时相同的设备可能使用不同的I2C硬件工作。例如,美国市场的某些设备带有调谐器,而欧洲市场则有另一个调谐器。一些驱动程序具有tuner = modprobe参数,允许使用不同的调谐器编号以解决此类问题。
当前支持的I2C驱动程序(不包括分阶段驱动程序)列在下面:
Audio decoders, processors and mixers
Audio/Video compression chips
Camera sensor devices
Flash devices
IR I2C driver
Lens drivers
......
1.1.5.6 Firewire driver
媒体子系统还提供数字电视的Firewire驱动程序:
1.1.5.7 Test drivers
为了测试用户空间应用程序,有许多虚拟驱动程序提供测试功能,模拟真实的硬件设备: