Как предотвратить всплывающие уведомления и пиктограммы при подключении телефона к USB?


12

Условие: посторонние уведомления и всплывающие окна при подключении телефона к USB.
Дифференциальные условия: сбой управления питанием с USB, сбой управления сетевой картой.
Поддержка: уведомления, всплывающие окна и предупреждения dmesg появляются в основном, когда состояние питания достигает максимально высокого уровня, но становятся довольно стабильными, когда процентное соотношение состояния питания остается постоянным.

Диспетчер файлов продолжает открываться, когда мой телефон подключен к ноутбуку через USB (рис. 1 и 2). В левой боковой панели также есть всплывающие значки (рисунок 3). При подключении также часто включаются и выключаются уведомления о подключении к Интернету (рис. 4 и 5). Кабель плохого качества увеличивает частоту этих неприятностей. Все виды уведомлений могут быть много раз в минуту. Их скорость увеличивается, когда батарея достигает состояния высокой мощности, но остается стабильной, когда батарея полностью заряжена.

  • Я делаю предложение wjandrea, gsettings set org.gnome.desktop.media-handling automount-open falseкоторое решает automount-openвопрос, его dmesg | tailсостояние здесь .

Вы видите около 10-30 окон для ошибки (рис. 1 и 2) и значок правой стороны телефона, который щелкает взад-вперед (рис. 3), когда вы просто держите устройство подключенным к ноутбуку.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

  • Я делаю второе предложение wjandrea gsettings set org.gnome.desktop.media-handling automount false. Однако значок телефона Samsung снова и снова всплывает на левой боковой панели. Это происходит в основном, когда мой ноутбук полностью заряжен, поэтому это может быть проблемой в управлении питанием. Его 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
    

Телефон: Samsung Galaxy S4 gt-i9506 с неофициальным ПЗУ Temasek CyanogenMod 13 с достаточным количеством исправлений.
Версии Ubuntu: 16.04.
Ядро Linux: 4.4 и 4.6.
Опции ядра Linux: wl.
Bash: 4.3.42 (1) -релиз (x86_64-pc-linux-). gnu)
Ноутбук: середина 2013 года Macbook Air
USB: два порта USB3 (до 5 Гбит / с) ( здесь официальные спецификации)
Драйверы сетевых карт: несвободные broadcom-sta-dkms (см. здесь )
VPN в телефоне: NordVPN US udp server
VPN в ноутбуке при wifi соединении с роутером-брандмауэром: сервер NordVPN EE udp

  • Поддержка 1: отрицательное изменение состояния питания (-1%) связано с уведомлениями.
  • Поддержка 2: нестабильное интернет-соединение потребляет значительное количество энергии (\ Delta P = 1%).
  • Поддержка 3: VPN-защищенное интернет-соединение значительно уменьшает количество уведомлений.

3
На тот случай, если вы этого еще не сделали (а также потому, что мне любопытно, влияет ли это на поведение), если вы сделаете Системные настройки-> Детали-> Съемный носитель и отметите Never prompt or start programs on media insertion, изменяет ли «Файлы» открытие с темпераментным кабелем? Это то, что я обычно делаю, потому что я ненавижу, когда я вставляю многораздельный USB или внешний жесткий диск и получаю сразу несколько экземпляров файлов.
pHeLiOn

@pHeLiOn Да, я думаю, что это то же самое, что и ответ wjandrea.
Лео Леопольд Герц 준영

@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
Лео Леопольд Герц 준영

Ответы:


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, в боковой панели

org> gnome> desktop> обработка мультимедиа

Снимите флажок с опции автоматического открытия .

Ниже приведен скриншот dconf-editor от 16.04:

dconf-редактор в 16.04


1
это имеет побочный эффект, заключающийся в том, что Ubuntu не выполняет автоматическое монтирование любой файловой системы, а кувалду, как говорится,
ломает

1
@Masi Команда, которую вы ищете, это gsettings set org.gnome.desktop.media-handling automount-open false. По моему опыту с dconf, двоеточие указывает на сопоставление, как с параметрами клавиатуры.
wjandrea

1
@amiaschanner Я только что попробовал, и это на самом деле делает автомонтирование. Что отключено, так это автоматическое открытие привода.
wjandrea

@Masi Я прикрепил снимок экрана dconf-editor в 16.04, работающий по аналогии с 14.04.
Давал Симария

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 благодарим за то, что показали другую (возможно, более простую) сторону решения.
Давал Симария

1
@ Masi Ах, ваш первоначальный вопрос был не очень ясным, поэтому я предположил, что упомянутые вами уведомления были всплывающими nautilusокнами. Я отредактировал свой ответ, чтобы учесть новую информацию.
wjandrea

Обе эти команды не являются достаточными. Я начал получать значок левой боковой панели снова и снова после 10 часов использования ноутбука.
Лео Леопольд Херц 준영

@ Маси, почему ты продолжаешь удалять свои комментарии? Это затрудняет чтение этой темы для будущих читателей, когда вы делаете это.
wjandrea

1

Если вы запускаете Xubuntu, это действительно легко, потому что у него есть панель конфигурации для выбора режима автоматического монтирования. Просто зайдите в «Настройки»> «Оборудование»> «Съемные диски и носители» и снимите соответствующие опции:

введите описание изображения здесь


1

Примечание. Все приведенные ниже команды требуют питания root, поэтому сначала переключитесь на корневую оболочку, используя sudo -iили sudo su. Если вы хотите работать напрямую с sudo <cmd>, см. При использовании sudo с перенаправлением я получаю «Отказано в доступе» .

  • Установите правило udev для libmtp, чтобы игнорировать модель вашего телефона:

    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
    

    + Reboot

  • Вот еще один метод, который не требует перезагрузки.

    1. Создайте сценарии unbind & bind, используя этот:

      Как скрипт 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-устройства? Я просто хочу запустить их явно в ноутбуке, когда мне нужно. Лучше вообще ничего не иметь. Я не хочу иметь только один телефон, потому что у меня их много, а также много других устройств. Это не просто одно устройство.
Лео Леопольд Герц 준영

1
@ Маси обновление ответ.
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, это заставляет его запускать окно nautilus каждые 5 минут или около того.

Самый эффективный способ предотвратить это - заставить udev полностью игнорировать его, сопоставив идентификатор производителя USB и модель, а затем перевести устройство в неавторизованный режим. Таким образом, вы специально запрещаете этому устройству запускать что-либо еще выше, например, автоматическое монтирование, не затрагивая ничего другого.

как сделать черный список udev https://projectgus.com/2014/09/blacklisting-a-single-usb-device-from-linux/

руководство для телефонов Samsung http://blog.vacs.fr/vacs/blogs/post.html?post=2010/12/24/How-to-repair-the-USB-not-detected-problem-on-Android -Samsung-телефоны


1
Можете ли вы предоставить краткую информацию о вашем ответе, а не только по ссылке. Я не понимаю, как ваш ответ отличается на практике от настройки media-handlingдо нет automount-open. Похоже, что ссылка имеет какое-то решение для телефона. Может быть так, что в моей проблеме есть две проблемы. Я пользуюсь телефоном Samsung (Galaxy S4 gt-i9506),
Лео Леопольд Херц,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.