Планета Calculate

Облако тэгов

звуковые карты wi-fi udev news полезное работа mail swap abi_x86_32 KDE5 xsel серые листы winbind tracker ДНК cld cp1251 live-flash valve syslog QupZilla kvm cairo-dock автологин настройка цветов принтера freerdp mpg123 форматирование текста профиль пользователя bonding book dwm NetworkManager apvlv CLDG qemu rtorrent uptime rutorrent ati autologin ccze asus n10j press радио mailman BINHOST builder persistence icons bash CSS клавиатура kde5 cldg strategy benchmark zstd matrix форум lm_sensors screenshot alpha пресса feh tun slim maillist lighttpd шаблоны домашний сервер Gnome3 hdmi CSC remoteapp zswap networking flashplayer atom n270 Книги foto тема pam power KDE dhcpcd android textile bond Tor elogv многопоточная закачка asus x86 revision tint browser ati-drivers asterisk lirc vaio games desktop ups ускорение Xorg windows MultiTail instagram BugTracker cpu family mplayer реестр PowerTOP su ПО RT mencoder package unmasking установка net cl-builder vulnerability blog tint2 программист LXC qrencode сайт утилитки на Icon EFI plymouth ControlMaster calculate-access помощь день рождение LXD vps рассылка man LTE фидонет pre qupzilla db Calculate E17 wiki umd persistence-mode IRC mirrorselect aufs xfce оптимизация AMD bootchart cryptsetup pxe birthday obmenu доступ rdp LXQt emerge radeon pf-kernel udisks ntfs-3g xen grub openbox midori кодировка CP1251 настройка цветов сканера beta keyboard systemd-udevd Calculate package sound gcc handbook ini.env grc MATE kernel pwkl cds xpak командная строка firefox mate make.conf XZ kernek win7 acl jabber recordmydesktop windows 7 firmware tweaks autounmask ext4 minicom двойная загрузка nextcloud Matrix #calculatelinux linux tbn bug xmpp виртуализация benchmarking raid Firefox hibernate calculate2 w2k3 маршрутизатор gnome vpn support calculate-install-gui calculate utilities glx-dock CLC 4G calculate utils otter features profile Windows 7 Huawei new tools CDS dns dhcp настройка цветов фотоаппарата Calculate Linux Enlightenment сглаживание udisks-glue reader цветовой профиль icc фидо перенесено костыли распространение pdf cmc dropbox kde xfce pastebin twitter ssh шрифт authentication cls канал wget uksm LVM world мышка день программиста Midnight Commander lxc-desktop sudo kde nano calculate-sources templates temperature pitivi calculate 2.2 portage CMC xchat ПДУ howto muqss theme звук dvcs meta djvu cl-update-profile X linuxdcpp 1C postgresql apache fontconfig lcdfilter fonts шрифты DPI atheros9285 ratigan монитор экран разрешение CLDXE sony smplayer описание tuxonice flags optimization fonts bluetooth uefi openvpn VirtualBox nm-applet weechat 11.6 backdor qr-code alsa torrent tail forum интервью Audio utilities donation сеты monitoring распространение программ systemd Office security загрузчик dhcp binhost Скоростной алгоритм сжатия LZ4 TV GSC canto браузер CL14 xxkb участие USE samba screensaver MyRuLib lto distro xbmc keyexec python3 Снобизм stage luks pae UTF-8 оптимизация linux lautre дизайн energy saving plan репозиторий Summer Camp 3G курсор мыши dnscrypt install Calculate Utilities Библиотека shorewall gnome3 GPT steam производительность gentoo vlc p2p mp3 Plasma plugn ldap screencast icon w2k8 mc lvm Compose установка Icon в Calculate nexus repo git team CLDC Atheros XFCE cldm сборка из исходников openssh pulseaudio pgo помощь проекту CLDM liveusb ppp0 tap mouse vim перемещаемые профили cl-kernel iptables mirror android kde mtp livecd Gnome cpp livedvd установка linux e4rat calculate3 начало XMPP update caffeine binary code dns calculate linux antivirus free documentation calculate-install dmidecode kde и многопоточный звук codelite euse CLSK rip grub2 интернет unclutter freshplayerplugin hdd most openrc container release Либрусек acoola новости SSD bsa font iphone dconf btrfs E17 nut настройка цветов монитора план RSS безопасность ebuild ядро gnome 2 github ncurses markdown почта удаленная сеть qutim разработка xorg packages openldap udisks template calculate postfix ffmpeg ubuntu clementine глобальное меню загрузка CL17 CLSL EAPI 2 CLS обмен опытом E17 Calculate bridge telegram chromium OpenRC Timeless overlay libvirt создание подсветки синтаксиса bittorrent АТС nouveau network calculate-utils server developers вакансия ParaType facebook locale Desktop eudev DNA CCDX irc оптимизация ядра CDS настройка linux atheros calculate linux obconf automagic reestr pptp MidnightCommander cl-console-bg cl CLDX linux CLDL internet history objecticon видео blueman firewall layout Zen softraid CLD подсветка синтаксиса video python dmix debian localepurge google talk-plugin smart блог bash-completion кеширование proxy Icon Calculate USB Creator Calculate Linux Spamassassin брелок programming сервер Cinnamon unicode

Systemd-udevd

Добавил(а) Alexander Tratsevskiy около 4 лет назад

Самое на наш взгляд неприятное, чем грозит повальный переход на systemd, это отсутствием выбора! Откройте Gentoo Handbook и вы увидите всё богатство выбора, которое предоставляет вам Linux: выбор системной службы журналирования, выбор демона cron, выбор dhcp-клиента, выбор загрузчика и т.д. Пробуйте, сравнивайте, оценивайте по вашим задачам и выбирайте для себя лучшие решения!

А теперь давайте посмотрим, что нам предлагает интегрированный в состав systemd udev. Возможно вы сталкивались с такой вещью, как изменение имён сетевых интерфейсов после обновления ядра "eth0 <-> eth1". Это может происходить по разным причинам, например для двух карт стал использоваться один драйвер, либо его логика изменилась. Если ваш сервер имеет более одной сетевой карты, случайное переименование может сделать сервер недоступным! В своё время, чтобы не наступить на эти грабли дважды, мы просто отключили вторую сетевую карту в Bios.

Позже с приходом Udev появилось неплохое решение, вы могли чётко зафиксировать имена eth0 и eth1 по мак-адресу в файле настроек /etc/udev/rules.d/70-persistent-net.rules. Переименование работало корректно даже если ядро использовало те же имена. В этом случае Udev переименовывал примерно так: eth1 -> eth125, eth0 -> eth126, eth125 -> eth0 и eth126 -> eth1. И всё работало ровно до того момента пока Udev не начали прибивать гвоздями к systemd, выпиливая идеологически ненужный функционал. В новых версиях Udev переименование работает только в том случае, если оно не конфликтует с уже присвоенными ядром сетевыми именами интерфейсов. Изменения коснулись и 70-persistent-net.rules, который больше не создаётся по умолчанию.

Около двух месяцев назад мы проводили опрос о предпочтениях пользователей. В опросе участвовало 220 человек. Из них 76% опрошенных отдали предпочтение классическим именам "eth0" и только 6% новым "enp0s25". Мы задались вопросом о том, можно ли вернуть классические имена. Вспомнили предложение пользователей мигрировать на eudev. К этому времени уже были выполнены успешные переходы на eudev в других дистрибутивах. Eudev на тот момент использовал как раз классические имена по умолчанию и обладал всем тем функционалом, который был удалён в Udev. Казалось бы вот оно счастье.

Но вышел Eudev 3.0, главной целью которого похоже ставят отсутствие зависимостей от systemd. В остальном, к сожалению, он остаётся всё тем же клоном Udev. Похоже разработчики просто смирились, выбрав меньшее зло. У себя вы можете по прежнему использовать классические имена несколькими способами: передачей параметра net.ifnames=0 ядру при загрузке или удалением скрипта отвечающего за именование сетевых интерфейсов /lib/udev/rules.d/80-net-setup-link.rules. Потребуется так же удалить готовые правила /etc/udev/rules.d/70-persistent-net.rules, либо вписать классические имена. Если сетевая карта одна, проблем никаких не будет.

Восстановление и поддержка правил переименования интерфейсов потребует дополнительных временных затрат. Всё же это не наша цель. Скорей всего в итоге все дистрибутивы Linux будут использовать новые имена. То ли ещё будет.

Сегодняшним обновлением портежей 30-я ревизия (/var/lib/layman/calculate/profiles/templates/3.3/6_ac_update_sync/revision/30-net_trigger) создаст /etc/udev/rules.d/70-persistent-net.rules, если он у вас не создан. Обратите внимание, если у вас несколько сетевых карт, вы используете классические имена сетевых интерфейсов "eth0" и вы используете openrc для настройки сети, с переходом на eudev 3.0 переименование может не сработать! Дайте именам свои названия, отредактировав файл 70-persistent-net.rules, после чего проверьте ваши настройки сети /etc/conf.d/net, наличие символических ссылок в /etc/init.d/net.XXX, а так же другие ваши настройки, где используются сетевые имена, например маршрутизатора, файрвола.

bamboo_bike.jpg (63,81 КБ)


Комментарии

Comment

Добавил(а) Николай Ка около 4 лет назад

Ну то есть мы вернулись к ситуации полуторалетней давности, когда udev форкнули параллельно две команды, после долгой и мучительной дискуссии на багзилле коды слили на условиях разработчиков gentoo, а теперь опять появилась необходимость в форке форка... что и будет, вернее всего, сделано. Появились уже сообщения о переводе грядущих версий некоторых пакетов с gtk3 обратно на gtk2... Имена интерфейсов -- не самое большое зло, хотя помимо неэстетичности/неудобности длинных имён есть свои недостатки. Переткнув карточку в другой слот мы получим ровно ту же проблему, только без средств её решения в виде 70-persistent-net.rules в стиле "прописал один раз и голова не болит". Главная проблема -- искусственное создание головных болей для всего линукс сообщества как силового аргумента в пользу своих решений.

У меня иногда создаётся впечатление, что подпольная цель красной шапочки -- популяризация FreeBSD... я для себя решил, что если линукс сообщество всё-таки прогнётся под Red Hat с их маниакальным желанием контролировать развитие системы полностью, я готов свалить на фрю. Не так уж она и отличается от gentoo, по большому счёту.

Comment

Добавил(а) Никита Блюдин около 4 лет назад

Симлинк 80-net-setup-link.rules -> /dev/null в /etc/udev/rules.d/ более правилен чем удаление /lib/udev/rules.d/80-net-setup-link.rules, который к тому же вернётся после переустановки/обновления.

Comment

Добавил(а) Alexander Tratsevskiy около 4 лет назад

Не вернётся если удалять шаблоном.

Comment

Добавил(а) Jonny Talker около 4 лет назад

Alexander Tratsevskiy писал(а):

Сегодняшним обновлением портежей 30-я ревизия (/var/lib/layman/calculate/profiles/templates/3.3/6_ac_update_sync/revision/30-net_trigger) создаст /etc/udev/rules.d/70-persistent-net.rules, если он у вас не создан.

Не создал.

Comment

Добавил(а) Alexander Tratsevskiy около 4 лет назад

Не создал.

В /etc/calculate/ini.env в секции [overlay-distros] world = 30? eudev какой версии?

Попробуйте выполнить

/bin/udevadm trigger -c add -s net

Отработает, если у вас eudev версии < 3.0

Comment

Добавил(а) Jonny Talker около 4 лет назад

Alexander Tratsevskiy писал(а):

В /etc/calculate/ini.env в секции [overlay-distros] world = 30?

...world = 28
обновлял через cl-update сегодня, буквально недавно
т.е. сегодняшняя 30-я ревизия будет более позднее чем сегодня?

eudev 3.0 (думаю что если бы версия была бы ниже, то не писал бы ничего, а так мне это eth сломало)

/bin/udevadm trigger -c add -s net

ни к чему визуальному или хорошему не привел

И еще один вопрос, не совсем про eudev, но с ситуаций связаный возможно:
Если что-нибудь устанавливась с использованием --oneshot - то "cl-update -e -v" под конец выдаёт предложение это "что-нибудь" удалить. Удалять не хотим и на "No" получаем "Update failed", хотя вроде всё обновилось: http://www.calculate-linux.org/issues/659
Будет ли более правильным делать в таком случае "cl-update -e -v -o " ? (ибо оно хотя бы не заказнчиватся "Update failed")

Comment

Добавил(а) Alexander Tratsevskiy около 4 лет назад

Немного ошибся, посмотрите в секции "[overlay-calculate]" чему равно значение world.

Обновление до eudev 3.0 привело к поломке путей. Мы сделали откат до 2.1.1, после чего написали ревизию, прописывающую имена в 70-persistent-net.rules. Возможно вы не обновляли несколько дней, получилось так, что ревизия не отработала, т.к. в 3.0 уже нет правила, создающего файл с именами.

По поводу "Update failed", поправим в ближайшее время.

Comment

Добавил(а) Jonny Talker около 4 лет назад

Да, так и было. Это был стейдж cds-20150312-x86_64 и он с установки не обновлялся. Система была тестовая (жду номерного релиза), так что ничего страшного не случилось

В ini.env сейчас имею: http://pastebin.calculate-linux.org/en/show/10680

[overlay-calculate]
remerge = 35
world = 3
revision = 30

И по "Update failed". Может стоит добавить выключенный по дефолту ключ который предлагал бы удаление не всем "набором", а "поштучно"? И не так категорично: No => Failed.

Comment

Добавил(а) Alexander Tratsevskiy около 4 лет назад

Поштучно думаю не очень неудобно будет, если допустим 5-10 пакетов будут удаляться, в этом случае нужно запастись терпением и жать Yes/No с определёнными интервалами. Опять же это будет не поведение по-умолчанию.

Спасибо!