LINUX.ORG.RU

systemd-udevd грузит процессор

 


0

3

Прикупил я мтсовский LTE модем и начал наблюдал полностью загруженное ядро процессом systemd-udevd. Если посмотреть что происходит средствами udevadm monitor, то можно наблюдать зацикливание одним и тем же сообщением:

UDEV  [296.932524] change   /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.6/host10/target10:0:0/10:0:0:0/block/sr0 (block)
KERNEL[296.938790] change   /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.6/host10/target10:0:0/10:0:0:0/block/sr0 (block)

решение в последнем посте

★★

Последнее исправление: BitSum (всего исправлений: 3)

Судя по sr0 модем у тебя хочет быть cd-приводом.
Отключи в нём эту возможность. Обычно это надо в винде для установки всяких управлялок этими модемами.

imul ★★★★★
()

Прошей нормальную прошивку на модем, или переведи хотя бы в режим Только модем. Я свой шил когда другой - вместо коннект менеджеров всяких сетевая карта с инетом появляется, а внутри линукс сплюшками и 32Мб рам. На 4пда больше инфы.

fehhner ★★★★★
()

зюздемд не может осилить что у усб устройства может быть несколько режимов работы и уходит в вечный цикл
прошей модем

haha, classic

annerleen ★★★★☆
()
Ответ на: комментарий от imul

Отключи в нём эту возможность.

Как? В дефолтную управлялку под линуксом не заходит, только из-под винды.

BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

Там для этого спец AT команды.

anonymous
()
Ответ на: комментарий от BitSum

всё норм. Купи еще этой хрустящей опертивки и выпей чаю.

anonymous
()
Ответ на: комментарий от boowai

Нет, то что модем переключать в режим «только модем» никто и не оспаривает. «Гипотеза про извлечение CDROM» относилась к

полностью загруженное ядро процессом systemd-udevd

Что, кстати мне и не совсем понятно — ну «определил» модем как CDROM (ну бывает) дальше-то зачем процессор/ядро занимать...

anymouze ★★
()

Тебе нужно подключиться терминалом к правильному /dev/*, на котором он висит (должен выдать ответ на ATZ ok), если выяснишь - посмотрю АТ команду перевода в режим только модем.

fehhner ★★★★★
()
Ответ на: комментарий от anonymous

И как это отменяет тот факт, что сейчас udev является частью systemd?

telikan
()
Последнее исправление: telikan (всего исправлений: 1)
Ответ на: комментарий от telikan

Здесь нужен kernel-евангелизм. Потому что ядро спамит в нетлинк change-событиями, а виноват, как водится, systemd, просто потому что systemd всегда виноват.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

просто потому что systemd всегда виноват.

Виноват китайский модем, не переведёный в режим «только модем» со своими сидиромами

fehhner ★★★★★
()
Ответ на: комментарий от BitSum

Поставь пакет usb_modeswitch для начала. Потом попробуй ребутнуться и подключиться через модем. Если не перключится сам - создай правило

/etc/udev/rules.d/40-4g-modem.rules

SUBSYSTEM=="usb", SYSFS{idProduct}=="1234", SYSFS{idVendor}=="5678", RUN+="/lib/udev/modem-modeswitch --vendor 0x1234 --product 0x5678 --type option-zerocd"
Замени ProductId и VendorId на свои от мопеда в двух местах (во втором с префиком «0x....»)
И он не будет больше подключаться как сидиром.

У тебя появится устройство новое /dev/ttyAMAx или /dev/ttyACMx или просто в /dev/ttyUSBx.
Подключаешься туда (когда инет соединение неактивно) через minicom или любой терминал. Отправляешь ATI (команда инициализации), если ответ ok или инфа о медеме - ты на правильном порту. Можешь попробовать отправить туда «AT^U2DIAG=0» - это тоже команда переключение модема в режим «только модем», а «AT^U2DIAG=256» - модем + кардридер составное устройство.

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Не помогло. Всё так же пытается в сидиром

Bus 002 Device 005: ID 1376:4e61 Vimtron Electronics Co., Ltd. 
Bus 002 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 003: ID 0781:558b SanDisk Corp. 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 1a2c:0023 China Resource Semico Co., Ltd 
Bus 001 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 005: ID 1c4f:0034 SiGma Micro 
Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/etc/udev/rules.d/40-4g-modem.rules

SUBSYSTEM=="usb", SYSFS{idProduct}=="1376", SYSFS{idVendor}=="4e61", RUN+="/lib/udev/modem-modeswitch --vendor 0x1376 --product 0x4e61 --type option-zerocd"
BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

Попробуйте «вручную» в терминале выполнить Вашу команду:

/lib/udev/modem-modeswitch --vendor 0x1376 --product 0x4e61 --type option-zerocd

И отключить временно NetworkManager перед выполнением манипуляций с модемом

anymouze ★★
()
Ответ на: комментарий от BitSum

Попробуй совет anymouze (он всё абсолютно правильно тебе заметил) и настоятельно рекомендую проверить, доступен ли модем на одном из портов и попробовать перевести АТ командами, если не сработает.

fehhner ★★★★★
()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от anymouze

/lib/udev/modem-modeswitch

ls -l
total 7160
-rwxr-xr-x 1 root root   39344 Jul 31 00:32 ata_id
-rwxr-xr-x 1 root root   51632 Jul 31 00:32 cdrom_id
-rwxr-xr-x 1 root root   22880 Jul 31 00:32 collect
-rwxr-xr-x 1 root root    4627 Apr 19  2016 console-setup-tty
-rw-r--r-- 1 root root    1175 Feb 21  2018 hotplug.functions
-rwxr-xr-x 1 root root     776 May 16 17:59 hwclock-set
-r--r--r-- 1 root root 7049337 Jul 31 21:49 hwdb.bin
drwxr-xr-x 2 root root    4096 Jul 31 21:49 hwdb.d
-rwxr-xr-x 1 root root    3143 Nov 30  2016 ifupdown-hotplug
-rwxr-xr-x 1 root root   10576 Jul  6  2017 libinput-device-group
-rwxr-xr-x 1 root root   10496 Jul  6  2017 libinput-model-quirks
-rwxr-xr-x 1 root root   10496 Jul 31 00:32 mtd_probe
-rwxr-xr-x 1 root root   10448 Jan 26  2016 mtp-probe
drwxr-xr-x 2 root root   12288 Sep  8 01:47 rules.d
-rwxr-xr-x 1 root root   52168 Jul 31 00:32 scsi_id
-rwxr-xr-x 1 root root    2069 Oct  5  2015 usb_modeswitch
-rwxr-xr-x 1 root root   14680 Jul 31 00:32 v4l_id
BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

не сразу понял Ваше сообщение. Вам нужно использовать usb_modeswitch. Команда:

/lib/udev/usb_modeswitch --vendor 0x1376 --product 0x4e61 --type option-zerocd

anymouze ★★
()
Ответ на: комментарий от anymouze

Увы, не помогло.

Что делал:

service ModemManager stop

убил процесс с udevd (после чего вновь появился)

/lib/udev/usb_modeswitch --vendor 0x1376 --product 0x4e61 --type option-zerocd


и результат:

UDEV  [7759.720077] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.4/2-1.5.4:1.6/host6/target6:0:0/6:0:0:0/block/sr1 (block)
KERNEL[7759.720685] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.4/2-1.5.4:1.6/host6/target6:0:0/6:0:0:0/block/sr1 (block)
BitSum ★★
() автор топика

Я так и говорил, что systemd и всё что с ним связано - это шлак!

Можно вместо этого поставить eudev и не мучится.

gtk3 ★★★
()
Ответ на: комментарий от BitSum

повторим...

Ваше устройство официально (пока) не поддерживается usb_modeswitch. Поэтому мы будем «первопроходцами»...

Этап №1
Выполните в эмуляторе терминала (или консоли):

sudo bash
Остановите Modem Manager
service ModemManager stop
Подключите модем к USB-порту. Когда появится привод «CDROM» выполните команды:
ls -l /dev/sr*
Нужно определить имя «CDROM»: 1-й раз он был у Вас /dev/sr0, 2-й /dev/sr1. Необязательный параметр -l нужен если в Вашей системе больше одного CDROM: нас интересует «самый молодой» по дате (времени) «появления».
eject /dev/srN
Вместо srN подставите имя, которое получил «CDROM».

Далее нужно посмотреть dmesg на наличие новых устройств (от появления в системе «CDROM» и до «конца»). Если сомневаетесь, можете «сюда показать»

---
* возможно модем перейдёт в ndis-режим, тогда можно войти в «него» по адресу 192.168.8.1

anymouze ★★
()
16 января 2019 г.
Ответ на: повторим... от anymouze

Как быть с ubuntu 18.04? В 18.04 уже используется netplan. Данное решение не помогает.

Предполагаю, что это как-то связано с networkmanager.

BitSum ★★
() автор топика
Последнее исправление: BitSum (всего исправлений: 1)
Ответ на: комментарий от BitSum

поясните более развернуто, что именно не работает.

  • lte-модем не определяется
  • невозможно его настроить
  • что-то ещё*
anymouze ★★
()
Ответ на: комментарий от anymouze

lte модем работает корректно, но он вызывает процесс systemd-udevd. Если посмотреть что происходит средствами udevadm monitor, то можно наблюдать зацикливание одним и тем же сообщением:

KERNEL[15353.253234] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.4/2-1.5.4:1.6/host7/target7:0:0/7:0:0:0/block/sr0 (block)

Процесс загружает одно ядро на 100%, забирает 50% IOPS, а также хрустит бесконечно рамой, пока не съест всё.

BitSum ★★
() автор топика
Последнее исправление: BitSum (всего исправлений: 1)
Ответ на: комментарий от BitSum

В /etc/udev/udev.conf добавь такую строку:

udev_log="debug"
Затем перезагрузись, воспроизведи проблему и покажи что в логах (journalctl --all --this-boot).

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от BitSum

я немного в замешательстве: модем работает, но при этом его «CDROM» присутствует в системе. меня интересуют сообщения в dmesg после подключения модема.

anymouze ★★
()
Ответ на: комментарий от anymouze

dmesg:

67.436050] usb 2-1.5: new high-speed USB device number 4 using ehci-pci
[   67.544720] usb 2-1.5: New USB device found, idVendor=1a40, idProduct=0101
[   67.544723] usb 2-1.5: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[   67.544726] usb 2-1.5: Product: USB 2.0 Hub [MTT]
[   67.545183] hub 2-1.5:1.0: USB hub found
[   67.545303] hub 2-1.5:1.0: 4 ports detected
[   90.204049] usb 2-1.5.4: new high-speed USB device number 5 using ehci-pci
[   90.312440] usb 2-1.5.4: config 1 has an invalid interface number: 6 but max is 2
[   90.312443] usb 2-1.5.4: config 1 has no interface number 2
[   90.312901] usb 2-1.5.4: New USB device found, idVendor=1376, idProduct=4e61
[   90.312905] usb 2-1.5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=4
[   90.312907] usb 2-1.5.4: Product: Mobile Composite Device Bus
[   90.312909] usb 2-1.5.4: Manufacturer: Marvell
[   90.312911] usb 2-1.5.4: SerialNumber: Mobile Composite Device Bus
[   90.313548] usb-storage 2-1.5.4:1.6: USB Mass Storage device detected
[   90.313712] scsi host7: usb-storage 2-1.5.4:1.6
[   90.392636] usbcore: registered new interface driver cdc_ether
[   95.456087] scsi 7:0:0:0: CD-ROM            MARVELL  Mobile CMCC CD   1.25 PQ: 0 ANSI: 0
[   95.457324] sr 7:0:0:0: [sr0] scsi3-mmc drive: 0x/0x caddy
[   95.457327] cdrom: Uniform CD-ROM driver Revision: 3.20
[   95.457577] sr 7:0:0:0: Attached scsi CD-ROM sr0
[   95.457737] sr 7:0:0:0: Attached scsi generic sg3 type 5
[   95.481649] rndis_host 2-1.5.4:1.0 eth0: register 'rndis_host' at usb-0000:00:1d.0-1.5.4, RNDIS device, ac:7d:eb:e8:cf:f2
[   95.481687] usbcore: registered new interface driver rndis_host
[   95.498271] rndis_host 2-1.5.4:1.0 enxac7debe8cff2: renamed from eth0
BitSum ★★
() автор топика
Ответ на: комментарий от Deleted
Jan 18 11:41:09 FirstDay [2526]: starting 'cdrom_id --lock-media /dev/sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[328]: seq 5839 queued, 'change' 'block'
Jan 18 11:41:09 FirstDay cdrom_id[2526]: probing: '/dev/sr0'
Jan 18 11:41:09 FirstDay cdrom_id[2526]: INQUIRY: [MARVELL][Mobile CMCC CD][1.25]
Jan 18 11:41:09 FirstDay cdrom_id[2526]: current profile 0x08
Jan 18 11:41:09 FirstDay cdrom_id[2526]: profile 0x08 media_cd_rom
Jan 18 11:41:09 FirstDay cdrom_id[2526]: GET CONFIGURATION: size of features buffer 0x0000
Jan 18 11:41:09 FirstDay cdrom_id[2526]: GET CONFIGURATION: size of features buffer 0x0000
Jan 18 11:41:09 FirstDay cdrom_id[2526]: READ TOC: len: 20, start track: 1, end track: 1
Jan 18 11:41:09 FirstDay cdrom_id[2526]: track=1 info=0x4(data) start_block=512
Jan 18 11:41:09 FirstDay cdrom_id[2526]: last track 1 starts at block 512
Jan 18 11:41:09 FirstDay cdrom_id[2526]: READ DISC INFORMATION failed with SK=6h/ASC=28h/ACQ=00h
Jan 18 11:41:09 FirstDay cdrom_id[2526]: PREVENT_ALLOW_MEDIUM_REMOVAL (lock)
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM_MRW=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM_MRW_W=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM_MEDIA=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM_MEDIA_CD=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: 'cdrom_id --lock-media /dev/sr0'(out) 'ID_CDROM_MEDIA_TRACK_COUNT_DATA=1'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: Process 'cdrom_id --lock-media /dev/sr0' succeeded.
Jan 18 11:41:09 FirstDay systemd-udevd[344]: LINK 'cdrom' /lib/udev/rules.d/60-cdrom_id.rules:27
Jan 18 11:41:09 FirstDay systemd-udevd[328]: seq 5840 queued, 'change' 'block'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: IMPORT builtin 'usb_id' /lib/udev/rules.d/60-persistent-storage.rules:47
Jan 18 11:41:09 FirstDay systemd-udevd[344]: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.4/2-1.5.4:1.6: if_class 8 protocol 6
Jan 18 11:41:09 FirstDay systemd-udevd[344]: LINK 'disk/by-id/usb-MARVELL_Mobile_CMCC_CD_Mobile_Composite_Device_Bus-0:0' /lib/udev/rules.d/60-persistent-storage.rules:52
Jan 18 11:41:09 FirstDay systemd-udevd[344]: IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:73
Jan 18 11:41:09 FirstDay systemd-udevd[344]: LINK 'disk/by-path/pci-0000:00:1d.0-usb-0:1.5.4:1.6-scsi-0:0:0:0' /lib/udev/rules.d/60-persistent-storage.rules:75
Jan 18 11:41:09 FirstDay systemd-udevd[344]: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:87
Jan 18 11:41:09 FirstDay systemd-udevd[344]: probe /dev/sr0 noraid offset=0
Jan 18 11:41:09 FirstDay systemd-udevd[344]: RUN 'uaccess' /lib/udev/rules.d/73-seat-late.rules:17
Jan 18 11:41:09 FirstDay systemd-udevd[344]: handling device node '/dev/sr0', devnum=b11:0, mode=0600, uid=0, gid=0
Jan 18 11:41:09 FirstDay systemd-udevd[344]: preserve already existing symlink '/dev/block/11:0' to '../sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: found 'b11:0' claiming '/run/udev/links/\x2fcdrom'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: creating link '/dev/cdrom' to '/dev/sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: preserve already existing symlink '/dev/cdrom' to 'sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: found 'b11:0' claiming '/run/udev/links/\x2fdisk\x2fby-id\x2fusb-MARVELL_Mobile_CMCC_CD_Mobile_Composite_Device_Bus-0:0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: creating link '/dev/disk/by-id/usb-MARVELL_Mobile_CMCC_CD_Mobile_Composite_Device_Bus-0:0' to '/dev/sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: preserve already existing symlink '/dev/disk/by-id/usb-MARVELL_Mobile_CMCC_CD_Mobile_Composite_Device_Bus-0:0' to '../../sr0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: found 'b11:0' claiming '/run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:1d.0-usb-0:1.5.4:1.6-scsi-0:0:0:0'
Jan 18 11:41:09 FirstDay systemd-udevd[344]: creating link '/dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.5.4:1.6-scsi-0:0:0:0' to '/dev/sr0'
BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

Модем работает в ndis-режиме и по адресу 192.168.8.1 (адрес может быть и другой — 192.168.1.1 или ...) панель управления доступна? В ней есть раздел «Настройки»? Хотя её может и не быть :(

anymouze ★★
()
Ответ на: комментарий от anymouze

Панель управления доступна? В ней есть раздел «Настройки»?

Доступна, настройки есть.

В настройках ничего полезного нет :)

BitSum ★★
() автор топика
Последнее исправление: BitSum (всего исправлений: 1)
Ответ на: комментарий от BitSum

На pastebin лимит, https://dropmefiles.com/cKpjk

Я не уверен, но возможно проблемы начинаются после запуска gvfs-daemon:

...
Jan 21 09:05:47 FirstDay systemd[1055]: Starting Virtual filesystem service...
Jan 21 09:05:47 FirstDay dbus-daemon[1086]: [session uid=0 pid=1086] Successfully activated service 'org.gtk.vfs.Daemon'
Jan 21 09:05:47 FirstDay systemd[1055]: Started Virtual filesystem service.
Jan 21 09:05:48 FirstDay systemd-journald[282]: Forwarding to syslog missed 961 messages.
Jan 21 09:06:04 FirstDay systemd-journald[282]: Suppressed 43784 messages from systemd-udevd.service
Jan 21 09:06:04 FirstDay systemd-udevd[344]: IMPORT 'cdrom_id --lock-media /dev/sr0' /lib/udev/rules.d/60-cdrom_id.rules:20
Jan 21 09:06:04 FirstDay [1669]: starting 'cdrom_id --lock-media /dev/sr0'
Jan 21 09:06:04 FirstDay systemd-udevd[315]: seq 4340 queued, 'change' 'block'
Jan 21 09:06:04 FirstDay cdrom_id[1669]: probing: '/dev/sr0'
Jan 21 09:06:04 FirstDay cdrom_id[1669]: INQUIRY: [MARVELL][Mobile CMCC CD][1.25]
...
Можно попробовать полностью выключить этот сервис:
systemctl mask gvfs-daemon.service
# После этого перезагрузи систему.
Скорее всего без этого сервиса что-то сломается, например Gnome или другой DE. Но это поможет понять: он вызывает такие проблемы или нет.

Deleted
()
Ответ на: комментарий от Deleted

Или это баг самого устройства, и починить его можно только перепрошивкой устройства или костылём в ядре.

Deleted
()
Ответ на: комментарий от BitSum

Увы, но проблема прежняя.

Значит проблема в девайсе/ядре.

#системдхватитсукомайнить!

systemd тут скорее всего (99%) не причём.

Похоже что подобную проблему с косячными устройствами уже когда-то давно чинили в ядре. Но либо тогда недопочинили, либо в более новых версиях что-то изменилось и костыль перестал работать.

BitSum, у тебя вообще есть желание дальше это отлаживать? Попробовать другую версию ядра, патчи на ядро, etc.?

Deleted
()
Ответ на: комментарий от Deleted

у тебя вообще есть желание дальше это отлаживать? Попробовать другую версию ядра, патчи на ядро, etc.?

Да, конечно.

BitSum ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.