Я использую Huawei E3531 для подключения Raspberry Zero, работающего на vanilla Raspbian 8.0 (jessie) к интернету. По мере того как это для удаленного автономного применения, для этого нужно мочь автоматически получить назад онлайн после сил-светомаскировки.
Я сконфигурировал usb_modeswitch для переключения USB-режима на cdc_ether, который надежно вызывает eth0 после modeswitch. К сожалению usb_modeswitch начинается после сетевые устройства настроены, поэтому network-link не вызывается при холодной загрузке (хорошо работает при перезагрузке, где режим уже установлен правильно).
По данным https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ это должно быть возможным, чтобы добавить network-pre.цель-директивы к сервису, чтобы заставить его работать, прежде чем сеть настроена:
network-pre.цель-это цель, которая может быть использована для заказа услуг
перед любой сетью интерфейс настроен.
Основная цель для использования с обслуживаниями брандмауэра которые хотят
чтобы установить брандмауэр перед запуском любого сетевого интерфейса.пассивный блок: вы не можете начать его сразу и оно не вытягивано
в службой сетевого управления, но службой, которая
хочет убежать раньше него.
[..]
Службы, которые необходимо запустить до настройки сети
должны доводить до=сети-до.цель и также набор Хочет=сеть-предварительно.цель
чтобы потянуть его внутрь.
Таким образом, если на самом деле нет услуги, которую нужно заказать
прежде чем сеть является целью, не втягивается, следовательно избегая
любая ненужная точка синхронизации.
я модифицировал в/var/lib в/systemd в/системы/usb_modeswitch@.служба и добавил До-/Хочет-директивы, таким образом:
[Unit]
Description=USB_ModeSwitch
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-systemd %I
Environment="TMPDIR=/run"
что теперь приводит к Ошибка "цикл заказа" при загрузке:
[..]
[ OK ] Started Trigger Flushing of Journal to Persistent Storage.
[ SKIP ] Ordering cycle found, skipping LSB: Raise network interfaces.
[ SKIP ] Ordering cycle found, skipping Network (Pre)
[ OK ] Created slice system-usb_modeswitch.slice.
[..]
вот вывод systemctl шоу ..:
root@raspberrypi:/lib/systemd/system# systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After usb_modeswitch@.
Requires=basic.target
Requisite=
Wants=network-pre.target system-usb_modeswitch.slice
BindsTo=
PartOf=
Before=network-pre.target shutdown.target
After=systemd-journald.socket basic.target system-usb_modeswitch.slice
root@raspberrypi:/lib/systemd/system# systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After usb_modeswitch@.service
Failed to get properties: Unit name usb_modeswitch@.service is not valid.
root@raspberrypi:/lib/systemd/system#
мне тоже интересно, почему systemctl шоу работает с usb_modeswitch@. а не с usb_modeswitch@.служба
удаление двух строк в служебном файле восстанавливает старое поведение без ошибок пропуска.
есть ли другой способ вызвать сетевые интерфейсы после usb_modeswitch? Нужно ли что-то еще адаптировать в systemd-конфигурации, чтобы это работало?