저는 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
패키지를 작업 예제로 사용합니다.