RCng/NTP Catch-22
M. Warner Losh
imp at bsdimp.com
Thu Oct 21 14:05:11 PDT 2004
In message: <20041020220329.64CE75D04 at ptavv.es.net>
"Kevin Oberman" <oberman at es.net> writes:
: I have run into a messy issue with ntp on a V5 or current system. I have
: kludged around it, but the problem really needs to be fixed.
:
: ntpd uses symlinked devices to talk to the reference clock (if there is
: one).
: lrwxr-xr-x 1 root wheel 10 Jul 1 14:36 /dev/pps1 -> /dev/cuaa1
: lrwxr-xr-x 1 root wheel 10 Jul 1 14:36 /dev/true1 -> /dev/cuaa1
:
: While I really wish ntpd did not do this, it does and it's in the base
: system.
:
: Since /etc/rc.d/ntpd contains:
: BEFORE: LOGIN
: and /etc/rc.d/devfs contains:
: REQUIRE: LOGIN
: I don't see a clean way to create the symlinks at boot time. If the
: devices are not present when ntp starts, it never looks again.
:
: I have kludged this by adding the symlinks in the ntpd script, but this
: is really ugly. There should be a better way of doing it. Ideally, ntp
: should read the device(s) to use from ntp.conf (and quit overloading
: the loopback address space while we are at it). Barring this, there
: needs to be a way of getting th devices created before nptd is started.
:
: Any of the RCng folks have any suggestions?
We solved this problem here by doing the following:
# PROVIDE: devfs
# REQUIRE: LOGIN
# BEFORE: securelevel ntpd
# KEYWORD: FreeBSD nojail
But that's suboptimal. devfs should start as soon after fsck has
happened as possible, imho. I don't think the REQUIRE: LOGIN line is
the right one to use, but rather 'mountcritlocal' would be better. In
fact, I have no idea why the above works for us here!
# PROVIDE: devfs
# REQUIRE: mountcritlocal
# BEFORE: ipfilter var
Seems like the right order to me. Or even more radical:
# PROVIDE: devfs
# REQUIRE: root
# BEFORE: mountcritlocal
Since just about anything after root could use a potentially aliased device.
Warner
More information about the freebsd-current
mailing list