パッケージマネージャを使用して独自のドライバをインストールしてロードする方法

パッケージマネージャを使用して独自のドライバをインストールしてロードする方法

私はLinuxパッケージマネージャの専門家ではありません。

組み込みデバイス用のまったく新しいカーネルドライバを開発すると、それをLinuxイメージに追加して起動時にロードできますinsmodmodprobe

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

おすすめ記事