以前我使用的是 Ubuntu Gnome,我需要干净启动我的系统,所以我直接使用 Ubuntu 16.04。
在我重新加载的两个系统上,我得到了恒定音量的 OSD(大约每 2-4 分钟出现一次)。
我的两个系统唯一的共同点是它们都共用一个带有音量摇杆的 Logitech G710+ 键盘。
音量摇杆确实起作用。
我该如何诊断导致此问题的原因并理想地修复它。我不想禁用 OSD,因为当我实际更改音量时它很有用。
答案1
您可以开始监控 DBus 的 Notify 调用,您可以使用它来显示干净的输出:
dbus-monitor "type=method_call","path=/org/freedesktop/Notifications","interface=org.freedesktop.Notifications","member=Notify"
以下是输出示例:
method call time=1466117414.215345 sender=:1.45 -> destination=:1.34 serial=51 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "Xfce volume daemon" uint32 0 string "audio-volume-low" string "Volume is at 25%" string "" array [ ] array [ dict entry( string "value" variant int32 25 ) ] int32 -1 method call time=1466117414.215449 sender=:1.49 -> destination=:1.34 serial=2065 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "indicator-sound" uint32 0 string "audio-volume-low" string "Volume" string "Headphones" array [ ] array [ dict entry( string "x-canonical-non-shaped-icon" variant string "true" ) dict entry( string "x-canonical-value-bar-tint" variant string "false" ) dict entry( string "x-canonical-private-synchronous" variant string "true" ) dict entry( string "value" variant int32 26 ) ] int32 -1
检查来源和目的地
最重要的部分是:
method call time=1466117414.215345 sender=:1.45 -> destination=:1.34 ... string "Xfce volume daemon" ... method call time=1466117414.215449 sender=:1.49 -> destination=:1.34 ... string "indicator-sound" ...
打开 D-Feet → Session Bus:检查每个总线地址的 PID 和 CMD。在我的示例中,我发现:
:1.34 2891 /usr/lib/x86_64-linux-gnu/notify-osd :1.45 2933 xfce4-volumed :1.49 2963 /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
indicator-sound-service
是的,每次改变音量时我都会遇到波动xfce4-volumed
(我使用的是 Xubuntu 16.04,并且启用了 Unity 指示器)如果您认为原因可能是键盘,那么使用:
xev
或者更好地sudo evtest
监控 X 键盘事件。