필요한 커널모듈을 현재 커널이 사용할 수 있도록 설치하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,618 조회
- 0 추천
- 목록
본문
필요한 커널모듈을 현재 커널이 사용할 수 있도록 설치하기
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-01 21:59 build -> ../../../usr/src/kernels/4.6.27.5-117.fc10.i686 drwxr-xr-x 2 root root 4096 2008-11-19 02:30 extra drwxr-xr-x 9 root root 4096 2008-12-01 21:59 kernel -rw-r--r-- 1 root root 424520 2008-12-01 21:59 modules.alias -rw-r--r-- 1 root root 365657 2008-12-01 21:59 modules.alias.bin -rw-r--r-- 1 root root 1571 2008-11-19 02:30 modules.block -rw-r--r-- 1 root root 69 2008-12-01 21:59 modules.ccwmap -rw-r--r-- 1 root root 344478 2008-12-01 21:59 modules.dep -rw-r--r-- 1 root root 443107 2008-12-01 21:59 modules.dep.bin -rw-r--r-- 1 root root 147 2008-12-01 21:59 modules.ieee1394map -rw-r--r-- 1 root root 375 2008-12-01 21:59 modules.inputmap -rw-r--r-- 1 root root 13391 2008-12-01 21:59 modules.isapnpmap -rw-r--r-- 1 root root 10 2008-11-19 02:30 modules.modesetting -rw-r--r-- 1 root root 1697 2008-11-19 02:30 modules.networking -rw-r--r-- 1 root root 74 2008-12-01 21:59 modules.ofmap -rw-r--r-- 1 root root 65921 2008-11-19 02:30 modules.order -rw-r--r-- 1 root root 289661 2008-12-01 21:59 modules.pcimap -rw-r--r-- 1 root root 1135 2008-12-01 21:59 modules.seriomap -rw-r--r-- 1 root root 144524 2008-12-01 21:59 modules.symbols -rw-r--r-- 1 root root 192435 2008-12-01 21:59 modules.symbols.bin -rw-r--r-- 1 root root 617761 2008-12-01 21:59 modules.usbmap lrwxrwxrwx 1 root root 5 2008-12-01 21:59 source -> build drwxr-xr-x 2 root root 4096 2008-11-19 02:30 updates drwxr-xr-x 2 root root 4096 2008-12-01 21:59 vdso drwxr-xr-x 2 root root 4096 2008-11-19 02: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-01 21:59 arch drwxr-xr-x 3 root root 4096 2008-12-01 21:59 crypto drwxr-xr-x 46 root root 4096 2008-12-01 21:59 drivers drwxr-xr-x 47 root root 4096 2008-12-01 21:59 fs drwxr-xr-x 5 root root 4096 2008-12-01 21:59 lib drwxr-xr-x 32 root root 4096 2008-12-01 21:59 net drwxr-xr-x 9 root root 4096 2008-12-01 21: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-19 02: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-19 02: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커널모듈을 확인할 수 있습니다.
이와 같은 방법으로 커널이 사용할 수 있도록 커널모듈을 로드 할 수 있습니다.
관련자료
-
이전
-
다음