Автор Тема: Есть предложение по разработке апплета для etcnet  (Прочитано 2732 раз)

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Всем хорош etcnet, но нет для него элементарной (в трее) переключалки текущего соединения (отключения одного и подключения другого). Знаю, что есть NM, но. Я вам лучше покажу некоторые цифры, которые у меня вызывают недоумение. Я понимаю всякие там wifi или свистки, но чтобы на проводах такое было впервые вижу:
systemd-analyze blame
         19.359s dnsmasq.service
         19.127s NetworkManager.service
          6.175s systemd-udev-settle.service
          4.640s udisks2.service
          4.109s systemd-fsck-root.service
          3.513s systemd-fsck@dev-disk-by\x2duuid-7dd4d2ce\x2dffc0\x2d4a03\x2da876\x2db5e50893dac5.service
          3.447s systemd-fsck@dev-disk-by\x2duuid-10cab70c\x2d0a1f\x2d49c8\x2daefd\x2da6f8f9d7682e.service
          1.382s mdadm-activation.service
          1.201s systemd-modules-load.service
          1.040s dev-mqueue.mount
          1.039s dev-hugepages.mount
           996ms altlinux-kmsg-loglevel.service
           995ms sys-kernel-debug.mount
           786ms network.service
           771ms altlinux-update_chrooted.service
           725ms systemd-udev-trigger.service
           702ms systemd-vconsole-setup.service
           676ms home.mount
           578ms boot.mount
           565ms avahi-daemon.service
           543ms altlinux-save-dmesg.service
           456ms systemd-udevd.service
           450ms altlinux-idetune.service
           397ms systemd-sysctl.service
           362ms systemd-logind.service
           315ms x11presetdrv.service
           314ms console-kit-log-system-start.service
           294ms polkit.service
           245ms cpufreq-simple.service
           195ms systemd-readahead-replay.service
           179ms swap.swap
           156ms console-kit-daemon.service
           136ms systemd-tmpfiles-setup.service
            92ms systemd-journal-flush.service
            68ms mnt-sdb1.mount
            62ms systemd-readahead-collect.service
            48ms tmp.mount
            34ms systemd-remount-fs.service
             7ms systemd-random-seed-load.service
             6ms upower.service
             5ms var-run.mount
             4ms systemd-update-utmp-runlevel.service
             4ms var-lock.mount
             4ms systemd-user-sessions.service
             1ms systemd-readahead-done.service
Я бы с радостью выбросил NM из загрузки и замаскировал его, использовав штатные возможности etcnet. А дополнительные возможности в виде удобного подключения к wifi или работы со свистками мне не требуется.
От апллета, на мой взгляд, требуется всего две вещи:
1) уметь переключать настроенные в системе через etcnet интерфейсы (отключать одни, включать другие)
2) информировать всплывающим окном или как-то иначе (значком, возможно) текущее активное соединение
Да, один момент. Второе (третье, четвертое) соединение - соединение виртуальное, физически это один адаптер, но для него используются разные диапазоны ip адресов, настройки шлюза и днс также отличаются.
В цус такое сделать не получится, в консоли, честно говоря, не знаю, но даже если и можно, то это не совсем удобно, т.к. иногда бывает нужно довольно частенько переключаться между разными подключениями в течение одного рабочего сеанса. 

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Но сделать возможность переключаться между разными подключениями, которые связаны с разными физическими адаптерами, тоже будет полезным и не лишним.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
А покажите график: systemd-analyze plot > 1.svg
Может он кого-то ждёт другого. Попробуйте dnsmasq.service выключить. Просто прям интересно.


Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
А покажите график: systemd-analyze plot > 1.svg
Я-то покажу, моё предложение по созданию апплета было бы в любом случае безотносительно случая, который подвернулся (давно уже хотел эту тему поднять дабы обеспечить etcnet большей "живучестью").

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Отключил, получил 10 секунд. Это всё равно много для поднятия одного проводного интерфейса, настроенного статически.
systemd-analyze blame
          9.749s NetworkManager.service
          5.820s systemd-udev-settle.service
          4.017s systemd-fsck-root.service
          2.227s systemd-fsck@dev-disk-by\x2duuid-10cab70c\x2d0a1f\x2d49c8\x2daefd\x2da6f8f9d7682e.service
          2.063s systemd-fsck@dev-disk-by\x2duuid-7dd4d2ce\x2dffc0\x2d4a03\x2da876\x2db5e50893dac5.service
          1.124s altlinux-update_chrooted.service
          1.101s dev-mqueue.mount
          1.098s dev-hugepages.mount
          1.057s altlinux-kmsg-loglevel.service
          1.054s sys-kernel-debug.mount
          1.039s systemd-modules-load.service
           860ms x11presetdrv.service
           775ms altlinux-save-dmesg.service
           684ms altlinux-idetune.service
           670ms console-kit-log-system-start.service
           596ms systemd-udev-trigger.service
           578ms home.mount
           473ms systemd-udevd.service
           413ms systemd-sysctl.service
           359ms boot.mount
           299ms systemd-vconsole-setup.service
           266ms udisks2.service
           239ms avahi-daemon.service
           236ms systemd-readahead-replay.service
           195ms swap.swap
           176ms systemd-logind.service
           158ms cpufreq-simple.service
           134ms polkit.service
           119ms console-kit-daemon.service
           103ms network.service
            73ms mnt-sdb1.mount
            62ms systemd-readahead-collect.service
            51ms systemd-remount-fs.service
            39ms tmp.mount
            13ms systemd-tmpfiles-setup.service
            10ms systemd-journal-flush.service
             9ms var-lock.mount
             7ms systemd-update-utmp-runlevel.service
             6ms upower.service
             4ms systemd-random-seed-load.service
             3ms systemd-user-sessions.service
             1ms var-run.mount
             1ms systemd-readahead-done.service
Пока оставлю так. Но переключалка бы не помешала. Как минимум можно было бы поднять статус сборок сообщества за счёт более лёгкого по умолчанию оснащения того же icewm на sysvinit, например.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
dnsmasq.server стартует рано, надо unit править, это бага.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
dnsmasq.server стартует рано, надо unit править, это бага.
Заведёте ?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
polkit.service у вас какого-то фига стартует поздно, вот он NetworkManager'у и мешает

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Заведёте ?

Постараюсь сначала решение найти, надо будет с сизифной версией сравнить.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
polkit.service у вас какого-то фига стартует поздно, вот он NetworkManager'у и мешает
Мне вот тоже интересно, почему это так. Если есть желание, можно этот момент выяснить (время у меня на исследование сейчас есть). В сизифе вроде бы есть изменения по части запуска сервисов (может даже и самих юнитов), плюс там версия systemd другая.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Попробуйте в файл /lib/systemd/system/NetworkManager.service добавить в секцию [Unit] строчку After=polkit.service
А в файл dnsmasq.service добавить также в секцию [Unit] строчку After=network.target
Также скажите к какому пакету относится файл dnsmasq.service и содержимое его покажите. Результат графиком, пожалуйста, покажите.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Также скажите к какому пакету относится файл dnsmasq.service
$ rpm -qf /lib/systemd/system/dnsmasq.service
dnsmasq-2.72-alt1.M70P.1
и содержимое его покажите
# cat /lib/systemd/system/dnsmasq.service

[Unit]
Description=A lightweight DHCP and caching DNS server
After=network.target

[Service]
ExecStartPre=/usr/sbin/dnsmasq-helper prestart
ExecStart=/usr/sbin/dnsmasq-helper start -k --pid-file
ExecStartPost=/usr/sbin/dnsmasq-helper poststart
ExecStopPost=/usr/sbin/dnsmasq-helper poststop
ExecReload=/bin/kill -HUP $MAINPID


[Install]
WantedBy=multi-user.target
График чуть позже покажу, только reboot сделаю.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
График чуть позже покажу, только reboot сделаю.
Результат графиком, пожалуйста, покажите.
Что и требовалось доказать. Результат налицо.
Отключил, получил 10 секунд.
Не десять, но близко и с уже включеным обратно dnsmasq.
Ещё unit файл NM приведу с изменениями:
# cat  /lib/systemd/system/NetworkManager.service

[Unit]
Description=Network Manager
Wants=network.target
Before=network.target
After=polkit.service

[Service]
Type=dbus
BusName=org.freedesktop.NetworkManager
ExecStartPre=/usr/sbin/NetworkManager-prestart
ExecStart=/usr/sbin/NetworkManager --no-daemon
# Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
# with LOG_PERROR when run in foreground. But systemd redirects stderr to
# syslog by default, which results in logging each message twice.
StandardError=null
# NM doesn't want systemd to kill its children for it
KillMode=process

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.NetworkManager.service
Also=NetworkManager-dispatcher.service

systemd-analyze blame
         11.884s NetworkManager.service
          6.866s systemd-udev-settle.service
          4.126s systemd-fsck-root.service
          2.330s systemd-fsck@dev-disk-by\x2duuid-7dd4d2ce\x2dffc0\x2d4a03\x2da876\x2db5e50893dac5.service
          2.019s systemd-fsck@dev-disk-by\x2duuid-10cab70c\x2d0a1f\x2d49c8\x2daefd\x2da6f8f9d7682e.service
          1.251s systemd-modules-load.service
          1.134s altlinux-update_chrooted.service
           968ms dev-hugepages.mount
           967ms dev-mqueue.mount
           933ms x11presetdrv.service
           920ms altlinux-kmsg-loglevel.service
           920ms sys-kernel-debug.mount
           908ms altlinux-save-dmesg.service
           809ms altlinux-idetune.service
           795ms console-kit-log-system-start.service
           642ms systemd-vconsole-setup.service
           567ms systemd-udev-trigger.service
           560ms dnsmasq.service
           542ms home.mount
           481ms systemd-udevd.service
           347ms systemd-sysctl.service
           282ms udisks2.service
           272ms swap.swap
           236ms systemd-readahead-replay.service
           234ms boot.mount
           182ms avahi-daemon.service
           151ms network.service
           148ms console-kit-daemon.service
           129ms polkit.service
           109ms systemd-logind.service
            75ms cpufreq-simple.service
            65ms mnt-sdb1.mount
            62ms systemd-readahead-collect.service
            36ms systemd-tmpfiles-clean.service
            29ms tmp.mount
            13ms systemd-tmpfiles-setup.service
            11ms systemd-remount-fs.service
            10ms systemd-journal-flush.service
             6ms upower.service
             6ms var-lock.mount
             5ms systemd-random-seed-load.service
             3ms systemd-user-sessions.service
             3ms systemd-update-utmp-runlevel.service
             2ms var-run.mount
             2ms systemd-readahead-done.service

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Ага, понятно. Добавьте в файл polkit.service в секцию [Unit] строчку Before=NetworkManager.service
То есть укажем, чтоб polkit.service грузился до NetworkManager.service
Может есть и более разумный вариант, авось кто подскажет.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Добавьте в файл polkit.service в секцию [Unit] строчку Before=NetworkManager.service
Добавил. Нужна ещё одна визуализация ?