正しく機能するには、カーネルにファイルをパッチする必要があるシステムがあります。システムで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 のマニュアルページ。