DKMSを使用して、アップデート時にカーネルを自動的にパッチしてインストールします。

DKMSを使用して、アップデート時にカーネルを自動的にパッチしてインストールします。

正しく機能するには、カーネルにファイルをパッチする必要があるシステムがあります。システムでUbuntu 14.04を実行しています。

このパッチでこの問題を解決しましたdrivers/hwmon

したがって、すべてのカーネルを更新したら、カーネルソースをダウンロードし、パッチを適用し、カーネルを再構築してインストールする必要があります。

本質的に、私の問題は次のように非常に似ています。アップデート時に自動的にモジュールパッチを適用してカーネルをコンパイルしますか?、DKMSを使用することをお勧めします。一般的なDKMS文書へのリンクは提供されますが、モジュールパッチの場合は扱いません。

自動的にパッチを実行するようにDKMSを設定する方法を教えてください。ありがとうございます!

ベストアンサー1

モジュールをパッチしても実際の方法は変わりません。デフォルトでは、必要なのは、特定のカーネルモジュールのツリー外のビルドをコンパイルするために必要なすべてのファイルをフォルダに配置し、そのフォルダに/usr/src/<modulename>-</moduleversion>/設定ファイルを追加することです。dkms.conf

デフォルトでは、次のようになります。

MAKE="make -C $kernel_source_dir M=\$(pwd)"
PACKAGE_NAME=hwmon
PACKAGE_VERSION=1.2.3.4
BUILT_MODULE_NAME[0]="hwmon"
DEST_MODULE_LOCATION[0]="/kernel/extra"
AUTOINSTALL=yes

パッチについては見てください。dkms のマニュアルページ抜粋を以下にリンクしてください:

   PATCH[#]=
          Use  the  PATCH directive array to specify patches which should be applied to
          your source before a build occurs.  All patches are expected  to  be  in  -p1
          format  and  are  applied  with the patch -p1 command.  Each directive should
          specify the filename of the patch to apply, and all patches must  be  located
          in  the  patches  subdirectory  of  your  source  directory  ( /usr/src/<mod‐
          ule>-<module-version>/patches/ ).  If any patch fails  to  apply,  the  build
          will  be  halted  and  the rejections can be inspected in /var/lib/dkms/<mod‐
          ule>/<module-version>/build/.  If a PATCH should only be  applied  condition‐
          ally,  the  PATCH_MATCH[#]  array should be used, and a corresponding regular
          expression should be placed in PATCH_MATCH[#] which will alert dkms  to  only
          use that PATCH[#] if the regular expression matches the kernel which the mod‐
          ule is currently being built for.

   PATCH_MATCH[#]=
          See the above description for PATCH[#] directives. If you only want  a  patch
          applied  in  certain  scenarios,  the PATCH_MATCH array should be utilized by
          giving a regular expression which matches the kernels you intend  the  corre‐
          sponding PATCH[#] to be applied to before building that module.

それからdkmsに登録し、モジュールをビルドしてインストールしようとしています。

dkms add     -m hwmon -v 1.2.3.4
dkms build   -m hwmon -v 1.2.3.4
dkms install -m hwmon -v 1.2.3.4

モジュール名とバージョンにプレースホルダを使用しましたが、皆さんも理解しています。この内容はすべて含まれています。dkms のマニュアルページ

おすすめ記事