モジュールにアクセスするユーザー/プログラムのリストにどのようにアクセスできますか?
私は走る:
lsmod | grep ^uvcvideo
私のカメラを使用するアプリケーションがない場合は、次の行が返されます。
uvcvideo 86016 0
さて、行末の「0」が0(通常は実際には1)以外の値に変更された場合、カメラが使用中であるという通知を送信する機能を実行しています。
0を1に置き換えるプログラムログがあるか、いつどのモジュールにアクセスするかを知りたいです。
答え1
通常、これにはログファイルはありません。しかし、それを作成するために使用できるいくつかのツールがあります!
カーネルには、try_module_get() 関数の組み込みトレースポイントがあります。モジュールの参照カウントをインクリメントする関数です。このトレースポイントはmodule
というサブシステムにありますmodule_get
。
始めるのに役立つようにしてくださいperf trace -a --no-syscalls -e module:module_get -e module:module_put
。プログラム名が表示されますが、PIDを表示しない。