Warum werden Module geladen, die nicht verwendet werden?

530
juanp_1982

Ich arbeite mit ArchLinux mit einem Standard-Linux-Kernel und spiele mit lsmod herum. Ich habe festgestellt, dass es ungefähr 20 Module für Hardware gibt, die ich nicht habe oder die für nichts verwendet werden. Ich habe /etc/modules-load.d überprüft / und /etc/modprobe.d/ und beide Verzeichnisse sind leer. Ich wollte sehen, was geladen wurde

$ lsmod | awk ''  Module Used by fuse 3  rfcomm 2  ipt_MASQUERADE 1  nf_nat_masquerade_ipv4 1 ipt_MASQUERADE nf_conntrack_netlink 0  nfnetlink 2 nf_conntrack_netlink xfrm_user 1  xfrm_algo 1 xfrm_user iptable_nat 1  nf_conntrack_ipv4 3  nf_defrag_ipv4 1 nf_conntrack_ipv4 nf_nat_ipv4 1 iptable_nat xt_addrtype 2  iptable_filter 1  xt_conntrack 1  nf_nat 2 nf_nat_masquerade_ipv4,nf_nat_ipv4 nf_conntrack 7 nf_conntrack_ipv4,ipt_MASQUERADE,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat  br_netfilter 0  bridge 1 br_netfilter stp 1 bridge llc 2 bridge,stp overlay 0  bnep 2  uvcvideo 0  rtsx_usb_sdmmc 0  rtsx_usb_ms 0  videobuf2_vmalloc 1 uvcvideo mmc_core 1 rtsx_usb_sdmmc memstick 1 rtsx_usb_ms videobuf2_memops 1 videobuf2_vmalloc dm_thin_pool 1  dm_persistent_data 1 dm_thin_pool dm_bio_prison 1 dm_thin_pool dm_bufio 1 dm_persistent_data libcrc32c 3 nf_conntrack,dm_persistent_data,nf_nat crc32c_generic 0  videobuf2_v4l2 1 uvcvideo videobuf2_core 2 uvcvideo,videobuf2_v4l2 videodev 3 uvcvideo,videobuf2_core,videobuf2_v4l2 btusb 0  rtsx_usb 2 rtsx_usb_sdmmc,rtsx_usb_ms btrtl 1 btusb media 2 uvcvideo,videodev dm_mod 11 dm_bufio,dm_persistent_data,dm_thin_pool  dax 1 dm_mod intel_rapl 0  x86_pkg_temp_thermal 0  intel_powerclamp 0  coretemp 0  nls_iso8859_1 1  kvm_intel 0  nls_cp437 1  kvm 1 kvm_intel vfat 1  fat 1 vfat snd_soc_skl 0  snd_soc_skl_ipc 1 snd_soc_skl joydev 0  arc4 2  snd_hda_codec_hdmi 1  mousedev 0  snd_hda_codec_conexant 1  snd_hda_codec_generic 1 snd_hda_codec_conexant iwlmvm 0  snd_soc_sst_ipc 1 snd_soc_skl_ipc iTCO_wdt 1  snd_soc_sst_dsp 1 snd_soc_skl_ipc mac80211 1 iwlmvm iTCO_vendor_support 1 iTCO_wdt snd_hda_ext_core 1 snd_soc_skl snd_soc_sst_match 1 snd_soc_skl irqbypass 1 kvm iwlwifi 1 iwlmvm evdev 23  snd_soc_core 1 snd_soc_skl crct10dif_pclmul 0  crc32_pclmul 0  crc32c_intel 1  ghash_clmulni_intel 0  snd_compress 1 snd_soc_core snd_pcm_dmaengine 1 snd_soc_core pcbc 0  ac97_bus 1 snd_soc_core aesni_intel 0  aes_x86_64 1 aesni_intel ideapad_laptop 0  crypto_simd 1 aesni_intel glue_helper 1 aesni_intel hci_uart 0  btbcm 2 hci_uart,btusb btqca 1 hci_uart btintel 2 hci_uart,btusb bluetooth 33 btrtl,hci_uart,btintel,btqca,bnep,btbcm,rfcomm,btusb  input_leds 0  cfg80211 3 iwlmvm,iwlwifi,mac80211 cryptd 3 crypto_simd,ghash_clmulni_intel,aesni_intel  led_class 3 iwlmvm,rtsx_usb_sdmmc,input_leds ecdh_generic 1 bluetooth sparse_keymap 1 ideapad_laptop mac_hid 0  snd_hda_intel 6  rfkill 6 bluetooth,ideapad_laptop,cfg80211 r8169 0  mii 1 r8169 snd_hda_codec 4 snd_hda_intel,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_codec_generic  intel_cstate 0  intel_rapl_perf 0  snd_hda_core 7 snd_hda_intel,snd_hda_codec_conexant,snd_hda_codec,snd_hda_ext_core,snd_soc_skl,snd_hda_codec_hdmi,snd_hda_codec_generic  snd_hwdep 1 snd_hda_codec i915 33  ucsi 0  psmouse 0  pcspkr 0  snd_pcm 8 snd_hda_intel,snd_hda_codec,snd_pcm_dmaengine,snd_hda_ext_core,snd_hda_core,snd_soc_skl,snd_hda_codec_hdmi,snd_soc_core  wmi 1 ideapad_laptop snd_timer 1 snd_pcm snd 22 snd_compress,snd_hda_intel,snd_hwdep,snd_hda_codec_conexant,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_soc_core,snd_pcm  video 2 i915,ideapad_laptop battery 0  soundcore 1 snd drm_kms_helper 1 i915 intel_lpss_acpi 0  intel_lpss 1 intel_lpss_acpi i2c_hid 0  drm 30 i915,drm_kms_helper shpchp 0  tpm_tis 0  button 1 i915 mei_me 0  mei 1 mei_me intel_gtt 1 i915 syscopyarea 1 drm_kms_helper sysfillrect 1 drm_kms_helper sysimgblt 1 drm_kms_helper fb_sys_fops 1 drm_kms_helper tpm_tis_core 1 tpm_tis i2c_algo_bit 1 i915 tpm 2 tpm_tis,tpm_tis_core intel_pch_thermal 0  i2c_i801 0  acpi_pad 0  sch_fq_codel 2  ac 0  vboxnetflt 0  vboxnetadp 0  pci_stub 1  vboxpci 0  vboxdrv 3 vboxnetadp,vboxnetflt,vboxpci ip_tables 2 iptable_filter,iptable_nat x_tables 5 ip_tables,iptable_filter,ipt_MASQUERADE,xt_addrtype,xt_conntrack ext4 2  crc16 2 bluetooth,ext4 jbd2 1 ext4 fscrypto 1 ext4 mbcache 1 ext4 hid_logitech_hidpp 0  hid_logitech_dj 0  usbhid 0  hid 6 i2c_hid,usbhid,hid_logitech_dj,hid_logitech_hidpp  sr_mod 0  cdrom 1 sr_mod sd_mod 6  serio_raw 0  atkbd 0  libps2 2 atkbd,psmouse ahci 5  libahci 1 ahci xhci_pci 0  xhci_hcd 1 xhci_pci libata 2 ahci,libahci usbcore 7 uvcvideo,usbhid,xhci_pci,rtsx_usb,btusb,xhci_hcd  scsi_mod 3 sd_mod,libata,sr_mod usb_common 1 usbcore i8042 1 ideapad_laptop serio 6 serio_raw,atkbd,psmouse,i8042 

Bitte beachten Sie, dass ich nur 3 Spalten drucke: Modul, Verwendet und von.

dann greife ich zu den Modulen, die verwendet werden == 0 und durch == "" und ich habe diese erhalten

$ lsmod | awk '' | grep acpi_pad acpi_pad 0  $ lsmod | awk '' | grep battery battery 0  $ lsmod | awk '' | grep joydev joydev 0 

Meine Frage ist also, warum diese Module geladen werden. zu welchen Zwecken ist es sicher, sie auf die schwarze Liste zu setzen?

Danke im Voraus!

:-)

2

1 Antwort auf die Frage

1
dirkt

Sie werden geladen, weil sie irgendwann einmal verwendet wurden, möglicherweise indirekt, z. B. während des Startvorgangs. Derzeit werden jedoch keine Anwendungen verwendet.

Es ist für rmmodsie sicher (sie werden nur dann neu geladen, wenn sie benötigt werden), aber es ist nicht sicher, sie auf eine schwarze Liste zu setzen (da das, was sie brauchen, dann nicht funktioniert, werden sie in der Zukunft nicht funktionieren, wenn Sie sich dazu entscheiden, sie zu benutzen dieser Teil Ihrer Hardware).

Sie nehmen nur wenig von Ihrem Gedächtnis in Anspruch, so dass Sie sich um sie keine Sorgen machen müssen. Lass einfach alles so wie es ist.