GNU/Linux >> Znalost Linux >  >> Linux

Zobrazte informace o modulu jádra Linuxu pomocí příkazu Modinfo

Tento stručný průvodce vysvětluje, co je modul Linux Kernel , jak vypsat aktuálně načtené moduly jádra pomocí lsmod a jak zobrazit informace o modulu Linux Kernel pomocí modinfo příkaz v Linuxu.

Co je modul jádra Linuxu?

Linuxové jádro je hlavní součástí operačního systému GNU/Linux. Funkčnost linuxového jádra lze rozšířit bez nutnosti restartu systému pomocí modulů jádra . Modul jádra je část kódu, kterou lze na vyžádání načíst a uvolnit do jádra.

Některé příklady modulů jádra jsou firmware a ovladače zařízení, které umožňují linuxovému jádru přistupovat a ovládat hardware připojený k systému. Obecně se moduly jádra používají k přidání podpory pro nový hardware (jako ovladače zařízení) a/nebo systémy souborů nebo pro přidání systémových volání .

Bez modulů jádra musíme znovu sestavit a restartovat jádro pokaždé, když chceme novou funkcionalitu. Potřebujeme také vytvořit větší monolitická jádra a přidat nové funkce přímo do obrazu jádra bez modulů jádra. S pomocí modulů jádra se těmto problémům můžeme jednoduše vyhnout.

Moduly jádra jsou obvykle uloženy pod Moduly jsou uloženy v /usr/lib/modules/<kernel_release_directory> .

$ ls /usr/lib/modules/5.11.18-300.fc34.x86_64/
 bls.conf                   modules.builtin.bin      modules.symbols
 build                      modules.builtin.modinfo  modules.symbols.bin
 config                     modules.dep              source
 extra                      modules.dep.bin          symvers.gz
 kernel                     modules.devname          System.map
 modules.alias              modules.drm              updates
 modules.alias.bin          modules.modesetting      vdso
 modules.block              modules.networking       vmlinuz
 modules.builtin            modules.order            weak-updates
 modules.builtin.alias.bin  modules.softdep

Moduly jádra jsou v různých operačních systémech označovány různými názvy. Například modul jádra je ve FreeBSD označován jako kernel loadable module (kld), kernel extension (kext) v macOS, kernel extension module v AIX, ovladač režimu jádra ve Windows NT a downloadable kernel module (DKM) ve VxWorks. Jsou také známé jako kernel loadable modules (nebo KLM) a jednoduše jako kernel modules (KMOD).

Seznam modulů Linux Kernel pomocí příkazu lsmod

Můžeme zobrazit seznam modulů jádra, které jsou aktuálně načteny do jádra pomocí lsmod (seznam modulů) příkaz jako níže:

$ lsmod

Ukázkový výstup:

 Module                  Size  Used by
 vhost_net              32768  0
 vhost                  57344  1 vhost_net
 vhost_iotlb            16384  1 vhost
 tap                    28672  1 vhost_net
 tun                    57344  1 vhost_net
 rfcomm                 90112  4
 snd_seq_dummy          16384  0
 snd_hrtimer            16384  1
 xt_CHECKSUM            16384  1
 xt_MASQUERADE          20480  3
 xt_conntrack           16384  1
 ipt_REJECT             16384  2
 nf_nat_tftp            16384  0
 nf_conntrack_tftp      20480  3 nf_nat_tftp
 bridge                290816  0
 stp                    16384  1 bridge
 llc                    16384  2 bridge,stp
 ccm                    20480  6
 nft_objref             16384  2
 nf_conntrack_netbios_ns    16384  1
 nf_conntrack_broadcast    16384  1 nf_conntrack_netbios_ns
 nft_fib_inet           16384  1
[...]

Příkaz lsmod získává podrobnosti o aktuálně načtených modulech jádra ze souboru /proc/modules .

Doufám, že získáte základní představu o tom, co jsou moduly Linux Kernel a jak vypsat aktuálně načtené moduly v Linux Kernel. Pojďme dále a podívejme se, jak zobrazit podrobnosti konkrétního modulu jádra.

Zobrazte informace o modulu Linux Kernel pomocí příkazu modinfo

modinfo zobrazí podrobné informace o daném modulu jádra. Ve výchozím nastavení uvádí atributy modulu jádra ve tvaru fieldname : value , pro snadné čtení.

Chcete-li zobrazit informace o modulu jádra systému Linux, například 88XXau , což je bezdrátový adaptér TP-Link AC600 (Archer T2U Nano) , spustit:

$ modinfo 88XXau

Ukázkový výstup:

filename:       /lib/modules/5.11.18-300.fc34.x86_64/extra/88XXau.ko.xz
 version:        v5.6.4.2_35491.20191025
 author:         Realtek Semiconductor Corp.
 description:    Realtek Wireless Lan Driver
 license:        GPL
 srcversion:     4EC0EE17404B8E38B323235
 alias:          usb:v7392pB611ddcdscdpiciscipin
 alias:          usb:v7392pA813ddcdscdpiciscipin
 alias:          usb:v7392pA812ddcdscdpiciscipin
 alias:          usb:v7392pA811ddcdscdpiciscipin
 alias:          usb:v3823p6249ddcdscdpiciscipin
 alias:          usb:v2357p0122ddcdscdpiciscipin
 alias:          usb:v2357p0120ddcdscdpiciscipin
[...]

Nepřipojujte .ko rozšíření na konec názvu modulu jádra. Protože názvy modulů jádra nemají přípony, ale jejich odpovídající soubory ano.

Zobrazit určité podrobnosti o modulech jádra

Když spustíte modinfo bez jakýchkoli voleb, zobrazí se celá řada informací o daném modulu jádra. Výsledek můžete zúžit zobrazením pouze určitých polí, jako je author , description , license , parm , depends a alias . Následující příkazy zobrazí podrobnosti o každém poli 88XXau modul.

1. Zobrazit autora modulu jádra (dodavatele)

Chcete-li zobrazit, kdo napsal modul jádra, použijte author vlajka.

$ modinfo -F author 88XXau
Realtek Semiconductor Corp.

2. Zobrazit popis modulu jádra

Chcete-li vytisknout popis modulu jádra, použijte description vlajka.

$ modinfo -F description 88XXau
Realtek Wireless Lan Driver

3. Zobrazit licenci modulu jádra

Znalost licence modulu jádra může být užitečná, když chcete vědět, zda je firmware a ovladače otevřený nebo uzavřený zdroj. Některé distribuce Linuxu mohou ve výchozím nastavení obsahovat nesvobodné ovladače. Chcete-li ověřit, zda je disk zařízení volný nebo nesvobodný, zkontrolujte přiloženou licenci.

$ modinfo -F license 88XXau
GPL

Většina modulů jádra je licencována pod GPL (GNU Public License). Několik modulů může mít duální licenci, například BSD a GPL .

$ modinfo -F license zram
 Dual BSD/GPL

4. Zobrazit parametry modulu jádra

Chcete-li zobrazit parametry modulu jádra, spusťte:

$ modinfo -F parm 88XXau
rtw_wireless_mode: (int)
rtw_monitor_overwrite_seqnum:Overwrite the sequence number of injected frames (int)
rtw_monitor_retransmit:Retransmit injected frames (int)
rtw_monitor_disable_1m:Disable default 1Mbps rate for monitor injected frames (int)
rtw_ips_mode:The default IPS mode (int)
rtw_lps_level:The default LPS level (int)
[...]

5. Zobrazit závislosti modulů jádra

Chcete-li zobrazit závislosti modulu jádra, spusťte:

$ modinfo -F depends 88XXau
cfg80211

Můžete také použít -a/--author , -d/--description , -l/--license , -p/--parameters flags pro zobrazení konkrétních detailů modulů jádra. Toto jsou pouze zkratky pro --field autor vlajky, popis, licence a parm. Můžete například použít -l nebo --license příznak pro zobrazení licence modulu jádra.

$ modinfo -l kvm

Nebo,

$ modinfo --license kvm

Výše uvedené příkazy jsou ekvivalentní následujícímu příkazu:

$ modinfo -F license kvm

Další podrobnosti o modinfo příkaz, podívejte se do jeho manuálových stránek.

$ man modinfo

Doufám, že to pomůže.

Související čtení:

  • Vypsat nebo zkontrolovat všechna nainstalovaná jádra Linuxu z příkazového řádku
  • Spravujte a monitorujte moduly jádra Linuxu pomocí Kmon

Linux
  1. JQ Command v Linuxu s příklady

  2. Jak používat příkaz Rmmod v systému Linux s příklady

  3. Linux – poskvrněné jádro v Linuxu?

  1. wc Linux Command s příklady

  2. Jak používat příkaz typu (zobrazit informace o příkazu) v Linuxu

  3. Příkaz Linux ls

  1. Linux ip příkaz s příklady

  2. Příkaz Dmesg v Linuxu

  3. Příkaz Lsmod v Linuxu (Seznam modulů jádra)