web-dev-qa-db-ja.com

特定のデバイスまたはドライバーからのログメッセージをブロックできますか?

「NVRM:os_raise_smp_barrier()」メッセージがsyslogとdmesgに1分あたり4〜6の割合で表示されます。 Nvidiaグラフィックスドライバーからのものだと思います。

システムは正常に動作しますが、メッセージがログを乱雑にするため、実際の問題を見つけることができません。 (現時点では、dmesgは4,000行で、そのうちの3,925行は同じメッセージです。)

これらのメッセージを抑制またはリダイレクトすることは可能ですか?

ログスニペットの例:

Mar 13 20:38:04 desktop kernel: [175481.413559] NVRM: os_raise_smp_barrier(), invalid context!
Mar 13 20:38:04 desktop kernel: [175481.430904] NVRM: os_raise_smp_barrier(), invalid context!
Mar 13 20:38:45 desktop kernel: [175522.223337] NVRM: os_raise_smp_barrier(), invalid context!
Mar 13 20:38:45 desktop kernel: [175522.239655] NVRM: os_raise_smp_barrier(), invalid context!
Mar 13 20:38:47 desktop kernel: [175523.556706] NVRM: os_raise_smp_barrier(), invalid context!
Mar 13 20:38:47 desktop kernel: [175523.572015] NVRM: os_raise_smp_barrier(), invalid context!
3
j-g-faustus

答えは半分です:特定のドライバーをブロックする方法がわかりませんが、rsyslogには コンテンツのログメッセージをフィルターする のメカニズムがあります。

Rsyslog構成ファイルを編集します。

Sudo nano /etc/rsyslog.d/50-default.conf

ファイルの上部にテキストフィルターを追加し、フィルターに一致するメッセージを別のログにリダイレクトします。

:msg, contains, "NVRM: os_raise_smp_barrier" -/var/log/junk.log
& ~

ファイルを保存してrsyslogを再起動します。

Sudo service rsyslog restart

再起動が機能したことを確認します。

$ tail /var/log/syslog
...
Mar 14 10:38:35 desktop kernel: Kernel logging (proc) stopped.
Mar 14 10:38:35 desktop kernel: imklog 4.2.0, log source = /proc/kmsg started.
Mar 14 10:38:35 desktop rsyslogd: [Origin software="rsyslogd" swVersion="4.2.0" x-pid="18494" x-info="http://www.rsyslog.com"] (re)start
Mar 14 10:38:35 desktop rsyslogd: rsyslogd's groupid changed to 103
Mar 14 10:38:35 desktop rsyslogd: rsyslogd's userid changed to 101

そして/var/logに新しいログファイルが含まれているはずですjunk.logフィルタリングされたメッセージを含みます。

これまでのところ、良いのは、dmesgでは機能しないことだけです。

4
j-g-faustus