강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

필요한 커널모듈을 현재 커널이 사용할 수 있도록 설치하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

필요한 커널모듈을 현재 커널이 사용할 수 있도록 설치하기

 

 

 

 

insmod는 현재 실행중인 커널에 로드 가능한(loadable) 모듈을 설치하는 모듈관련 명령어입니다.

 

 

 

 하지만 대부분의 시스템관리자들이 insmod명령어를 대신하여 modprobe를 사용하고 있습니다.

 

 

 

 참고하시기 바랍니다.

 

 

 

 그리고 insmod 명령어와 함께 알아두셔야 할 명령어는 lsmod rmmod입니다.

 

 

 

 , lsmod는 현재 로드 되어있는 모듈리스트를 확인하는 명령어이며, rmmod insmod와 반대되는 명령어로서 현재 로드 되어있는 모듈들을 제거하는 명령어입니다.

 

 

 

 

 

명령어위치 : /sbin/insmod

 

사용형식 : insmod [ filename ] [ module options ... ]

 

 

 

 

먼저 아래와 같이 lsmod명령어로 현재 로드(load)되어 있는 커널모듈(Kernel Module)들을 확인한 예입니다.

 

 

 

 , 아래 lsmod의 실행결과로 출력된 여러 개의 모듈들은 로드되어 있는 상태이므로 커널이 사용 가능한 모듈들임을 의미합니다.

 

 

 

 

 

[root@su250 ~]# lsmod

Module                  Size  Used by

sco                    12932  2

bridge                 43668  0

stp                     6148  1 bridge

bnep                   14848  2

l2cap                  21504  3 bnep

bluetooth              48608  5 sco,bnep,l2cap

sunrpc                155924  3

ip6t_REJECT             7296  2

nf_conntrack_ipv6      15864  2

ip6table_filter         6400  1

ip6_tables             14736  1 ip6table_filter

ipv6                  230132  20 ip6t_REJECT,nf_conntrack_ipv6

dm_multipath           17164  0

uinput                 10624  0

ppdev                  10372  0

floppy                 51988  0

snd_ens1371            24196  0

pcspkr                  6272  0

gameport               13452  1 snd_ens1371

snd_rawmidi            22528  1 snd_ens1371

snd_ac97_codec         95264  1 snd_ens1371

ac97_bus                5504  1 snd_ac97_codec

snd_seq_dummy           6660  0

snd_seq_oss            30364  0

snd_seq_midi_event      9600  1 snd_seq_oss

snd_seq                48576  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event

snd_seq_device         10124  4 snd_rawmidi,snd_seq_dummy,snd_seq_oss,snd_seq

snd_pcm_oss            42496  0

snd_mixer_oss          16896  1 snd_pcm_oss

snd_pcm                65924  3 snd_ens1371,snd_ac97_codec,snd_pcm_oss

snd_timer              22024  2 snd_seq,snd_pcm

snd                    50616  11 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq_dummy,mixer_oss,snd_pcm,snd_timer

soundcore               9416  1 snd

snd_page_alloc         11016  1 snd_pcm

pcnet32                31476  0

parport_pc             25620  0

mii                     8192  1 pcnet32

parport                31956  2 ppdev,parport_pc

i2c_piix4              12688  0

i2c_core               21396  1 i2c_piix4

mptspi                 18824  4

mptscsih               30848  1 mptspi

mptbase                68052  2 mptspi,mptscsih

scsi_transport_spi     21760  1 mptspi

[root@su250 ~]#

 

 

 

 

 

위의 예에서 Used항목값이 0이면 현재 사용되지 않고 있다는 의미로서 rmmod명령어를 이용하여 제거가 가능한 모듈임을 의미합니다.

 

 

 

 

 

이제 필요한 모듈을 커널이 사용할 수 있도록 설정하는 작업에 대한 예를 보겠습니다.

 

 

 

 일단 커널모듈파일들이 어디에 존재하는가를 알아야 합니다.

 

 

 

 리눅스에서 커널모듈파일들은 모두 /lib/modules/라는 디렉토리에 각 커널버전에 따른 서브디렉토리에 각각 존재합니다.

 

 

 

 다음 예를 보십시오. 아래의 예는 현재 시스템의 커널이 사용하고 있는 모듈파일들이 존재하는 디렉토리들을 나타낸 것입니다.

 

 

 

 

 

[root@su250 ~]# ls -l /lib/modules/4.6.27.5-117.fc10.i686/

합계 2944

lrwxrwxrwx 1 root root     47 2008-12-0121:59 build -> ../../../usr/src/kernels/4.6.27.5-117.fc10.i686

drwxr-xr-x 2 root root   4096 2008-11-1902:30 extra

drwxr-xr-x 9 root root   4096 2008-12-0121:59 kernel

-rw-r--r-- 1 root root 424520 2008-12-0121:59 modules.alias

-rw-r--r-- 1 root root 365657 2008-12-0121:59 modules.alias.bin

-rw-r--r-- 1 root root   1571 2008-11-1902:30 modules.block

-rw-r--r-- 1 root root     69 2008-12-0121:59 modules.ccwmap

-rw-r--r-- 1 root root 344478 2008-12-0121:59 modules.dep

-rw-r--r-- 1 root root 443107 2008-12-0121:59 modules.dep.bin

-rw-r--r-- 1 root root    147 2008-12-0121:59 modules.ieee1394map

-rw-r--r-- 1 root root    375 2008-12-0121:59 modules.inputmap

-rw-r--r-- 1 root root  13391 2008-12-0121:59 modules.isapnpmap

-rw-r--r-- 1 root root     10 2008-11-1902:30 modules.modesetting

-rw-r--r-- 1 root root   1697 2008-11-1902:30 modules.networking

-rw-r--r-- 1 root root     74 2008-12-0121:59 modules.ofmap

-rw-r--r-- 1 root root  65921 2008-11-1902:30 modules.order

-rw-r--r-- 1 root root 289661 2008-12-0121:59 modules.pcimap

-rw-r--r-- 1 root root   1135 2008-12-0121:59 modules.seriomap

-rw-r--r-- 1 root root 144524 2008-12-0121:59 modules.symbols

-rw-r--r-- 1 root root 192435 2008-12-0121:59 modules.symbols.bin

-rw-r--r-- 1 root root 617761 2008-12-0121:59 modules.usbmap

lrwxrwxrwx 1 root root      5 2008-12-0121:59 source -> build

drwxr-xr-x 2 root root   4096 2008-11-1902:30 updates

drwxr-xr-x 2 root root   4096 2008-12-0121:59 vdso

drwxr-xr-x 2 root root   4096 2008-11-1902:30 weak-updates

[root@su250 ~]#

[root@su250 ~]# ls -l /lib/modules/4.6.27.5-117.fc10.i686/kernel/

합계 28

drwxr-xr-x  3 root root 4096 2008-12-0121:59 arch

drwxr-xr-x  3 root root 4096 2008-12-0121:59 crypto

drwxr-xr-x 46 root root 4096 2008-12-0121:59 drivers

drwxr-xr-x 47 root root 4096 2008-12-0121:59 fs

drwxr-xr-x  5 root root 4096 2008-12-0121:59 lib

drwxr-xr-x 32 root root 4096 2008-12-0121:59 net

drwxr-xr-x  9 root root 4096 2008-12-0121:59 sound

[root@su250 ~]#

 

 

 

 

위의 디렉토리들에는 용도에 맞는 커널모듈파일들이 디렉토리내에 각각 존재합니다.

 

 

 

 여기에 존재하는 커널모듈파일들을 커널이 사용할 수 있도록 로드하는 작업을 insmod명령어로 수행해 보겠습니다.

 

 

 

 

 

다음은 autofs라는 이름의 커널모듈을 insmod명령어로 로드하는 예입니다.

 

 

 

 로드 한 후에 로드가 정상적으로 수행되었는가를 확인하기 위하여 lsmod로 확인한 것입니다.

 

 

 

 결국 insmod명령어로 이 모듈파일들을 커널이 사용할 수 있도록 설정한 후에는 커널에서 이 모듈을 사용할 수 있습니다.

 

 

 

 

 

[root@su250 ~]# ls -l /lib/modules/4.6.27.5-117.fc10.i686/kernel/fs/autofs/autofs.ko

-rwxr--r-- 1 root root 19168 2008-11-1902:38 /lib/modules/4.6.27.5-117.fc10.i686/kernel/fs/autofs/autofs.ko

[root@su250 ~]#

[root@su250 ~]#

[root@su250 ~]# insmod /lib/modules/4.6.27.5-117.fc10.i686/kernel/fs/autofs/autofs.ko

[root@su250 ~]#

[root@su250 ~]# lsmod | grep autofs

autofs                 15488  0

[root@su250 ~]#

 

 

 

 

그리고 다음은 ssb.ko라는 모듈을 insmod명령어로 로드 한 예입니다.

 

 

 

 역시 로드 한 후에 동일한 방법으로 lsmod를 실행하여 커널모듈을 확인하였습니다.

 

 

 

 

 

[root@su250 ssb]# ls -l /lib/modules/4.6.27.5-117.fc10.i686/kernel/drivers/ssb/ssb.ko

-rwxr--r-- 1 root root 43216 2008-11-1902:38 /lib/modules/4.6.27.5-117.fc10.i686/kernel/drivers/ssb/ssb.ko

[root@su250 ssb]#

[root@su250 ssb]# lsmod | grep ssb

[root@su250 ssb]#

[root@su250 ssb]# insmod /lib/modules/4.6.27.5-117.fc10.i686/kernel/drivers/ssb/ssb.ko

[root@su250 ssb]#

[root@su250 ssb]# lsmod | grep ssb

ssb                    36228  0

[root@su250 ssb]#

 

 

 

 

그리고 다음은 이렇게 설치된 두개의 모듈이 로드되어 있는가를 확인하기 위하여  다시 한번lsmod를 다시 실행한 것입니다.

 

 

 

 

 

[root@su250 ssb]# lsmod

Module                  Size  Used by

ssb                    36228  0

autofs                 15488  0

sco                    12932  2

bridge                 43668  0

stp                     6148  1 bridge

bnep                   14848  2

l2cap                  21504  3 bnep

bluetooth              48608  5 sco,bnep,l2cap

sunrpc                155924  3

ip6t_REJECT             7296  2

nf_conntrack_ipv6      15864  2

ip6table_filter         6400  1

ip6_tables             14736  1 ip6table_filter

ipv6                  230132  20 ip6t_REJECT,nf_conntrack_ipv6

dm_multipath           17164  0

uinput                 10624  0

ppdev                  10372  0

floppy                 51988  0

snd_ens1371            24196  0

pcspkr                  6272  0

gameport               13452  1 snd_ens1371

snd_rawmidi            22528  1 snd_ens1371

snd_ac97_codec         95264  1 snd_ens1371

ac97_bus                5504  1 snd_ac97_codec

snd_seq_dummy           6660  0

snd_seq_midi_event      9600  0

snd_seq                48576  2 snd_seq_dummy,snd_seq_midi_event

snd_seq_device         10124  3 snd_rawmidi,snd_seq_dummy,snd_seq

snd_pcm_oss            42496  0

snd_mixer_oss          16896  1 snd_pcm_oss

snd_pcm                65924  3 snd_ens1371,snd_ac97_codec,snd_pcm_oss

snd_timer              22024  2 snd_seq,snd_pcm

snd                    50616  10 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq_dummy,snd_mixer_oss,snd_pcm,snd_timer

soundcore               9416  1 snd

snd_page_alloc         11016  1 snd_pcm

pcnet32                31476  0

parport_pc             25620  0

mii                     8192  1 pcnet32

parport                31956  2 ppdev,parport_pc

i2c_piix4              12688  0

i2c_core               21396  1 i2c_piix4

mptspi                 18824  4

mptscsih               30848  1 mptspi

mptbase                68052  2 mptspi,mptscsih

scsi_transport_spi     21760  1 mptspi

[root@su250 ssb]#

 

 

 

 

위의 lsmod결과에서 새로 로드 된 autofs커널모듈과 ssb커널모듈을 확인할 수 있습니다.

 

 

 

  이와 같은 방법으로 커널이 사용할 수 있도록 커널모듈을 로드 할 수 있습니다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,908 개
  • 현재 접속자 :  222 명