flip controller/controlled relationship for wwan services

This commit is contained in:
Daniel Barlow 2024-06-11 14:02:48 +01:00
parent e6ca5ea064
commit 6daeaf29a0
1 changed files with 20 additions and 23 deletions

View File

@ -29,30 +29,21 @@ let
"OK" "AT\\^NDISDUP=1,1" "OK" "AT\\^NDISDUP=1,1"
"OK" "OK"
]; ];
modeswitch = oneshot { modeswitch = oneshot rec {
name = "modem-modeswitch"; name = "modem-modeswitch";
controller = (svc.uevent-rule.build {
serviceName = name;
terms = { devtype = "usb_device"; product = "12d1/14fe/102"; };
});
up = '' up = ''
${usb-modeswitch}/bin/usb_modeswitch -v 12d1 -p 14fe --huawei-new-mode ${usb-modeswitch}/bin/usb_modeswitch -v 12d1 -p 14fe --huawei-new-mode
''; '';
}; };
atz = oneshot { atz = oneshot rec {
name = "modem-atz"; name = "modem-atz";
dependencies = [ modeswitch ]; dependencies = [ modeswitch ];
up = '' controller = (svc.uevent-rule.build {
ls -l /dev/modem serviceName = name;
${ppp}/bin/chat -s -v ${chat} 0<>/dev/modem 1>&0
'';
down = "${ppp}/bin/chat -v '' ATZ OK 0<>/dev/modem 1>&0";
};
setup = bundle {
name = "modemm-mm-mm-mm";
contents = [
(svc.uevent-rule.build {
service = modeswitch;
terms = { devtype = "usb_device"; product = "12d1/14fe/102"; };
})
(svc.uevent-rule.build {
service = atz;
terms = { terms = {
subsystem = "tty"; subsystem = "tty";
attrs = { attrs = {
@ -61,10 +52,16 @@ let
}; };
}; };
symlink = "/dev/modem"; symlink = "/dev/modem";
}) });
]; up = ''
ls -l /dev/modem
test -L /dev/modem || exit 1
${ppp}/bin/chat -s -v ${chat} 0<>/dev/modem 1>&0
'';
down = "${ppp}/bin/chat -v '' ATZ OK 0<>/dev/modem 1>&0";
}; };
in svc.network.link.build { in svc.network.link.build {
ifname = "wwan0"; ifname = "wwan0";
dependencies = [ setup ]; dependencies = [ atz ];
} }