Giunsa ang Pag-load ug Pagdiskarga sa mga Module sa Kernel sa Linux


Ang kernel module kay usa ka programa nga mahimong i-load o idiskarga gikan sa kernel kung gikinahanglan, nga dili kinahanglan nga i-compile kini (ang kernel) o i-reboot ang sistema, ug gituyo aron mapalambo ang functionality sa kernel.

Sa kinatibuk-an nga mga termino sa software, ang mga module labi pa o dili kaayo sama sa mga plugin sa usa ka software sama sa WordPress. Ang mga plugins naghatag og mga paagi sa pagpalapad sa software functionality, kung wala sila, ang mga developers kinahanglan nga magtukod og usa ka dako nga software nga adunay tanan nga mga gamit nga gisagol sa usa ka package. Kung gikinahanglan ang bag-ong mga gamit, kinahanglang idugang kini sa mga bag-ong bersyon sa usa ka software.

Ingon usab nga wala’y mga module, ang kernel kinahanglan nga matukod uban ang tanan nga mga gamit nga gisagol direkta sa imahe sa kernel. Kini nagpasabut nga adunay daghang mga kernel, ug ang mga tagdumala sa sistema kinahanglan nga i-compile pag-usab ang kernel matag higayon nga kinahanglan ang usa ka bag-ong gamit.

Usa ka yano nga pananglitan sa usa ka module mao ang usa ka driver sa aparato - nga makapahimo sa kernel nga maka-access sa usa ka sangkap sa hardware/aparato nga konektado sa sistema.

Ilista ang Tanan nga Na-load nga Kernel Module sa Linux

Sa Linux, ang tanang modules matapos sa .ko extension, ug kasagaran kini awtomatikong i-load samtang ang hardware makita sa system boot. Bisan pa, ang usa ka tagdumala sa sistema makahimo sa pagdumala sa mga module gamit ang pipila nga mga mando.

Aron ilista ang tanan nga karon nga gikarga nga mga module sa Linux, mahimo natong gamiton ang lsmod (listahan nga mga module) nga sugo nga nagbasa sa mga sulod sa /proc/modules nga sama niini.

# lsmod
Module                  Size  Used by
rfcomm                 69632  2
pci_stub               16384  1
vboxpci                24576  0
vboxnetadp             28672  0
vboxnetflt             28672  0
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci
bnep                   20480  2
rtsx_usb_ms            20480  0
memstick               20480  1 rtsx_usb_ms
btusb                  45056  0
uvcvideo               90112  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
videobuf2_vmalloc      16384  1 uvcvideo
btintel                16384  1 btusb
videobuf2_memops       16384  1 videobuf2_vmalloc
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
v4l2_common            16384  1 videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl             20480  0
x86_pkg_temp_thermal    16384  0
media                  24576  2 uvcvideo,videodev
....

Giunsa ang Pag-load ug Pagdiskarga (Pagtangtang) Mga Module sa Kernel sa Linux

Sa pag-load sa kernel module, mahimo natong gamiton ang insmod (insert module) command. Dinhi, kinahanglan naton ipiho ang tibuuk nga agianan sa module. Ang sugo sa ubos magsal-ot sa speedstep-lib.ko module.

# insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Aron madiskarga ang usa ka kernel module, among gigamit ang rmmod (pagtangtang module) nga sugo. Ang mosunod nga pananglitan magdiskarga o magtangtang sa speedstep-lib.ko module.

# rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Giunsa Pagdumala ang mga Module sa Kernel Gamit ang Modprobe Command

Ang modprobe usa ka intelihente nga sugo alang sa paglista, pagsal-ot ingon man pagtangtang sa mga module gikan sa kernel. Kini nangita sa module directory /lib/modules/$ (uname -r) para sa tanang modules ug related files, pero wala iapil ang alternatibong configuration files sa /etc/modprobe.d directory.

Dinhi, dili nimo kinahanglan ang hingpit nga agianan sa usa ka module; kini mao ang bentaha sa paggamit sa modprobe sa miaging mga sugo.

Aron makasulod ug module, ihatag lang ang ngalan niini sama sa mosunod.

# modprobe speedstep-lib

Para tangtangon ang module, gamita ang -r flag nga sama niini.

# modprobe -r speedstep-lib

Pahinumdom: Ubos sa modprobe, ang awtomatik nga underscore conversion gihimo, busa walay kalainan tali sa _ ug samtang nagsulod sa mga ngalan sa module.

Para sa dugang nga impormasyon ug mga kapilian sa paggamit, basaha ang modprobe man page.

# man modprobe

Ayaw kalimot sa pagsusi:

  1. Unsaon Pag-ilis sa Kernel Runtime Parameter sa Persistent ug Non-Persistent Way
  2. Unsaon Pag-install o Pag-upgrade sa Pinakabag-o nga Bersyon sa Kernel sa CentOS 7
  3. Unsaon Pag-upgrade sa Kernel sa Pinakabag-ong Bersyon sa Ubuntu

Kana lang sa pagkakaron! Aduna ka bay bisan unsang mapuslanon nga mga ideya, nga gusto nimo nga among idugang sa kini nga giya o mga pangutana, gamita ang porma sa feedback sa ubos aron ihulog kini kanamo.