
私は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
パッケージを作業例として使用します。