로그인
Sign in
조회 수 4751 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

 DKMS(Dynamic Kernel Module Support) 모듈 관리


1. 개 요

DKMS(Dynamic Kernel Module Support)는 커널 모듈이 부팅시 생성되고, 활성화될 수 있도록 해 카널 모듈 적재방식으로, /usr/src 디렉토리에 소스가 위치하고 있어서 부팅시 해당 모듈을 필요로 하는 장치가 있으면 모듈 컴파일을 통하여 커널에 자동으로 적재됩니다. DKMS는 커널 모듈 소스를 컴파일하여 modprobe.conf 파일을 통하여 커널에 적재되도록 하는 것이 아니라, 커널이 최초 부팅될 때 컴파일하여 커널에 적재되록 하는 것으로, 커널이 변경되었을 때 따로 모듈을 컴파일하지 않아도 자동으로 적재되므로, 커널이 업그레이드될 때 별도로 커널 모듈 설정을 하지 않아도 되기 때문에 매우 유용한 방식입니다.


넘버원 리눅스에서는 커널에서 지원하지 않는 모듈이 지원되도록 하고자 할 때 이 방식을 많이 이용합니다. 넘버원 리눅스 2018 SE 버전에서는 PCLinuxOS에서 지원하지 않는 커널 모듈로  broadcom-wl, digimend, huion, r8101, r8168 드라이버 등을 추가로 지원하고 있습니다.


그러면 DKMS로 커널 모듈을 어떻게 관리하는지를 알아봅니다.


 Usage: /usr/sbin/dkms [action] [options]
  [action]  = { add | remove | build | install | uninstall | match
               | mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | status }
  [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
              [-d distro] [-c dkms.conf-location] [-q] [--force] [--all]
              [--templatekernel=kernel] [--directive='cli-directive=cli-value']
              [--config=kernel-.config-location] [--archive=tarball-location]
              [--kernelsourcedir=source-location] [--no-prepare-kernel]
              [--binaries-only] [--source-only] [-r release (SuSE)] [--verbose]
              [--size] [--spec=specfile] [--media=floppy|iso|tar]
              [--binary]


2. 설 치

Step1. DKMS는 /usr/src 디렉토리에 커널 모듈 소스를 두어 관리하게 됩니다. 따라서 /usr/src 디렉토리에 커널모듈 소스를 설치합니다. 그러면 예제 파일로 태블릿 드라이버인 dkms-huion 패키지를 사용해 봅니다.

 # rpm -qpl dkms-huion-1.3-2no1linux.2018.noarch.rpm

 /etc/X11/xorg.conf.d/50-huion.conf
 /usr/src/huion-1.3-2no1linux.2018
 /usr/src/huion-1.3-2no1linux.2018/Makefile
 /usr/src/huion-1.3-2no1linux.2018/Makefile.0000
 /usr/src/huion-1.3-2no1linux.2018/README.md
 /usr/src/huion-1.3-2no1linux.2018/dkms.conf
 /usr/src/huion-1.3-2no1linux.2018/hid-huion.c
 /usr/src/huion-1.3-2no1linux.2018/hid-huion.c.0000
 /usr/src/huion-1.3-2no1linux.2018/hid-huion.conf
 /usr/src/huion-1.3-2no1linux.2018/hid-rebind
 /usr/src/huion-1.3-2no1linux.2018/hid-rebind.rules

상기 RPM 패키지를 설치하게 되면 /usr/src 디렉토리에 소스가 위치하게 됩니다.

Step2. 커널에서 dkms 방식으로 컴파일되어 모듈이 로딩되도록 하기 위해서는 소스가 있는 경로안에 dkms.conf 파일을 만들어 놓아야 합니다.

 PACKAGE_NAME="huion"                                            # 패키지명을 명시합니다.
 PACKAGE_VERSION="huion-1.3-2no1linux.2018"        # 패키지 버전을 명시합니다.
 AUTOINSTALL="yes"                                                     # 부팅시 자동으로 설치할 것인가를 설정합니다.
 MAKE[0]="'make' clean KSRC= modules"                   # 컴파일 방법을 설정합니다.
 BUILT_MODULE_NAME[0]="hid-huion"                        # 컴파일 모듈명을 설정합니다.
 DEST_MODULE_LOCATION[0]="/extra                         # 커널 모듈이 위치할 경로를 명시합니다.

 자세한 dkms.conf 예제에 대해서는 /usr/share/dkms/sample.conf 파일을 참조하면 됩니다.

Step3. dkms 트리에 커널 모듈 소스를 추가합니다.

  dkms add -m 모듈명 -v 모듈버전명

 # dkms add -m huion -v 1.3-2no1linux.2018

  Creating symlink /var/lib/dkms/huion/1.3-2no1linux.2018/source ->
                 /usr/src/huion-1.3-2no1linux.2018

   DKMS: add Completed.

 #

  Step4. 현재 커널에 해당 커널 모듈 소스를 빌드시킵니다.

   dmsk build -m 모듈명 -v 모듈버전명

 # dkms build -m huion -v 1.3-2no1linux.2018

  Preparing kernel 4.15.8-no1linux1 for module build:
  (This is not compiling a kernel, just preparing kernel symbols)
  Storing current .config to be restored when complete
  Running Generic preparation routine
  make clean....
  using /proc/config.gz
  make oldconfig....
  make prepare....

  Building module:
  cleaning build area....
  'make' clean KSRC= modules....
  cleaning build area....
  cleaning kernel tree (make clean)....

  DKMS: build Completed.

Step5. install 명령으로 커널 몯듈을 등록합니다.

  dkms install -m 모듈명 -v 모듈버전명

 # dkms install -m huion -v 1.3-2no1linux.2018
  Running module version sanity check.

  hid-huion.ko:
     - Installation
         - Installing to /lib/modules/4.15.8-no1linux1/extra/

  depmod....

모든 설정이 완료되었습니다. 부팅하게 되면 커널에 hid-huion.ko 모듈이 자동으로 적재됩니다. 만일 커널이 업그레이드되면 부팅시 커널에 자동으로 모듈이 올라가게 됩니다. /etc/modprobe.conf 파일로 커널 모듈을 관리하지 않아도 되기 때문에 참 편리한 커널 모듈 관리 기법 중의 하나라 할 수 있습니다.



List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 넘버원 리눅스 팁은 FAQ 게시판으로 zharyong 2018.07.16 808
209 시스템 [시스템] rpm 패키지는 어떻게 푸나? How to extract RPM package dir... file zharyong 2018.05.27 1255
208 인터넷 [No1.Linux 2018] 공인 인증서 적용 사이트 안내 [No1.Linux 2018 SE] 공인 인증서 적용 사이트 1. 개 요 앞 서 은행에서 공인 인증서로 인터넷 뱅킹을 하는 방법에 대해서 알아보았고... 1 zharyong 2018.05.17 738
207 인터넷 [No1.Linux 2018] 주요 은행의 인터넷 뱅킹 1 file zharyong 2018.05.17 4049
206 더욱 더 편리해진 넘버원리눅스 2019의 강력한 인터넷뱅킹 지원성 2 file zharyong 2018.05.17 14362
205 TodayAPP [Today'sAPP] 내 컴퓨터의 하드웨어 정보를 DB에 등록하고 열람해 보자. file zharyong 2018.05.11 388
204 시스템 [팁] xterm-256color': unknown terminal type 메시지및 MC에서 키보드 사... xterm-256color': unknown terminal type 대책및 MC에서 일부 키보드 사용이 안될 때 버전이 서로 다른 원격 No1.Linux 서버에 접속하... zharyong 2018.05.04 823
203 시스템 [MC] No1.Linux 2018 SE의 mc에서 ISO 파일 내용물을 보려면 file zharyong 2018.05.03 318
202 시스템 [컴파일오류] /usr/bin/ld: cannot find -lgtk-3 컴파일 오류 : /usr/bin/ld: cannot find -lgtk-3에 대한 대책 소스를 컴파일하다보면 다음과 같이 라이브러리 링크 문제가 발생되는 경우가... zharyong 2018.05.01 9601
201 스크립트 [팁] No1.Linux 2018 SE 버전의 부팅시 하드 디스크 자동 마운트 file zharyong 2018.05.01 362
200 엑스 [한글입력기] No1.Linux 2018 SE 한글입력기 2 file zharyong 2018.04.30 3217
199 인터넷 [네트워크] 비번 없이 SSH 서버에 자동 로그인 하기 SSH 서버에 비밀번호 입력없이 자동 로그인하기 1. 개 요 신뢰성이 있는 원격 SSH 서버에 자주 접속하는 경우에 비밀번호를 입력하여 ... zharyong 2018.04.25 609
198 하드웨어 [하드웨어] 블루투쓰 USB 동글 동작하지 않을 경우 file zharyong 2018.04.25 2729
197 시스템 [시스템] 쉘에서 set GTK_DEBUG 관련 오류 메시지가 발생되는 경우 file zharyong 2018.04.24 370
196 [네트워크] 리얼텍 r8168 모듈로 이더넷에 장애가 있을 경우 Realtek 유선이더넷 장치에 문제가 있는 경우 넘버원 리눅스 2018 SE 버전에서 r8168 모듈을 사용하는 이더넷 네트워크 카드 가운데 r8168... zharyong 2018.04.19 1679
» 시스템 [시스템] DKMS(Dynamic Kernel Module Support)를 이용한 모듈 관리 DKMS(Dynamic Kernel Module Support) 모듈 관리 1. 개 요 DKMS(Dynamic Kernel Module Support)는 커널 모듈이 부팅시 생성되고, 활성... zharyong 2018.04.17 4751
194 시스템 [시스템] Alternatives(Update-altenatives)로 하나의 심볼릭 링크로 여러 패... file zharyong 2018.04.17 5849
193 TodayAPP [TodayAPP] 윈도의 캡쳐도구와 유사한 기능의 Ksnip file zharyong 2018.04.15 619
192 스크립트 [스크립트] 이제 카카오톡 설치가 매우 쉬어졌어요! - kakaoinst 1 file zharyong 2018.04.14 10947
191 TodayAPP [TodayAPP] USB 메모리를 빠르게 포맷해 주는 Quick USB Formatter file zharyong 2018.04.14 342
190 활용 [활용] 파이어폭스 스크린샷 기능 및 날씨 보기 file zharyong 2018.04.14 328
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13