Como eu conecto um dongle 3G usando o systemd?

5

Na inicialização, usb-modeswitch alterna automaticamente o dongle para o modo modem e o dispositivo se mostra como 12d1:1506 . Depois disso, um script deve ser executado, conectando-se à Internet. Não tenho certeza sobre o uso de /etc/rc.local , já que o Arch foi movido para systemd puro. Como posso expressar essa dependência (executar um script somente após o dispositivo ter mudado) em systemd terms?

udev regras não podem executar scripts longos, e o meu é.

    
por Moshanator 06.09.2013 / 18:46

1 resposta

4

A abordagem recomendada seria ter udev iniciando um systemd service, que depende do seu dispositivo.

O arquivo de serviço deve ter uma aparência semelhante à seguinte:

my.service - a ser colocado em /etc/systemd/system

[Unit]
Description=<DESCRIPTION HERE>
BindsTo=<DEVICE UNIT HERE>.device
After=<DEVICE UNIT HERE>.device

[Service]
ExecStart=<CALL TO SCRIPT HERE>

Nota: para obter uma lista das unidades de dispositivo disponíveis, use

list-units --all --full | grep ".device"

E a regra udev deve ser algo como o seguinte:

90-my.rules - a ser colocado em /etc/udev/rules.d

KERNEL=="tty*", ATTRS{serial}=="<DEVICE SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}="my.service"

Nota: para obter uma lista dos atributos do seu dispositivo específico, incluindo seu número de série, use

udevadm info -a -n /dev/tty*

Esta questão , embora bastante diferente, também pode ser de interesse.

    
por 08.09.2013 / 23:52