Como evito notificações e pop-ups de ícones quando o telefone está conectado ao USB?


12

Condição: notificações e pop-ups estranhas quando o telefone está conectado ao USB.
Condições diferenciais: falha no gerenciamento de energia com USB, falha no gerenciamento da placa de rede.
Suporte: notificações, pop-ups e avisos dmesg ocorrem principalmente quando o estado de energia atinge o máximo máximo, mas tornam-se estáveis ​​quando a porcentagem de estado de energia permanece constante.

O gerenciador de arquivos continua sendo aberto quando tenho o telefone conectado ao meu laptop via USB (Figura 1 e 2). Também existem ícones pop-up na barra do lado esquerdo (Figura 3). Também há notificações freqüentes de conexão com a Internet ativadas / desativadas durante o compartilhamento (Figura 4 e 5). O cabo de má qualidade aumenta a frequência desses aborrecimentos. Todos os tipos de notificações podem ser várias vezes por minuto. Sua taxa aumenta quando a bateria atinge o estado de alta potência, mas permanece estável quando a bateria está totalmente carregada.

  • Faço a proposta de wjandrea gsettings set org.gnome.desktop.media-handling automount-open falseque resolve a automount-openquestão, seu dmesg | tailestado aqui .

Você vê cerca de 10 a 30 janelas para o erro (Figura 1 e 2) e o ícone do lado direito do telefone pulando para frente e para trás (Figura 3) ao manter o dispositivo conectado ao laptop

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

  • Faço a segunda proposta de wjandrea gsettings set org.gnome.desktop.media-handling automount false. No entanto, o ícone do telefone Samsung começa a aparecer na barra do lado esquerdo repetidamente. Isso ocorre principalmente quando meu laptop está totalmente carregado, por isso pode ser um problema no gerenciamento de energia. Seu dmesg | tailestado está aqui (veja também a Figura 3), que ocorreu pela primeira vez e principalmente quando meu laptop atinge aproximadamente o estado máximo da bateria.

Subconjunto do segundo dmesg aqui

[    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

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Outras propostas

  • Sneetsher. Funciona no primeiro dia. Vou informá-lo como funciona na próxima semana.

    > 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
    

Telefone: Samsung Galaxy S4 gt-i9506 com a ROM não oficial do Temasek do CyanogenMod 13 com patches suficientes
Versões do Ubuntu: 16.04
Kernel do Linux: 4.4 e 4.6
Opções do kernel do Linux: wl
Bash: 4.3.42 (1) -release (x86_64-pc-linux- gnu)
Laptop: Macbook Air em meados de 2013
USB: duas portas USB3 (até 5 Gbps) ( aqui especificações oficiais)
Drivers de placa de rede: broadcom-sta-dkms não livres (veja aqui )
VPN no telefone: NordVPN US udp server
VPN no laptop quando a conexão wifi com o roteador-firewall: servidor NordVPN EE udp

  • Suporte 1: alteração negativa no estado de energia (-1%) está associada a notificações.
  • Suporte 2: a conexão instável à Internet usa uma quantidade significativa de energia (\ Delta P = 1%).
  • Suporte 3: a conexão à Internet protegida por VPN diminui significativamente a quantidade de notificações.

3
Caso você ainda não tenha feito isso (e também porque estou curioso para saber se isso afeta o comportamento), se você fizer Configurações do sistema-> Detalhes-> Mídia removível e marque a opção Never prompt or start programs on media insertionque altera os 'Arquivos 'abertura com o cabo temperamental? É algo que geralmente faço porque odeio quando insiro um HD externo ou USB com várias partições e obtenho várias instâncias de Arquivos abrindo de uma só vez.
pHeLiOn 7/06/16

@pHeLiOn Sim, acho que é a mesma coisa que a resposta de wjandrea.
Léo Léopold Hertz,

@Masi É uma configuração diferente do dconf org.gnome.desktop.media-handling autorun-never, mas faz a mesma coisa porque substitui org.gnome.desktop.media-handling automount-open.
wjandrea

@ Masi, você tem apenas portas USB3?
user.dz

1
@Sneetsher Sim: Two USB 3 ports (up to 5 Gbps). Aqui especificações support.apple.com/kb/SP678?locale=en_US
Léo Léopold Hertz

Respostas:


3

O dconf é o lugar para verificar esta situação.

O dconf é um sistema de configuração de baixo nível e gerenciamento de configurações. Seu principal objetivo é fornecer um back-end para o GSettings e o KSettings em plataformas que ainda não possuem sistemas de armazenamento de configuração. Depende do GLib. Faz parte do GNOME 3 e substitui o GConf. ~ Wikipedia

Para isso, você precisa instalar o editor dconf da seguinte maneira:

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

Para abrir o editor dconf ,

Pressione Alt + F2

ou

vá para Aplicativo> Ferramentas do Sistema> editor dconf

Agora no editor dconf, na barra lateral

org> gnome> desktop> manipulação de mídia

Desmarque a opção de abertura automática .

A seguir está a captura de tela do dconf-editor na 16.04:

dconf-editor em 16.04


1
isso tem o efeito colateral de tornar o Ubuntu não automount qualquer sistema de arquivos, é uma marreta para quebrar uma noz como dizem
Amias

1
@Masi O comando que você está procurando é gsettings set org.gnome.desktop.media-handling automount-open false. Na minha experiência com o dconf, dois pontos indicam um mapeamento, como nas opções do teclado.
Wjandrea

1
@amiaschanner Acabei de experimentar e realmente faz automount. O que está desativado é a abertura automática da unidade.
Wjandrea

@Masi Anexei uma captura de tela do dconf-editor na 16.04, funcionando de maneira semelhante à da 14.04.
Dhaval Simaria

2

Versão CLI da resposta de @ Dhaval-Simaria:

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

Note que o Ubuntu vem com gsettings; não precisa ser instalado.


Edite para obter informações atualizadas: como as mensagens de erro estão relatando uma falha na montagem, tente desativar o automount:

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

4
dconf-editoré uma interface gráfica de gsettings. Você não precisa, mas geralmente é útil.
Wjandrea

A @wjandrea agradece por mostrar o outro lado (provavelmente mais fácil) da solução.
Dhaval Simaria

1
@ Masi Ah, sua pergunta inicial não era muito clara, então eu assumi que as notificações que você mencionou eram as nautilusjanelas pop-up . Eu editei minha resposta para dar conta das novas informações.
wjandrea

Ambos os comandos não são suficientes. Comecei a exibir o ícone da barra do lado esquerdo várias vezes após 10 horas de uso do laptop.
Léo Léopold Hertz # 15/16

@Masi Por que você continua excluindo seus comentários? Isso torna difícil ler este tópico para futuros leitores quando você faz isso.
wjandrea

1

Se você executa o Xubuntu, isso é muito fácil, pois ele possui um painel de configuração para selecionar o comportamento da montagem automática. Basta ir em Configurações> Hardware> Unidades e mídia removíveis e desmarcar as opções relevantes:

insira a descrição da imagem aqui


1

Nota: Todos os comandos abaixo precisam de energia raiz, portanto, mude para o shell raiz usando primeiro sudo -iou sudo su. Se você deseja executar diretamente com sudo <cmd>, consulte Ao usar o sudo com redirecionamento, recebo 'permissão negada' .

  • Defina a regra do udev para libmtpto ignorar o modelo do seu telefone:

    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
    

    Para reverter:

    rm /etc/udev/rules.d/69-libmtp.rules
    
  • Para todos os nós 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
    

    Para reverter:

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

    + Reiniciar

  • Aqui outro método que não requer reinicialização.

    1. Gere os scripts unbind & bind usando este:

      Como script 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
      

      Ou uma linha:

      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
      

      Exemplo de saída:

      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. Adicione usb-unbind.sh para /etc/profileexecutar na inicialização. Use usb-bind.sh para ativar o controlador USB sempre que necessário.

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

    Para retroceder:

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

    Referência: como você redefine um dispositivo USB a partir da linha de comando?


1
Como você pode fazer uma regra que ignore todos os telefones e todos os dispositivos USB? Eu só quero iniciá-los explicitamente no laptop quando preciso. Melhor não ter nada. Não quero ter apenas um telefone, porque também tenho muitos deles e muitos outros dispositivos. Não se trata apenas de um dispositivo.
Léo Léopold Hertz 준영

1
@Masi update answer.
user.dz

1

Você deve examinar as regras do udev. Com eles, você pode bloquear um dispositivo sem afetar outros dispositivos USB. Você pode definir suas próprias regras do udev criando um arquivo /etc/udev/rules.d/, por exemplo /etc/udev/rules.d/51-block-phone-mount.rules

Agora encontre o idVendor e o idProduct do dispositivo. É bom usá-los, pois são exclusivos do produto, portanto, você pode usá-los para identificar o dispositivo na regra do udev.

Liste seus dispositivos USB usando lsusbe obtenha algo parecido com isto:

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

A parte relevante é o barramento e o dispositivo, por exemplo, barramento 004 e dispositivo 003. Com sudo lsusb -vs 004:003 | grep -E 'idProduct|idVendor'você obterá as informações necessárias, por exemplo:

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

Isso significa que você /etc/udev/rules.d/51-block-phone-mount.rulesprecisaria do seguinte:

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

Você pode experimentá-lo instantaneamente apenas reconectando o telefone e verificando se ele funciona.


0

Eu tenho um problema semelhante com um um mais um que tem um soquete usb um pouco duvidoso, isso faz com que seja aberta uma janela do nautilus a cada 5 minutos ou mais.

A maneira mais eficaz que encontrei para evitar isso foi fazer com que o udev o ignorasse completamente, combinando o fornecedor do USB e a ID do modelo e configurando o dispositivo para o modo não autorizado. Dessa forma, você evita especificamente que este dispositivo desencadeie algo mais a montante, como a montagem automática, sem afetar mais nada.

como fazer a lista negra do udev https://projectgus.com/2014/09/blacklisting-a-single-usb-device-from-linux/

um guia para telefones Samsung http://blog.vacs.fr/vacs/blogs/post.html?post=2010/12/24/How-to-repair-the-USB-not-detected-problem-on-Android -Samsung-phones


1
Você pode, por favor, fornecer um resumo sobre sua resposta, não apenas a resposta do link. Não entendo como a sua resposta difere na prática, de definir media-handlingpara não automount-open. O link parece ter alguma solução do lado do telefone. Pode ser que haja dois problemas no meu problema. Eu uso o telefone Samsung (Galaxy S4 gt-i9506),
Léo Léopold Hertz,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.