Tips en Trucs 2015

Kernel module informatie

Bij elke start van uw Linux systeem, worden een aantal kernel modules gestart om bestandssystemen en nieuwe hardware te ondersteunen. De informatie over een bepaalde kernel module kan belangrijk zijn om bepaalde problemen op te lossen of gewoon uit nieuwsgierigheid. Deze informatie bestaat uit een beschrijving, afhankelijkheden, auteur, enz.

Alle bruikbare modules staan in de map /lib/modules/. Elke kernel heeft zijn eigen submap met de modules voor deze kernel:

dany@linux-2gcr:~> ls /lib/modules/
3.16.7-21-desktop  3.16.7-24-desktop

Bovenstaand voorbeeld toont een systeem met twee geïnstalleerde kernels. Een Linux systeem werkt altijd met één bepaalde kernel:

dany@linux-2gcr:~> uname -a
Linux linux-2gcr.site 3.16.7-24-desktop #1 SMP PREEMPT Mon Aug 3 14:37:06 UTC 2015 (ec183cc) x86_64 x86_64 x86_64 GNU/Linux

De uname opdracht toont dat het huidig systeem kernel 3.16.7-24-desktop en dus bijhorende modules in /lib/modules/3.16.7-24-desktop/ gebruikt. Om alle door de kernel geladen modules op te lijsten, gebruik je de lsmod opdracht:

dany@linux-2gcr:~> lsmod
Module                  Size  Used by
ax88179_178a           22508  0                                                                                        
usbnet                 43864  1 ax88179_178a                                                                           
mii                    13934  2 usbnet,ax88179_178a
xt_pkttype             12504  6 
xt_LOG                 17718  18 
xt_limit               12711  18 
ppdev                  17671  0 
parport_pc             41414  0 
parport                46395  2 ppdev,parport_pc
vmw_vsock_vmci_transport    30374  0 
vsock                  38999  1 vmw_vsock_vmci_transport
snd_usb_audio         174132  2 
snd_usbmidi_lib        29779  1 snd_usb_audio
vmw_vmci               71119  1 vmw_vsock_vmci_transport
snd_rawmidi            34923  1 snd_usbmidi_lib
snd_seq_device         14497  1 snd_rawmidi
af_packet              40034  8 
ip6t_REJECT            12939  3 
xt_tcpudp              12884  25 
nf_conntrack_ipv6      14798  4 
nf_defrag_ipv6         34768  1 nf_conntrack_ipv6
ip6table_raw           12683  1 
ipt_REJECT             12541  3 
iptable_raw            12678  1 
xt_CT                  12956  4 
iptable_filter         12810  1 
ip6table_mangle        12700  0 
nf_conntrack_netbios_ns    12665  0 
nf_conntrack_broadcast    12589  1 nf_conntrack_netbios_ns
nf_conntrack_ipv4      14806  4 
nf_defrag_ipv4         12758  1 nf_conntrack_ipv4
ip_tables              27240  2 iptable_filter,iptable_raw
xt_conntrack           12760  8 
nf_conntrack          114273  6 xt_CT,nf_conntrack_netbios_ns,xt_conntrack,nf_conntrack_broadcast,nf_conntrack_ipv4,nf_conntrack_ipv6
ip6table_filter        12815  1 
ip6_tables             27026  3 ip6table_filter,ip6table_mangle,ip6table_raw
x_tables               34059  15 xt_pkttype,ip6table_filter,xt_CT,ip6table_mangle,ip_tables,xt_tcpudp,xt_limit,xt_conntrack,xt_LOG,iptable_filter,ip6table_raw,ipt_REJECT,ip6_tables,iptable_raw,ip6t_REJECT
bnep                   19624  2 
wacom                  67184  0 
hid_sensor_hub         19877  0 
arc4                   12608  2 
nls_iso8859_1          12713  1 
nls_cp437              16991  1 
vfat                   17411  1 
fat                    70078  1 vfat
fuse                  100461  7 
uvcvideo               89131  0 
videobuf2_vmalloc      13216  1 uvcvideo
videobuf2_memops       13362  1 videobuf2_vmalloc
x86_pkg_temp_thermal    14205  0 
videobuf2_core         63200  1 uvcvideo
intel_powerclamp       18823  0 
v4l2_common            15265  1 videobuf2_core
coretemp               13441  0 
videodev              157329  3 uvcvideo,v4l2_common,videobuf2_core
iTCO_wdt               13480  0 
kvm_intel             151748  0 
iTCO_vendor_support    13718  1 iTCO_wdt
kvm                   501446  1 kvm_intel
crct10dif_pclmul       14268  0 
crc32_pclmul           13133  0 
ghash_clmulni_intel    13230  0 
aesni_intel           152552  0 
aes_x86_64             17131  1 aesni_intel
lrw                    13286  1 aesni_intel
gf128mul               14951  1 lrw
glue_helper            13990  1 aesni_intel
ablk_helper            13597  1 aesni_intel
cryptd                 16263  3 ghash_clmulni_intel,aesni_intel,ablk_helper
pcspkr                 12718  0 
ecb                    12815  2 
hid_multitouch         17419  0 
joydev                 17344  0 
snd_hda_codec_conexant    19013  1 
snd_hda_codec_generic    77203  1 snd_hda_codec_conexant
snd_hda_codec_hdmi     55740  1 
btusb                  32448  0 
bluetooth             483238  23 bnep,btusb
6lowpan_iphc           18702  1 bluetooth
iwlmvm                234386  0 
snd_hda_intel          34475  5 
snd_hda_controller     35103  1 snd_hda_intel
mac80211              691383  1 iwlmvm
snd_hda_codec         156066  5 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
snd_hwdep              13602  2 snd_usb_audio,snd_hda_codec
snd_pcm               116857  5 snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller
iwlwifi               135552  1 iwlmvm
serio_raw              13434  0 
battery                23237  0 
ac                     13335  0 
thinkpad_acpi          87443  1 
cfg80211              547052  3 iwlwifi,mac80211,iwlmvm
rfkill                 26772  5 cfg80211,thinkpad_acpi,bluetooth
rtsx_pci               50312  0 
snd_timer              33609  1 snd_pcm
thermal                22971  0 
snd                    87947  27 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_pcm,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,thinkpad_acpi,snd_seq_device
tpm_tis                18581  0 
tpm                    39966  1 tpm_tis
wmi                    19193  0 
i2c_i801               22454  0 
lpc_ich                21093  0 
soundcore              15047  2 snd,snd_hda_codec
intel_smartconnect     12637  0 
mfd_core               13435  3 lpc_ich,rtsx_pci,hid_sensor_hub
mei_me                 23664  0 
mei                    96067  1 mei_me
shpchp                 32951  0 
processor              40484  0 
dm_mod                111114  0 
efivarfs               13268  0 
btrfs                1011342  3 
xor                    21411  1 btrfs
raid6_pq              106004  1 btrfs
crc32c_intel           22094  1 
i915                  987781  6 
i2c_algo_bit           13413  1 i915
drm_kms_helper         65670  1 i915
video                  24419  1 i915
drm                   335594  5 i915,drm_kms_helper
xhci_hcd              178893  0 
button                 13971  1 i915
sg                     40630  0 

Nu kunnen we met de modinfo opdracht informatie van een bepaalde module opvragen. Een algemene beschrijving krijg je met:

dany@linux-2gcr:~> /usr/sbin/modinfo -d usbnet
USB network driver framework

Welk bestand (kernel object) bevat de module?

dany@linux-2gcr:~> /usr/sbin/modinfo -n usbnet
/lib/modules/3.16.7-24-desktop/kernel/drivers/net/usb/usbnet.ko

Welk kernel object module bestand wordt er voor een andere kernel (-k) gebruikt?

dany@linux-2gcr:~> /usr/sbin/modinfo -k 3.16.7-21-desktop -n usbnet
/lib/modules/3.16.7-21-desktop/kernel/drivers/net/usb/usbnet.ko

Wie is de auteur van de module?

dany@linux-2gcr:~> /usr/sbin/modinfo -a usbnet
David Brownell

Welke modules zijn afhankelijk van een bepaalde module?

dany@linux-2gcr:~> /usr/sbin/modinfo -F depends usbnet
mii

Voer modinfo uit zonder opties om alle beschikbare informatie weer te geven

modinfo