[PATCH] ugps: start also in case device is absent
Daniel Golle
daniel at makrotopia.org
Fri May 28 01:06:41 PDT 2021
On Fri, May 28, 2021 at 09:58:48AM +0200, Piotr Dymacz wrote:
> Hi Daniel,
>
> On 27.05.2021 12:37, Daniel Golle wrote:
> > Don't bail out from init script in case the GPS device is missing.
> > Some modems take time to come up, and some people may use things like
> > 'kplex' to feed ugpsd. Hence it is better to always start ugpsd
> > unconditionally and let procd's respawn take care of retrying.
>
> Wouldn't hotplug be a better solution than respawning process forever (not
> sure about kplex usage)?
If it was an actual serial device being used, then yes, hotplug would
be the better solution. If what we are waiting for is a PTY created by
another process (think: kplex) hotplug would not be of much use there
(maybe inotifywait on a directory in tmpfs only used for the gps PTY
would be an option, but then require inotifywait...).
I agree that it would be nice to find a generic catch-them-all solution
though which doesn't require endless respawning.
>
> --
> Cheers,
> Piotr
>
> >
> > Signed-off-by: Daniel Golle <daniel at makrotopia.org>
> > ---
> > package/utils/ugps/Makefile | 2 +-
> > package/utils/ugps/files/ugps.init | 12 ++++++++----
> > 2 files changed, 9 insertions(+), 5 deletions(-)
> >
> > diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile
> > index 4ce64d9631..16cdbc41b9 100644
> > --- a/package/utils/ugps/Makefile
> > +++ b/package/utils/ugps/Makefile
> > @@ -8,7 +8,7 @@
> > include $(TOPDIR)/rules.mk
> > PKG_NAME:=ugps
> > -PKG_RELEASE:=1
> > +PKG_RELEASE:=2
> > PKG_SOURCE_URL=$(PROJECT_GIT)/project/ugps.git
> > PKG_SOURCE_PROTO:=git
> > diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init
> > index 3cd1ca1b8d..f52b19cc27 100644
> > --- a/package/utils/ugps/files/ugps.init
> > +++ b/package/utils/ugps/files/ugps.init
> > @@ -17,10 +17,14 @@ start_service() {
> > [ "$disabled" == "0" ] || return
> > - [ -c "$tty" ] || {
> > - tty="/dev/$tty"
> > - [ -c "$tty" ] || return
> > - }
> > + case "$tty" in
> > + "/"*)
> > + true
> > + ;;
> > + *)
> > + tty="/dev/$tty"
> > + ;;
> > + esac
> > procd_open_instance
> > procd_set_param command "$PROG"
> >
>
More information about the openwrt-devel
mailing list