1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Error msg |
From: | Stefen Paul <[email protected]> |
To: | EPICS Tech Talk <[email protected]> |
Date: | Wed, 15 Jun 2016 13:05:18 +0530 |
Hi Stefen,
On 06/13/2016 01:13 AM, Stefen Paul wrote:
> *Message-1:*
>
> ld 0,0, "app1.munch"
>
> BSP routine sysAtReboot() not found, epicsExit() will not be called by
> reboot. For reduced functionality, call
> rebootHookAdd(epicsExitCallAtExits)
This is a message from the EPICS code warning you that if you want the
IOC to be able to close its network sockets nicely in response to a
Ctrl+X reboot, you need to make a minor change to your VxWorks source
code. The change is optional, the IOC will work fine without it, but
with it any CA clients will be notified about the IOC rebooting sooner,
and some older network-attached devices using Asyn might not recover
from the IOC rebooting without themselves needing a reboot unless you
add it.
The description of this change at
http://www.aps.anl.gov/epics/tech-talk/2005/msg00004.php was written for
older VxWorks versions; for recent VxWorks 6.x versions I copy the
attached apsRebootHook.c file to
$(WIND_HOME)/vxworks-$(VXWORKS_VERSION)/target/config/comps/src
and then add the following components to my build:
Folder FOLDER_EPICS {
NAME EPICS Components and Configuration
SYNOPSIS Additional components for APS use. \
_CHILDREN FOLDER_ROOT
}
Component INCLUDE_EPICS_REBOOTHOOK {
NAME Early RebootHook capture
SYNOPSIS Run sysRebootHook before the network shuts down.
CONFIGLETTES apsRebootHook.c
INIT_RTN rebootHookAdd(sysRebootHook);
_INIT_ORDER usrRoot
INIT_AFTER usrKernelExtraInit
INIT_BEFORE usrNetworkInit
_CHILDREN FOLDER_EPICS
_DEFAULTS FOLDER_EPICS
}
Copy the above component definitions into a new file
$(WIND_HOME)/vxworks-$(VXWORKS_VERSION)/target/config/comps/vxWorks/50folder_epics.cdf
then close and reopen your VxWorks Image Project inside Workbench and
you should be able to see and add the above components to your the
Kernel Configuration.
> *Message-2:*
>
> iocInit
> Starting iocInit
> ############################################################################
> ## EPICS R3.14.12.4 $Date: Mon 2013-12-16 15:51:45 -0600$
> ## EPICS Base built Oct 16 2014
> ############################################################################
> WARNING: OS Clock time was read before being set.
> Using 1990-01-02 00:00:00.000000 UTC
> iocRun: All initialization complete
> value = 0 = 0x0
>
> Any clues regarding these messages .... may be we need to set the time
> properly for the second case.
Does the IOC ever get the correct time after that?
As Mark Rivers said unless you have configured it otherwise the EPICS
code will ask the boot host for the time using the NTP protocol, but you
can override that and specify a different host for NTP by setting the
environment variable EPICS_TS_NTP_INET with the IP address of the
correct server.
Recent versions of VxWorks also have a built-in time synchronization
task which you can configure while building the OS. In Base-3.15.4 and
later we don't start our own NTP sync task if the OS task is already
running, in which case the above environment variable will never be
used, so you'll want to make sure you have the OS configuration
variables set properly.
HTH,
- Andrew
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon