web-dev-qa-db-ja.com

モジュールがカスタム構成でロードされているかどうかを確認するにはどうすればよいですか?

Chili555 による回答 システムファイル/etc/modprobe.d/ath9k.confを作成するには? の構成ファイルを作成できることが示されていますカーネルモジュール。ここで問題は、その構成ファイルに設定されているオプションがSudo modprobe ath9kの後に有効になったことをどのように確認するかです。

チェックしようとしている特定のオプションはps_enableです。ただし、次のことを行う

$ modinfo ath9k | grep ps_enable
parm:           ps_enable:Enable WLAN PowerSave (int)

パラメータとは何かを説明するだけで、現在の値は説明しません。

4

TL; DR:_/sys/module/ath9k/parameters/_を参照するか、cat "$(readlink -f /sys/class/net/wlp2s0/device/driver/)"/module/parameters/<param_name>を実行します

明らかにそのような情報は_/sys_ファイルシステムに含まれています。関連する投稿の Gilles's answer によると、インターフェイスで使用されているドライバを見つけるには、次のように実行します

_readlink /sys/class/net/wlan0/device/driver
_

のように相対パスを提供します

_../../../../bus/pci/drivers/ath5k
_

私の場合 systemdおよび予測インターフェースの命名 のため、インターフェースの名前は異なり、生成されます

_$  readlink /sys/class/net/wlp2s0/device/driver
../../../../bus/pci/drivers/ath9k
_

結果のディレクトリパスには、サブディレクトリ_module/parameters/_が含まれます。ここには、現在の値を含む各パラメーターのファイルがあります。したがって、_/etc/modprobe/ath9k.conf_ファイルを編集してモジュールを再挿入すると、結果は次のようになります。

_# After editing the conf file to set parameter to 1
$ Sudo sh -c 'modprobe -r ath9k ; sleep 3; modprobe ath9k'
$ Sudo cat  /sys/class/net/wlp2s0/device/driver/../../../../bus/pci/drivers/ath9k/module/parameters/ps_enable
1
# after editing the file and setting parameter to 0
$ Sudo sh -c 'modprobe -r ath9k ; sleep 3; modprobe ath9k'
$ Sudo cat  /sys/class/net/wlp2s0/device/driver/../../../../bus/pci/drivers/ath9k/module/parameters/ps_enable
0
_

コマンドも組み合わせることができます。

_$ cat  "$(readlink -f /sys/class/net/wlp2s0/device/driver/)"/module/parameters/ps_enable
0
_

代替の_/sys_パスも_/sys/modules_になります。インターフェイスで使用されているドライバーがすでにわかっている場合は、おそらくより望ましいので、readlinkの部分をスキップできます。私の特定のケースでは

_/sys/module/ath9k/parameters/ps_enable
_

または

_/sys/module/ath9k/drivers/pci\:ath9k/module/parameters/
_

sysfs(5)マニュアルによると、「このサブディレクトリには、カーネルに読み込まれるモジュールごとに1つのサブディレクトリが含まれています。」


インターフェイスで使用されているドライバーを特定する別の方法もあります(必要に応じて、モジュールのconfファイルを編集しているということは、インターフェイスが使用しているモジュールがわかっていることを意味しますが、必要な場合は代替としてそれを残します)。デスクトップ環境があり、dbusが実行されており、さらに qdbus または_dbus-send_がインストールされている場合、このような情報はNetwork Managerのdbusインターフェース(ただし、個々のデバイスのオブジェクトパスを把握する必要があり、おそらくPythonまたはC)で記述した方がよいでしょう。

_$ qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Devices/14 org.freedesktop.NetworkManager.Device.Driver
ath9k
_
4