手机连接到USB时如何防止通知和图标弹出窗口?


12

条件:电话连接到USB时,无关的通知和弹出窗口。
差异条件:USB电源管理故障,网卡管理故障。
支持:通知,弹出窗口和dmesg警告大多在电源状态达到最大高电平时发生,但在电源状态百分比保持恒定时变得相当稳定。

当我的手机通过USB连接到笔记本电脑时,文件管理器会保持打开状态(图1和2)。左侧栏中也有弹出图标(图3)。进行网络共享时,还会频繁打开/关闭互联网连接通知(图4和5)。劣质电缆会增加这些烦恼的频率。所有类型的通知每分钟可以多次。当电池达到高功率状态时,它们的速率增加,但是当电池充满电时,它们的速率保持稳定。

  • 在这里做了wjandrea的解决问题的建议 ,它的状态。gsettings set org.gnome.desktop.media-handling automount-open falseautomount-opendmesg | tail

只需将设备保持与笔记本电脑的连接,就会看到大约10-30个错误窗口(图1和2),以及手机的右侧图标来回弹出(图3)。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

  • 我做了wjandrea的第二个建议gsettings set org.gnome.desktop.media-handling automount false。但是,三星手机的图标会一次又一次地在左侧栏中弹出。它通常在笔记本电脑充满电时发生,因此可能是电源管理中的问题。它的dmesg | tail状态在这里(另请参见图3),这是第一次发生,并且主要是在我的笔记本电脑达到其最大电池状态时出现的。

第二个dmesg的子集在这里

[    5.788819] wl: module license 'MIXED/Proprietary' taints kernel.
[    5.788820] Disabling lock debugging due to kernel taint
[    5.789154] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input8
[    5.797453] wl: module verification failed: signature and/or required key missing - tainting kernel
[    5.812002] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input9
[    5.812092] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input10
[    5.812165] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input11
[    5.981764] intel_rapl: Found RAPL domain package
[    5.981769] intel_rapl: Found RAPL domain core
[    5.981771] intel_rapl: Found RAPL domain uncore
[    5.981772] intel_rapl: Found RAPL domain dram
[    6.024117] wlan0: Broadcom BCM43a0 802.11 Hybrid Wireless Controller 6.30.223.248 (r487574)
[    6.030416] applesmc: key=561 fan=1 temp=33 index=33 acc=0 lux=2 kbd=1
[    6.050130] wl 0000:03:00.0 wlp3s0: renamed from wlan0
[    6.242168] Non-volatile memory driver v1.3
[    6.428191] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[    6.862799] input: bcm5974 as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.2/input/input12
[    6.862926] usbcore: registered new interface driver bcm5974
[    7.053663] fuse init (API version 7.24)
[    7.329118] Bluetooth: Core ver 2.21
[    7.329540] NET: Registered protocol family 31
[    7.329543] Bluetooth: HCI device and connection manager initialized
[    7.329548] Bluetooth: HCI socket layer initialized
[    7.329551] Bluetooth: L2CAP socket layer initialized
[    7.329558] Bluetooth: SCO socket layer initialized
[    7.350445] usbcore: registered new interface driver btusb
[    7.355183] Bluetooth: hci0: BCM: chip id 73 build 0932
[    7.356184] Bluetooth: hci0: BCM: product 05ac:828f
[    7.372192] Bluetooth: hci0: BCM20702B0 Generic USB Class 1 @ 20 MHz
[    7.391321] usb 1-3.1: USB disconnect, device number 5
[    7.634631] usb 1-3.2: USB disconnect, device number 6
[    8.363517] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.363521] Bluetooth: BNEP filters: protocol multicast
[    8.363525] Bluetooth: BNEP socket layer initialized
[    8.377953] Bluetooth: RFCOMM TTY layer initialized
[    8.377960] Bluetooth: RFCOMM socket layer initialized
[    8.377965] Bluetooth: RFCOMM ver 1.11
[   78.943062] usb 1-1: USB disconnect, device number 2
[   79.308530] usb 1-1: new high-speed USB device number 8 using xhci_hcd
[   79.437071] usb 1-1: New USB device found, idVendor=04e8, idProduct=6863
[   79.437079] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   79.437083] usb 1-1: Product: SAMSUNG_Android
[   79.437086] usb 1-1: Manufacturer: SAMSUNG
[   79.437089] usb 1-1: SerialNumber: d068730a
[   79.978452] usbcore: registered new interface driver cdc_ether
[   79.981649] rndis_host 1-1:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-1, RNDIS device, 02:57:00:57:38:37
[   79.981726] usbcore: registered new interface driver rndis_host
[   79.983854] rndis_host 1-1:1.0 enp0s20u1: renamed from usb0
[   80.011403] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1: link is not ready
[ 1290.235637] usb 1-1: USB disconnect, device number 8
[ 1290.235777] rndis_host 1-1:1.0 enp0s20u1: unregister 'rndis_host' usb-0000:00:14.0-1, RNDIS device
[ 1290.591107] usb 1-1: new high-speed USB device number 9 using xhci_hcd
[ 1290.719964] usb 1-1: New USB device found, idVendor=04e8, idProduct=6863
[ 1290.719973] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1290.719977] usb 1-1: Product: SAMSUNG_Android
[ 1290.719981] usb 1-1: Manufacturer: SAMSUNG
[ 1290.719984] usb 1-1: SerialNumber: d068730a
[ 1290.722251] rndis_host 1-1:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-1, RNDIS device, 02:57:00:57:38:37
[ 1291.255806] rndis_host 1-1:1.0 enp0s20u1: renamed from usb0
[ 1291.277892] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1: link is not ready
[ 1870.316573] usb 1-1: USB disconnect, device number 9
[ 1870.316687] rndis_host 1-1:1.0 enp0s20u1: unregister 'rndis_host' usb-0000:00:14.0-1, RNDIS device
[ 1871.735777] usb 1-1: new high-speed USB device number 10 using xhci_hcd
[ 1871.865681] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 1871.865687] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1871.865690] usb 1-1: Product: SAMSUNG_Android
[ 1871.865692] usb 1-1: Manufacturer: SAMSUNG
[ 1871.865694] usb 1-1: SerialNumber: d068730a
[ 2265.887618] usb 1-1: USB disconnect, device number 10
[ 2268.395967] usb 1-1: new high-speed USB device number 11 using xhci_hcd
[ 2268.524992] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 2268.524998] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2268.525001] usb 1-1: Product: SAMSUNG_Android
[ 2268.525003] usb 1-1: Manufacturer: SAMSUNG
[ 2268.525005] usb 1-1: SerialNumber: d068730a
[ 2389.754208] usb 1-1: USB disconnect, device number 11
[ 2451.283233] usb 1-1: new high-speed USB device number 12 using xhci_hcd
[ 2451.412713] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 2451.412719] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2451.412722] usb 1-1: Product: SAMSUNG_Android
[ 2451.412725] usb 1-1: Manufacturer: SAMSUNG
[ 2451.412727] usb 1-1: SerialNumber: d068730a
[ 4253.278282] usb 1-1: USB disconnect, device number 12
[ 4254.096939] usb 1-1: new high-speed USB device number 13 using xhci_hcd
[ 4259.392860] usb 1-1: new high-speed USB device number 14 using xhci_hcd
[ 4259.522162] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 4259.522167] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4259.522170] usb 1-1: Product: SAMSUNG_Android
[ 4259.522173] usb 1-1: Manufacturer: SAMSUNG
[ 4259.522175] usb 1-1: SerialNumber: d068730a
[ 4259.731917] usb 1-1: USB disconnect, device number 14
[ 4260.068777] usb 1-1: new high-speed USB device number 15 using xhci_hcd
[ 4260.200384] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 4260.200389] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4260.200392] usb 1-1: Product: SAMSUNG_Android
[ 4260.200395] usb 1-1: Manufacturer: SAMSUNG
[ 4260.200397] usb 1-1: SerialNumber: d068730a
[ 4487.825779] usb 1-1: USB disconnect, device number 15
[ 4488.457511] usb 1-1: new high-speed USB device number 16 using xhci_hcd
[ 4488.643676] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 4488.643682] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4488.643685] usb 1-1: Product: SAMSUNG_Android
[ 4488.643687] usb 1-1: Manufacturer: SAMSUNG
[ 4488.643689] usb 1-1: SerialNumber: d068730a
[ 4507.592538] usb 1-1: USB disconnect, device number 16
[ 4507.929239] usb 1-1: new high-speed USB device number 17 using xhci_hcd
[ 4508.115547] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860
[ 4508.115553] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4508.115556] usb 1-1: Product: SAMSUNG_Android
[ 4508.115558] usb 1-1: Manufacturer: SAMSUNG
[ 4508.115560] usb 1-1: SerialNumber: d068730a

在此处输入图片说明

在此处输入图片说明

其他建议

  • Sneetsher。它在第一天工作。下周我会告诉你它是如何工作的。

    > sudo -i 
    > sed 's/LABEL="libmtp_usb_rules"/LABEL="libmtp_usb_rules"\n\n#Masi, ignore my phone\nATTR{idVendor}=="04e8", ATTR{idProduct}=="6863", GOTO="libmtp_rules_end"/g' /lib/udev/rules.d/69-libmtp.rules | sudo tee /etc/udev/rules.d/69-libmtp.rules \
    udevadm control --reload-rules
    
    # TODO for long time monitoring
    

电话:三星银河S4 gt-i9506,带有淡马锡的CyanogenMod 13 的非官方ROM,具有足够的补丁
Ubuntu版本:16.04
Linux内核:4.4和4.6
Linux内核选项:wl
Bash:4.3.42(1)-release(x86_64-pc-linux- gnu)
笔记本电脑:2013年中Macbook Air
USB:两个USB3端口(最高5 Gbps)(此处为官方规格)
网卡驱动程序:非免费Broadcom-sta-dkms(请参阅此处
电话中的VPN:NordVPN美国udp服务器
VPN与路由器防火墙进行wifi连接时,在笔记本电脑中使用:NordVPN EE udp服务器

  • 支持1:电源状态的负变化(-1%)与通知相关。
  • 支持2:不稳定的互联网连接会消耗大量电量(\ Delta P = 1%)。
  • 支持3:受VPN保护的互联网连接大大减少了通知数量。

3
万一您尚未执行此操作(并且还因为我很好奇这是否对行为有影响),请执行系统设置->详细信息->可移动媒体,然后勾选Never prompt or start programs on media insertion会更改“文件”用气质电缆开口?我通常这样做是因为我讨厌插入多分区的USB或外部HD并同时打开多个File实例。
pHeLiOn

@pHeLiOn是的,我认为这与wjandrea的答案是一样的。
莱奥波德·赫兹(LéoLéopoldHertz)2016年

@Masi这是一个不同的dconf设置,org.gnome.desktop.media-handling autorun-never但是它做同样的事情,因为它会覆盖org.gnome.desktop.media-handling automount-open
wjandrea

@Masi,您只有USB3端口吗?
user.dz

1
@Sneetsher是:Two USB 3 ports (up to 5 Gbps)。这里规格support.apple.com/kb/SP678?locale=en_US
莱奥列奥波尔德·赫兹준 영

Answers:


3

dconf是检查这种情况的地方。

dconf是一个低级配置系统和设置管理。其主要目的是在尚未具有配置存储系统的平台上为GSettings和KSettings提供后端。这取决于GLib。它是GNOME 3的一部分,是GConf的替代品。〜维基百科

为此,您需要如下安装dconf编辑器

sudo apt-get update
sudo apt-get install dconf-tools

要打开dconf编辑器

Alt + F2

要么

转到应用程序>系统工具> dconf编辑器

现在在侧边栏中的dconf编辑器中

组织> gnome>桌面>媒体处理

取消选中automount-open选项。

以下是16.04中dconf-editor的屏幕截图:

16.04中的dconf编辑器


1
这具有使ubuntu不能自动挂载任何文件系统的副作用,就像他们说的那样,是用大锤
砸破

1
@Masi您正在寻找的命令是gsettings set org.gnome.desktop.media-handling automount-open false。根据我在dconf中的经验,冒号表示一个映射,就像使用键盘选项一样。
wjandrea

1
@amiaschanner我刚刚尝试过,它实际上可以自动挂载。禁用的是自动打开驱动器。
wjandrea

@Masi我已 在16.04中附加了dconf-editor的屏幕截图,其工作方式与14.04相似。
Dhaval Simaria

2

CLI版本的@ Dhaval-Simaria的答案:

gsettings set org.gnome.desktop.media-handling automount-open false

注意Ubuntu附带gsettings; 它不需要安装。


编辑更新的信息:由于错误消息报告安装失败,请尝试禁用自动安装:

gsettings set org.gnome.desktop.media-handling automount false

4
dconf-editor是的图形前端gsettings。您不需要它,但它通常很有用。
wjandrea

@wjandrea感谢您展示解决方案的另一面(可能更简单)。
Dhaval Simaria

1
@Masi Ah,您最初的问题不是很清楚,所以我认为您提到的通知是弹出nautilus窗口。我已经编辑了答案以说明新信息。
wjandrea

这两个命令都不足够。使用笔记本电脑10个小时后,我开始一次又一次出现左侧栏的图标。
莱奥波德·赫兹(LéoLéopoldHertz),2016年

@Masi为什么您要继续删除您的评论?当您这样做时,它将使该线程难以为将来的读者阅读。
wjandrea

1

如果您运行Xubuntu,这真的很容易,因为它具有配置面板来选择自动挂载行为。只需转到设置>硬件>可移动驱动器和介质,然后取消选中相关选项:

在此处输入图片说明


1

注意:以下所有命令都需要root权限,因此请先使用sudo -i或切换到root shell sudo su。如果要直接与一起运行sudo <cmd>,请参阅在将sudo与重定向一起使用时,出现“权限被拒绝”的情况

  • 为libmtp设置udev规则以忽略您的手机型号:

    sed 's/LABEL="libmtp_usb_rules"/LABEL="libmtp_usb_rules"\n\n#Masi, ignore my phone\nATTR{idVendor}=="04e8", ATTR{idProduct}=="6863", GOTO="libmtp_rules_end"/g' /lib/udev/rules.d/69-libmtp.rules > /etc/udev/rules.d/69-libmtp.rules; \
    udevadm control --reload-rules
    

    回滚:

    rm /etc/udev/rules.d/69-libmtp.rules
    
  • 对于所有USB节点

    echo "DRIVERS==\"usb\", RUN+=\"/bin/sh -c 'echo 1 > /sys%p/remove'\" > /etc/udev/rules.d/99-usb-fallen-leaves.rules; \
    udevadm control --reload-rules
    

    回滚:

    rm /etc/udev/rules.d/99-usb-fallen-leaves.rules
    

    +重启

  • 这里是另一种不需要重启的方法。

    1. 使用以下脚本生成取消绑定和绑定脚本:

      作为脚本 usb-ctrl-gen.sh

      #!/bin/sh
      
      c=$(pwd)
      
      for o in "unbind" "bind"
      do
      
        cd $c
      
        echo Generate usb-$o.sh... 
      
        echo "#!/bin/sh\n" > usb-$o.sh
        chmod +x usb-$o.sh
        for d in /sys/bus/pci/drivers/[uex]hci* ; do cd $d; find $d -type l -iname "0000*" -printf 'echo "%f" > ' -exec echo $d/$o \;;  done >> usb-$o.sh
      
      done
      
      echo Done
      

      或一行:

      c=$(pwd); for o in "unbind" "bind"; do echo Generate usb-$o.sh...; echo "#\!/bin/sh\n" > usb-$o.sh; chmod +x usb-$o.sh; for d in /sys/bus/pci/drivers/[uex]hci*; do cd $d; find $d -type l -iname "0000*" -printf 'echo "%f" > ' -exec echo $d/$o \;;  done >> usb-$o.sh; cd $c; done; echo Done
      

      输出示例:

      usb-unbind.sh

      #!/bin/sh 
      
      echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci-pci/unbind
      echo "0000:00:1d.0" > /sys/bus/pci/drivers/ehci-pci/unbind
      echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
      

      usb-bind.sh

      #!/bin/sh
      
      echo "0000:00:1a.0" > /sys/bus/pci/drivers/ehci-pci/bind
      echo "0000:00:1d.0" > /sys/bus/pci/drivers/ehci-pci/bind
      echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/bind
      
    2. 添加usb-unbind.sh以/etc/profile在启动时运行。必要时,使用usb-bind.sh启用USB控制器。

      echo $(pwd)/usb-unbind.sh > /etc/profile.d/usb-unbind-hook.sh
      

    返回角色:

    rm /etc/profile.d/usb-unbind-hook.sh
    

    参考: 如何从命令行重置USB设备?


1
如何制定忽略所有电话和所有USB设备的规则?我只想在需要时在笔记本电脑中显式启动它们。最好什么都不要。我不想只有一部电话,因为我有很多电话以及许多其他设备。这不仅仅是一台设备。
莱奥波德·赫兹(LéoLéopoldHertz)2016年

1
@Masi更新答案。
user.dz

1

您应该研究udev规则。使用它们,您可以阻止一台设备,而不会影响任何其他USB设备。您可以通过在中创建文件来定义自己的udev规则/etc/udev/rules.d/,例如 /etc/udev/rules.d/51-block-phone-mount.rules

现在找到设备的idVendor和idProduct。它们很好用,因为它们大多数都是产品独有的,因此您可以使用它们在udev规则中标识设备。

使用列出您的USB设备,lsusb并获得类似以下信息:

Bus 002 Device 002: ID 8087:8002 Intel Corp.  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub  
Bus 001 Device 002: ID 8087:800a Intel Corp.  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
Bus 004 Device 002: ID 0424:2660 Standard Microsystems Corp.  
Bus 004 Device 003: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard  
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

相关的部分是总线和设备,例如总线004和设备003。随sudo lsusb -vs 004:003 | grep -E 'idProduct|idVendor'您将获得必要的信息,例如:

idVendor           0x03f0 Hewlett-Packard  
idProduct          0x0024 KU-0316 Keyboard

这意味着您/etc/udev/rules.d/51-block-phone-mount.rules需要插入以下内容:

#Phone automount block  
SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0024", ATTR{authorized}="0"

您只需重新插入电话并检查其是否可以工作,便可以立即尝试。


0

我也有一个类似的问题,即一加一的USB插座略微有些杂乱,这使它每5分钟左右启动一个鹦鹉螺窗口。

我发现防止这种情况的最有效方法是,使udev完全忽略它,方法是匹配USB供应商和型号ID,然后将设备设置为未经授权的模式。这样,您可以专门防止该设备在不影响其他任何情况的情况下触发更上游的任何内容(例如自动安装)。

如何执行udev黑名单 https://projectgus.com/2014/09/blacklisting-a-single-usb-device-from-linux/

三星手机指南 http://blog.vacs.fr/vacs/blogs/post.html?post=2010/12/24/How-to-repair-the-USB-not-detected-problem-on-Android -三星手机


1
您能否提供有关您的答案的摘要,而不是仅链接的答案。我不了解您的答案在实践中(从设置media-handling到没有)有何不同automount-open。该链接似乎具有一些电话端解决方案。可能是我的问题中有两个问题。我使用的三星手机(银河S4 GT-I9506),
莱奥列奥波尔德·赫兹준 영
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.