Kernel Linux dimuat ke dalam memori oleh boot loader. Modul kernel dimuat dan dibongkar secara dinamis sesuai permintaan. Mereka menyediakan driver perangkat untuk memungkinkan kernel mengakses perangkat keras baru, mendukung berbagai jenis sistem file dan umumnya memperluas fungsionalitas kernel.
Mencantumkan Modul Kernel yang Dimuat
Untuk membuat daftar modul kernel mana yang saat ini dimuat ke dalam kernel, gunakan lsmod memerintah. Perintah ini menghasilkan keluaran dengan membaca /proc/modules mengajukan. Contoh:
# lsmod Module Size Used by ip_tables 27115 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw xfs 985426 2 libcrc32c 12644 1 xfs ...
Digunakan oleh kolom memberikan jumlah total proses yang menggunakan modul dan modul lain yang bergantung padanya, diikuti dengan daftar modul dependen tersebut.
Paket kmod
Perintah lsmod dan file dan utilitas modul kernel lainnya seperti modinfo, modprobe, Depmod, insmod, dan rmmod disediakan oleh paket kmod:
# rpm -qf /sbin/lsmod kmod-20-9.el7.x86_64
Untuk membuat daftar semua file yang disediakan oleh paket kmod, masukkan:
# rpm -ql kmod /etc/depmod.d /etc/depmod.d/dist.conf /etc/modprobe.d /usr/bin/kmod /usr/lib/modprobe.d /usr/sbin/depmod /usr/sbin/insmod /usr/sbin/lsmod /usr/sbin/modinfo /usr/sbin/modprobe /usr/sbin/rmmod /usr/sbin/weak-modules /usr/share/bash-completion/completions/kmod /usr/share/doc/kmod-20 /usr/share/doc/kmod-20/COPYING /usr/share/doc/kmod-20/NEWS /usr/share/doc/kmod-20/README /usr/share/doc/kmod-20/TODO /usr/share/man/man5/depmod.d.5.gz /usr/share/man/man5/modprobe.conf.5.gz /usr/share/man/man5/modprobe.d.5.gz /usr/share/man/man5/modules.dep.5.gz /usr/share/man/man5/modules.dep.bin.5.gz /usr/share/man/man8/depmod.8.gz /usr/share/man/man8/insmod.8.gz /usr/share/man/man8/kmod.8.gz /usr/share/man/man8/lsmod.8.gz /usr/share/man/man8/modinfo.8.gz /usr/share/man/man8/modprobe.8.gz /usr/share/man/man8/rmmod.8.gz
Detail Modul Daftar
Perintah modinfo menampilkan informasi rinci tentang modul kernel tertentu. Misalnya, untuk menampilkan informasi tentang modul kernel iptables, masukkan:
# modinfo ip_tables filename: /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko description: IPv4 packet filter author: Netfilter Core Team [[email protected]] license: GPL rhelversion: 7.3 srcversion: EDBAB32FC38D6942C83A4B1 depends: intree: Y vermagic: 3.10.0-514.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux kernel signing key sig_key: D4:88:63:A7:C1:6F:CC:27:41:23:E6:29:8F:74:F0:57:AF:19:FC:54 sig_hashalgo: sha256
di sini ,
nama file :Jalur absolut dari file objek kernel
deskripsi :Deskripsi singkat modul
alias :Nama alias internal untuk modul, jika ada
tergantung :Daftar modul yang dipisahkan koma tempat modul ini bergantung, jika ada
parm :Nama parameter dan deskripsi singkat
Modul dimuat dari /lib/modules/[kernel_version]/kernel direktori. Misalnya, untuk menampilkan path absolut dari file objek kernel ip_tables, :
# modinfo -n ip_tables /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko
Memuat dan membongkar modul kernel
Memuat modul
Modul kernel dimuat dengan menggunakan perintah modprobe. Manajer perangkat untuk kernel Linux, udev, menggunakan modprobe untuk memuat driver untuk perangkat keras yang terdeteksi secara otomatis. Misalnya untuk memuat modul kernel ip_tables :
# modprobe ip_tables
Untuk memverifikasi bahwa modul telah dimuat :
# lsmod | grep ip_tables ip_tables 27115 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
Modul dependen dimuat terlebih dahulu. Gunakan modprobe –v (verbose) untuk melihat resolusi ketergantungan saat memuat modul kernel. Misalnya :
# modprobe -v nfs insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/fscache/fscache.ko insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/nfs/nfs.koCatatan :modprobe menggunakan perintah insmod untuk memuat modul ke dalam kernel. Namun, jangan gunakan insmod, karena perintah ini tidak menyelesaikan dependensi.
Membongkar Modul
Bongkar modul kernel dengan menggunakan modprobe –r memerintah. Anda juga dapat menggunakan opsi verbose. Misalnya, untuk membongkar modul kernel nfs, masukkan:
# modprobe -rv nfs rmmod nfs rmmod fscacheCatatan :Perintah modprobe –r menggunakan rmmod untuk membongkar modul. Tetapi mirip dengan insmod, tidak disarankan untuk menggunakan rmmod secara langsung untuk membongkar modul kernel.
Modul dibongkar dalam urutan terbalik, dengan modul kernel nfs.ko dibongkar terlebih dahulu diikuti oleh modul yang menjadi ketergantungannya. Modul yang digunakan oleh suatu proses atau modul yang dibutuhkan oleh modul lain yang dimuat tidak diturunkan.
Parameter Modul Kernel
Sama seperti kernel yang dapat menerima parameter waktu boot untuk mengubah perilaku kernel, modul kernel juga dapat menerima parameter untuk memodifikasi perilakunya. Sintaks untuk meneruskan parameter ke modul kernel dengan modprobe adalah:
# modprobe [module_name] [parameter=value]
Beberapa pasangan parameter=nilai dapat diteruskan dengan memisahkan pasangan dengan spasi. Pastikan modul tidak dimuat sebelumnya, karena modprobe tidak memuat ulang modul.
Direktori Konfigurasi untuk modprobe
Direktori konfigurasi untuk modprobe adalah /etc/modprobe.d. Buat file *.conf di /etc/modprobe.d ke:
– Tentukan opsi
– Buat alias
– Ganti perilaku modprobe normal
– Daftar hitam modul kernel
Format file .conf ini adalah satu perintah per baris. Perintah yang valid untuk digunakan dalam file ini meliputi:
alias, options, install, remove, blacklist
Alias
Gunakan sintaks alias alias_name module_name untuk membuat nama alternatif untuk modul kernel. Anda juga dapat menggunakan wildcard shell dalam nama alias. Contoh:
alias usbdevfs usbcore
Opsi
Gunakan opsi sintaks module_name option(s) untuk menambahkan opsi ke module_name. Contoh:
options b43 nohwcrypt=1 qos=0
Instal
Gunakan perintah sintaks install module_name untuk memberi tahu modprobe agar menjalankan perintah shell daripada memasukkan modul ke dalam kernel. Contoh:
install net-pf-6 /bin/true
Hapus
Ini mirip dengan perintah install, kecuali itu dipanggil ketika “modprobe –r” dijalankan. Gunakan sintaks perintah remove module_name untuk memberi tahu “modprobe –r” untuk menjalankan perintah shell daripada membongkar modul dari kernel.
Daftar Hitam
Gunakan sintaks blacklist module_name untuk memberi tahu modprobe agar mengabaikan alias internal modul. Alias internal adalah yang terlihat saat menggunakan perintah modinfo [nama_modul]. Kata kunci daftar hitam biasanya digunakan saat perangkat keras terkait tidak diperlukan, atau saat dua atau lebih modul mendukung perangkat yang sama, atau sebuah modul mengklaim mendukung perangkat secara tidak sah.
Lihat halaman manual modprobe.d untuk informasi lebih lanjut.
# man modprobe.d