패키지 관리자를 사용하여 고유 드라이버를 설치하고 로드하는 방법

패키지 관리자를 사용하여 고유 드라이버를 설치하고 로드하는 방법

저는 Linux 패키지 관리자의 전문가가 아닙니다.

임베디드 장치를 위한 완전히 새로운 커널 드라이버를 개발하면 이를 Linux 이미지에 추가하고 부팅 시 로드할 수 있습니다 insmod.modprobe

apt-get하지만 패키지 관리자를 사용하여 Linux 터미널에서 이 드라이버를 설치하고 로드하도록 하려면 어떻게 해야 합니까?

답변1

모듈을 패키징하고 다음을 사용하는 것이 좋습니다.데이터 관리 시스템실제 컴파일 및 설치를 담당합니다. 이를 통해 새 커널이 설치될 때마다 모듈이 다시 빌드됩니다.

이렇게하려면 다음이 필요합니다.

  • Makefile모듈 구축 기능 제공 (커널 모듈과 동일)

  • 모듈을 파일로 설명하십시오 dkms.conf.예를 들어

    PACKAGE_VERSION="1.2.3"
    PACKAGE_NAME="my_module"
    CLEAN="make clean"
    BUILT_MODULE_NAME[0]="my_module"
    BUILT_MODULE_LOCATION[0]="/src"
    DEST_MODULE_LOCATION[0]="/extra"
    MAKE[0]="make KVER=$kernelver -C ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build"
    AUTOINSTALL="yes"
    
  • 모듈을 빌드하지 않고 패키징하세요. debian/rules파일은 다음과 같습니다.

    #!/usr/bin/make -f
    
    PACKAGE_NAME=$(shell grep PACKAGE_NAME= dkms.conf | cut -d= -f2 | cut -d\" -f2)
    PACKAGE_VERSION=$(shell grep PACKAGE_VERSION= dkms.conf | cut -d= -f2 | cut -d\" -f2)
    export PACKAGE_NAME PACKAGE_VERSION
    
    %:
      dh $@
    
    # Nothing to configure, build or auto-install (this all happens after
    # installation using dkms)
    override_dh_auto_configure:
    override_dh_auto_build:
    override_dh_auto_install:
    

    파일 은 debian/install설치해야 하는 다양한 소스 파일을 선언합니다.예를 들어

    #!/bin/sh
    
    for dir in src Makefile; do
        echo ${dir} /usr/src/${PACKAGE_NAME}-${PACKAGE_VERSION}
    done
    
  • 빌드 의존성은 dh-sequence-dkms다른 모든 것을 처리합니다.

내 것 좀 봐ddcci패키지를 작업 예제로 사용합니다.

관련 정보