web-dev-qa-db-fra.com

Comment puis-je empêcher les notifications et les icônes contextuelles lorsque le téléphone est connecté à l'USB?

Condition: notifications externes et fenêtres contextuelles lorsque le téléphone est connecté à USB.
Conditions différentielles: défaillance de la gestion de l'alimentation avec USB, défaillance de la gestion de la carte réseau.
Support: les notifications, les popups et les avertissements dmesg se produisent principalement lorsque l'état d'alimentation atteint son maximum, mais deviennent plutôt stables lorsque le pourcentage d'état d'alimentation reste constant.

Le gestionnaire de fichiers ne cesse de s’ouvrir lorsque mon téléphone est connecté à mon ordinateur portable via USB (figures 1 et 2). Il existe également des icônes contextuelles dans la barre de gauche (Figure 3). Des notifications de connexion Internet fréquentes sont également activées/désactivées lors de la connexion (Figures 4 et 5). Le câble de mauvaise qualité augmente la fréquence de ces ennuis. Tous les types de notifications peuvent être plusieurs fois par minute. Leur fréquence augmente lorsque la batterie atteint son niveau de charge élevé, mais reste stable lorsque la batterie est complètement chargée.

  • Je fais wjandrea propositiongsettings set org.gnome.desktop.media-handling automount-open false qui résout le problème de automount-open, son dmesg | tail état ici .

Vous voyez environ 10 à 30 fenêtres pour l’erreur (figures 1 et 2) et l’icône du côté droit du téléphone qui s’agite (figure 3) lorsque vous maintenez simplement le périphérique connecté à votre ordinateur portable.

enter image description here

enter image description here

enter image description here

  • Je fais la deuxième proposition de wjandrea gsettings set org.gnome.desktop.media-handling automount false. Cependant, l'icône du téléphone Samsung commence à apparaître dans la barre de gauche, encore et encore. Cela se produit principalement lorsque mon ordinateur portable est complètement chargé, ce qui peut poser un problème de gestion de l'alimentation. Son état dmesg | tail est ici (voir également la figure 3), ce qui s'est produit pour la première fois et surtout lorsque mon ordinateur portable atteint son état de batterie maximal.

Sous-ensemble du deuxième dmesg ici

[    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

enter image description here

enter image description here

Autres propositions

  • Sneetsher. Cela fonctionne le premier jour. Je vous ferai savoir comment cela fonctionne la semaine prochaine.

    > 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
    

Téléphone: Samsung Galaxy S4 gt-i9506 avec la version non officielle de Temasek ROM de CyanogenMod 13 avec suffisamment de correctifs
Versions Ubuntu: 16.04
Noyaux Linux: 4.4 et 4.6
Options du noyau Linux: wl
Bash: version 4.3.42 (1) (x86_64-pc-linux-gnu)
Ordinateur portable: mi-2013 Macbook Air
USB: deux ports USB3 (jusqu'à 5 Gbps) ( ici spécifications officielles)
Pilotes de carte réseau: non-libres broadcom-sta-dkms (voir ici )
VPN dans le téléphone: serveur udp NordVPN US
VPN dans un ordinateur portable lors d’une connexion wifi avec routeur-pare-feu: serveur udp NordVPN EE

  • Support 1: la modification négative de l'état d'alimentation (-1%) est associée aux notifications.
  • Support 2: la connexion Internet instable consomme beaucoup d’énergie (\ Delta P = 1%).
  • Support 3: Une connexion Internet protégée par un réseau privé virtuel (VPN) réduit considérablement le nombre de notifications.

dconf est l'endroit à vérifier dans cette situation.

dconf est un système de configuration de bas niveau et de gestion des paramètres. Son objectif principal est de fournir un back-end à GSettings et à KSettings sur des plates-formes ne disposant pas de systèmes de stockage de configuration. Cela dépend de GLib. Il fait partie de GNOME 3 et remplace GConf. ~ Wikipedia

Pour cela, vous devez installer dconf editor comme suit:

Sudo apt-get update
Sudo apt-get install dconf-tools

Pour ouvrir dconf editor ,

Appuyez sur Alt + F2

ou

accédez à Application> Outils système> Éditeur dconf .

Maintenant dans l'éditeur dconf, dans la barre latérale

org> gnome> bureau> gestion des médias

Désélectionnez l'option automount-open .

Voici la capture d'écran de dconf-editor en 16.04:

dconf-editor in 16.04

3
Dhaval Simaria

Version CLI de la réponse de @ Dhaval-Simaria:

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

Notez que Ubuntu est livré avec gsettings; il n'a pas besoin d'être installé.


Modifier les informations mises à jour: comme les messages d'erreur signalent un échec du montage, essayez de désactiver le montage automatique:

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

Si vous exécutez Xubuntu, c'est très simple, car il dispose d'un panneau de configuration permettant de sélectionner le comportement du montage automatique. Il suffit d'aller dans Paramètres> Matériel> Lecteurs et supports amovibles, puis décochez les options appropriées:

enter image description here

1
Alistair Buxton

Remarque: toutes les commandes ci-dessous ont besoin de l’alimentation racine. Par conséquent, passez tout d’abord au shell racine à l’aide de _Sudo -i_ ou _Sudo su_. Si vous voulez exécuter directement avec _Sudo <cmd>_, voir Lorsque j'utilise Sudo avec une redirection, j'obtiens 'autorisation refusée' .

  • Définissez la règle udev pour libmtpt pour ignorer le modèle de votre téléphone:

    _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
    _

    Pour revenir en arrière:

    _rm /etc/udev/rules.d/69-libmtp.rules
    _
  • Pour tous les nœuds 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
    _

    Pour revenir en arrière:

    _rm /etc/udev/rules.d/99-usb-fallen-leaves.rules
    _

    + Redémarrage

  • Voici une autre méthode qui ne nécessite pas de redémarrage.

    1. Générez les scripts unbind & bind à l'aide de celui-ci:

      En tant que 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 une ligne:

      _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
      _

      Exemple de sortie:

      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. Ajoutez usb-unbind.sh à _/etc/profile_ pour s'exécuter au démarrage. Utilisez usb-bind.sh pour activer le contrôleur USB chaque fois que nécessaire.

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

    Au rôle de retour:

    _rm /etc/profile.d/usb-unbind-hook.sh
    _

    Référence: Comment réinitialiser un périphérique USB à partir de la ligne de commande?

1
user.dz

Vous devriez regarder dans les règles d'udev. Avec eux, vous pouvez bloquer un périphérique sans affecter les autres périphériques USB. Vous pouvez définir vos propres règles udev en créant un fichier dans /etc/udev/rules.d/, par exemple. /etc/udev/rules.d/51-block-phone-mount.rules

Recherchez maintenant idVendor et idProduct du périphérique. Celles-ci sont bonnes à utiliser car elles sont pour la plupart uniques au produit. Vous pouvez donc les utiliser pour identifier le périphérique dans la règle udev.

Listez vos périphériques USB en utilisant lsusb et obtenez quelque chose comme ceci:

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

La partie pertinente est le bus et le périphérique, par ex. Bus 004 et appareil 003. Avec Sudo lsusb -vs 004:003 | grep -E 'idProduct|idVendor', vous obtiendrez les informations nécessaires, par exemple:

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

Cela signifie que votre /etc/udev/rules.d/51-block-phone-mount.rules aurait besoin de ce qui suit inséré:

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

Vous pouvez l’essayer instantanément en rebranchant simplement le téléphone et en vérifiant si cela fonctionne.

1
Ziazis

J'ai un problème similaire avec un one plus one qui a une prise USB légèrement incertain, cela le fait allumer une fenêtre Nautile toutes les 5 minutes environ.

Le moyen le plus efficace que j'ai trouvé pour empêcher cela était de faire en sorte que Udev l'ignore complètement en faisant correspondre le fournisseur USB et l'ID du modèle, puis en configurant le périphérique en mode non autorisé. De cette manière, vous empêchez spécifiquement ce périphérique de déclencher quoi que ce soit plus en amont, tel que le montage automatique, sans rien affecter d'autre.

comment faire la liste noire d'udev https://projectgus.com/2014/09/blacklisting-a-single-usb-device- from-linux /

un guide pour les téléphones samsung http://blog.vacs.fr/vacs/blogs/post.html?post=2010/12/24/Comment-réparer-le-problème-USB-non-détecté-sur-Android-Samsung-phones

0
Amias