web-dev-qa-db-ja.com

modprobe.dブラックリストを上書きする

Ubuntu 18.04を使用しています。起動時にモジュールをロードしようとしています。問題のモジュールはiTCO_wdtです。カーネルモジュールのブラックリストへの登録については多くの質問がありますが、私は1つをホワイトリストに登録しようとしています。

起動時にモジュールをロードするために実行した手順は次のとおりです。

  1. iTCO_wdtを/ etc/modulesに追加します(/etc/modules-load.d/modules.confにシンボリックリンクされています)
  2. /etc/modprobe.d/blacklist-watchdog.confのblacklist iTCO_wdt行をコメント化します

これで十分だと思いましたが、syslogはまだモジュールがブラックリストに登録されていることを示していました。

systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted

調査の結果、モジュールは/lib/modprobe.dにあるメンテナがインストールしたいくつかのブラックリストファイルにもブラックリストに登録されていることがわかりました。

$ grep -l 'blacklist iTCO_wdt' /lib/modprobe.d/*
/lib/modprobe.d/blacklist_linux_4.15.0-20-generic.conf
/lib/modprobe.d/blacklist_linux_4.15.0-23-generic.conf

Linux_4.15.0.23-genericが現在のカーネルである場合、linux_4.15.0.20-generic.confファイルがマシンの動作に影響を与えることを期待していないため、各ファイルがmodprobeの動作に影響を与えることがわかりました。

これらの各ファイルのblacklist iTCO_wdt行をコメントアウトして再起動した後、モジュールが自動的にロードされました。これは望ましい動作です。

だから、私がそれを見ると、それが/lib/modprobe.dファイルによってブラックリストに載っていても、モジュールをロードさせることができるいくつかの方法があります:

  • 各ファイルのblacklist iTCO_wdt行を手動でコメント化
  • 起動時に実行される独自のスクリプトでモジュールをロードします

問題は、将来のアップデートで新しい/lib/modprobe.dブラックリストファイルがインストールされ、iTCO_wdtが再ブラックリストされる可能性があることです。このことを考慮すると、私の最善の選択肢は最後の選択肢のようですが、組み込みのモジュール読み込みシステムではなく独自のスクリプトに依存しているため、本当に好きではありません。

カーネルを更新するたびに/lib/modprobe.dファイルを編集したくないことを考えると、モジュール読み込みシステムでiTCO_wdtモジュールを永続的にホワイトリストに登録するための最良の方法は何ですか?

4
millinon

私はまさにこの問題に遭遇しました。私が見つけた解決策( http://www.sat.dundee.ac.uk/psc/watchdog/Linux-Watchdog.html のウォッチドッグドキュメントを読むことによって)は、カーネルの名前を編集することモジュール(iTCO_wdt)を/ etc/default/watchdogに追加します。したがって、行を変更します。

watchdog_module = "none"

watchdog_module = "iTCO_wdt"

ブラックリストファイルやその他のものを変更する必要はありませんでした-それは(Mint 19.1で)機能しました!

ドキュメントに記載されているように、これはOPによって記述された動作とsystemdのバグと見なされているように見えるものを回避します

1
user57115

実際には、これもinitrd(ramdisk)によってブロックされています。 ramdiskのブラックリスト設定も更新する必要があります。

$ Sudo update-initramfs -u

0
Fy Ly