web-dev-qa-db-ja.com

実行中のシステムでデバイスドライバーを検出して分類する

実行中のカーネルに組み込まれているデバイスドライバーを取得するにはどうすればよいですか?

これ以上に、これらのデバイスドライバーをどのように分類できますか?

たとえば、これはWikipediaのLinuxカーネルの概念マップです。

enter image description here

検出されたデバイスドライバーを上のマップの対応する領域に配布するにはどうすればよいですか?

私の印象では、そのような情報はカーネル構成ファイルから取得できると思います。

(回答がグラフ形式になることは期待していません。テキストによる分類で十分ですが、全体として、画像の領域に一致する適切なカテゴリを使用します。)

3
VividD

lsmodを使用して、ロードされたドライバーを一覧表示できます。例えば、

[root@vm bin]# lsmod Module Size Used by coretemp 13435 0 crc32_pclmul 13113 0 ghash_clmulni_intel 13259 0 aesni_intel 69884 0 lrw 13286 1 aesni_intel gf128mul 14951 1 lrw glue_helper 13990 1 aesni_intel ablk_helper 13597 1 aesni_intel cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper sg 40721 0 ppdev 17671 0 pcspkr 12718 0 vmw_balloon 13415 0 parport_pc 28165 0 parport 42348 2 ppdev,parport_pc vmw_vmci 67106 0 i2c_piix4 22106 0 shpchp 37032 0 ip_tables 27240 0 xfs 939662 3 libcrc32c 12644 1 xfs sr_mod 22416 0 cdrom 42556 1 sr_mod sd_mod 45497 3 crc_t10dif 12714 1 sd_mod ata_generic 12910 0 crct10dif_generic 12647 0 pata_acpi 13038 0 mptspi 22542 2 scsi_transport_spi 30732 1 mptspi mptscsih 40150 1 mptspi vmwgfx 176029 1 drm_kms_helper 125008 1 vmwgfx crct10dif_pclmul 14289 1 crct10dif_common 12595 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif ttm 93441 1 vmwgfx crc32c_intel 22079 1 ata_piix 35038 0 drm 349210 4 ttm,drm_kms_helper,vmwgfx mptbase 105960 2 mptspi,mptscsih serio_raw 13462 0 libata 218730 3 pata_acpi,ata_generic,ata_piix vmxnet3 53833 0 i2c_core 40582 3 drm,i2c_piix4,drm_kms_helper floppy 69417 0 dm_mirror 22135 0 dm_region_hash 20862 1 dm_mirror dm_log 18411 2 dm_region_hash,dm_mirror dm_mod 113292 11 dm_log,dm_mirror

次に、各ドライバーが何に関連しているかをさらに理解するには、modinfoを使用します。

[root@vm bin]# modinfo coretemp filename: /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/hwmon/coretemp.ko license: GPL description: Intel Core temperature monitor author: Rudolf Marek <[email protected]> rhelversion: 7.2 srcversion: 39EE385A7A807BDCB75C480 alias: x86cpu:vendor:0000:family:*:model:*:feature:*00E7* depends:
intree: Y vermagic: 3.10.0-327.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux kernel signing key sig_key: 79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3 sig_hashalgo: sha256 parm: tjmax:TjMax value in degrees Celsius (int)

次に、この情報を使用して、各ドライバーが属する場所を分類できます。

2
Chen A.