2

私はカーネルプログラミングが初めてです。を行っているときmodule_param、permission の値が 0 であることに戸惑いました。sysfs ではエントリが取得されず、他のようなものはエントリが取得されると説明されましたS_IRUGO。コンセプトが理解できませんでした。

パーマ値 0 は何を示していますか? sysfs エントリが必要になるのはいつですか? その必要性は何ですか?

よろしくお願いします。前もって感謝します。

4

1 に答える 1

4

いくつかの方法でパラメーターをカーネル モジュールにモジュール化できます。fooという名前のパラメーターを持つカーネルモジュールを想定しますbar

  • ブートローダー構成で提供できるカーネル コマンド ラインを使用します。現在のブートのコマンド ラインを表示するには、 を実行しますcat /proc/cmdline。出力例:BOOT_IMAGE=/vmlinuz root=/dev/sda1 foo.bar=some-value
  • insmodまたはmodprobe:を使用してカーネル モジュールをロードするときmodprobe foo bar=some-value
  • barモジュールがロードされると、通常、モジュールのパラメーターが にfooあることがわかります/sys/module/foo/parameters/bar

権限の値を0指定すると、sysfs エントリが作成されなくなります (上記の 3 番目の箇条書き)。カーネル コードでの使用例は、sysfs でこのパラメーターを公開せずにデバッグを有効にすることです。

読み書き可能なモジュール パラメータの例はacpi. 生成するデバッグ情報を動的に設定できます。acpi.debug_levelカーネル コマンド ラインまたは/sys/module/acpi/parameters/debug_levelsysfs エントリとして使用できます。

于 2013-01-27T22:22:30.820 に答える