起動時にカーネルモジュールをロードするオプション

起動時にカーネルモジュールをロードするオプション

Qualcomm Atherosドライバを使用するデバイスがあり、それを再インストールしました。デバイスを正しく使用するには、次のオプションを使用してモジュールをロードする必要があります。

sudo modprobe -r ath10k_pci      # remove module
sudo modprobe -r ath10k_core     # remove module
sudo modprobe ath10k_core rawmode=1 cryptmode=1
sudo modprobe ath10k_pci

以下を使用して、モジュールが正しくロードされていることを確認できますsystool -v -m ath10k_core

Module = "ath10k_core"

  Attributes:
    coresize            = "503808"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "1"
    srcversion          = "8846560394C80047DEEC13F"
    taint               = ""
    uevent              = <store method only>

  Parameters:
    coredump_mask       = "3"
    cryptmode           = "1"
    debug_mask          = "0"
    fw_diag_log         = "N"
    rawmode             = "Y"
    skip_otp            = "N"
    uart_print          = "N"

  Sections:

それでは、起動時に自動的にこれを実行したいと思います。私はこの投稿を使用しました:systemd:起動時に自動的にmodprobeコマンドを実行します。

ファイルを作成しました/etc/modules-load.d/ath10k_core.conf

options ath10k_core rawmode=1 cryptmode=1

しかし、起動すると結果systool -v -m ath10k_coreは次のようになります。

Module = "ath10k_core"

  Attributes:
    coresize            = "503808"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "1"
    srcversion          = "8846560394C80047DEEC13F"
    taint               = ""
    uevent              = <store method only>

  Parameters:
    coredump_mask       = "3"
    cryptmode           = "0"
    debug_mask          = "0"
    fw_diag_log         = "N"
    rawmode             = "N"
    skip_otp            = "N"
    uart_print          = "N"

  Sections:

したがって、モジュールが正しくロードされていないため、手動で実行する必要があります。

このコマンドの結果は次journalctl -u systemd-modules-load.serviceのとおりです。

déc. 07 17:07:18 ubuntu-machine systemd-modules-load[263]: Failed to find module 'options ath10k_core rawmode=1 cryptmode=1'

私はUbuntu 20.04を実行しています。私の設定に問題がありますか?

ベストアンサー1

無効な構成ファイルが表示されます。/etc/modules-load.d/すぐに必要でない場合でも、起動段階でカーネルモジュールをロードするようにシステムに指示します。

systemd-modules-load.service(8)起動中にロードするカーネルモジュールの静的リストを含む上記のディレクトリからファイルを読み込みます。各設定ファイルは /etc/modules-load.d/program.confこのような静的構成ではなく、PCI ID、USB ID、DMI ID、またはカーネルモジュール自体にコーディングされた同様のトリガーを使用してモジュールを自動的にロードする方が良い考えです。実際、ほとんどの最新のカーネルモジュールは自動的にロードされる準備ができています。

これは通常次にコピーされます。ファイルシステムの初期化bootファイルに保存されているため、この現象は非常に早く発生します。構文エラーのため、現在のファイルはというカーネルモジュールをロードするように指示しますが、options options ath10k_core rawmode=1 cryptmode=1そのモジュールがないため失敗します。

この部分は、システムにモジュールにオプションを追加するよう指示しません。実際にはほとんど必要ありません。

カスタムモジュールオプションを定義するには、次のものがあります。/etc/modprobe.d/(およびその他のシステム予約場所):

このmodprobeコマンドは複数のモジュールを追加または削除でき、モジュールには依存関係があるため、これらのモジュールに使用するオプションを指定する方法が必要です。/etc/modprobe.d拡張子で終わるディレクトリ内のすべてのファイルには、.conf必要に応じてこれらのオプションが割り当てられます。また、便利なエイリアス(モジュールの代替名)を作成するために使用したり、特別な要件(たとえば、複数のモジュールを挿入したり)がある場合は、一般的なmodprobe動作を完全にオーバーライドすることもできます。

modprobe 道路カーネルによって検出されたばかりのハードウェアモジュールをロードするためのヘルパープログラムとして実行されます(前述のPCI IDなどを介して)。

したがって、コンテンツは次のように移動する必要があります/etc/modprobe.d/ath10k_core.conf

options ath10k_core rawmode=1 cryptmode=1

私はあなたがそれを早くロードする必要はないと思います(単純な行を使用してinのath10k_core後ろに来ることができます)。ただし、そうすることを選択した場合は、オプションもコピーされるように一度実行することをお勧めします。ath10k_pci/etc/modules-load.d/ath10k_core.confupdate-initramfs -uファイルシステムの初期化そうしないと、次のカーネルのアップグレードまで失敗し続けることがあります。

おすすめ記事