Hi Michael,
1) You said this:
And this is the exports file-entry for my autosave folder:
/autosave 172.17.8.0/24(rw,no_subtree_check) 192.168.99.0/24(rw,no_subtree_check)
Have you really created a folder “autosave” under the root directory “/”?
Or you actually created “autosave” under /soft/epics/IOC/iocRtems/? If so, you need to do this in your NFS exports file-entry:
/soft/epics/IOC/iocRtems 172.17.8.0/24(rw,no_subtree_check) 192.168.99.0/24(rw,no_subtree_check)
And you need to change the autosave-related-path in your st.cmd accordingly:
set_savefile_path("/soft/epics/IOC/iocRtems/autosave")
set_requestfile_path("/soft/epics/IOC/iocRtems/autosave")
save_restoreSet_NFSHost("nfsioc","192.168.99.1")
Basically, on your NFS server, you need to create a directory “autosave” and make sure it is writable: mkdir -p autosave; chmod 777 -R autosave;
2) I do not see how the autosave request files (auto_positions.req,
auto_settings.req) are provided/generated. If you are using “info” in your .db, you should use something like below in your st.cmd to automatically generate those request files:
makeAutosaveFileFromDbInfo("/soft/epics/IOC/iocRtems/autosave/auto_positions.req ", "autosaveFields_pass0")
makeAutosaveFileFromDbInfo("/soft/epics/IOC/iocRtems/autosave/auto_
settings.req ", "autosaveFields_pass0")
makeAutosaveFileFromDbInfo("/soft/epics/IOC/iocRtems/autosave/auto_
settings.req ", "autosaveFields_pass1")
Good luck!
Yong Hu
NSLS-II Controls Group
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Reply-To: "Sintschuk, Michael" <michael.sintschuk at bam.de>
Date: Monday, September 21, 2020 at 5:32 AM
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Subject: autosave 5-10-1 on RTEMS-4.10.2, mount failed
Hi all,
I’m setting up an IOC, BASE-3.15.7 and autosave 5-10-1, on an Motorola board MVME-2100 using RTEMS-4.10.2.
The comand save_restoreSet_NFSHost
fails on it with mount failed: Invalid argument .
But my IOC is using nfs to mount it’s “st.cmd” file, so I don’t know why it is not seeing the autosave folder, that is also exported via NFS.
Here is my IOC Start-up:
Copyright Motorola Inc. 1988 - 2004, All Rights Reserved
PPC5 Debugger/Diagnostics Release Version 1.1 - 08/20/2004 RM04
COLD Start
Local Memory Found =02000000 (&33554432)
MPU Clock Speed =200Mhz
BUS Clock Speed =67Mhz
Reset Vector Location : ROM Bank B
Mezzanine Configuration: Single-MPU
Current 60X-Bus Master : MPU0
Idle MPU(s) : NONE
L2Cache: NONE
System Memory: 32MB, Parity NOT Enabled (Non-Parity-Memory Detected)
SelfTest/Boots about to Begin... Press <BREAK> at anytime to Abort ALL
NetBoot about to Begin... Press <ESC> to Bypass, <SPC> to Continue
Network Booting from: DEC21143, Controller 0, Device 0
Device Name: /pci@fec00000/pci1011,19@e,0:0,0
Loading: epics/iocRtems/iocRtems.boot
Client IP Address = 192.168.99.250
Server IP Address = 192.168.99.1
Gateway IP Address = 0.0.0.0
Subnet IP Address Mask = 255.255.255.0
Boot File Name = epics/iocRtems/iocRtems.boot
Argument File Name = /soft/epics/IOC/iocRtems/iocBoot/iocRtems/st.cmd
Network Boot File load in progress... To abort hit <BREAK>
Bytes Received =&1183560, Bytes Loaded =&1183560
Bytes/Second =&591780, Elapsed Time =2 Second(s)
Residual-Data Located at: $01F5511C
Model: Motorola MVME2101 (e2)
Serial: MOT0BC614E
Processor/Bus frequencies (Hz): 200003328/66667776
Time Base Divisor: 4000
Memory Size: 2000000
PCI: Probing PCI hardware
RTEMS 4.x/PPC load:
Uncompressing the kernel...
done
Now booting...
-----------------------------------------
Welcome to rtems-4.10.2(PowerPC/Generic (classic FPU)/mvme2100) on MVME 2100
-----------------------------------------
pci : Configuring interrupt routing for 'MVME 2100'
pci : Device 0:0x00:0 routed to interrupt_line 16
pci : Device 0:0x0D:0 routed to interrupt_line 23
pci : Device 0:0x0E:0 routed to interrupt_line 17
WARNING: unable to allocate page table, keeping DBAT0
WARNING: unable to setup page tables VME bridge must share PCI space
OpenPIC Version 1.2 (1 CPUs and 24 IRQ sources) at 0xFCE40000
OpenPIC Vendor 0 (Unknown), Device 0 (Unknown), Stepping 1
Overriding NumSources (24) from configuration with 16
OpenPIC timer frequency is 8333472 Hz
Universe II PCI-VME bridge detected at 0xFCDFF000, IRQ 23
Universe Master Ports:
Port VME-Addr Size PCI-Adrs Mode:
0: 0x20000000 0x0E000000 0x90000000 A32, D64 [MBLT], Dat, Sup
1: 0x00000000 0x00FF0000 0x9F000000 A24, D64 [MBLT], Dat, Sup
2: 0x00000000 0x00010000 0x9FFF0000 A16, D64, Dat, Sup
Universe Slave Ports:
Port VME-Addr Size PCI-Adrs Mode:
0: 0xC0000000 0x02000000 0x00000000 A32, Pgm, Dat, Sup, Usr, PWEN, PREN
Registering /dev/console as minor 0 (==/dev/ttyS0)
***** RTEMS Version: rtems-4.10.2(PowerPC/Generic (classic FPU)/mvme2100) *****
Startup.
***** Initializing network *****
dec2114x : unit 1 base address FCDFEC00.
dec2114x : driver attached
dec2114x : driver tasks created
dec2114x : 00:01:AF:15:AD:97 name 'dc1', io BFDF80, mem FCDFEC00, int 17
dec2114x: Installing IRQ 17
***** Initializing NFS *****
Mount 192.168.99.1:/soft on /soft
RTEMS-RPCIOD $Release$, Till Straumann, Stanford/SLAC/SSRL 2002, See LICENSE file for licensing info.
RTEMS-NFS $Release$, Till Straumann, Stanford/SLAC/SSRL 2002, See LICENSE file for licensing info.
Warning: No timezone information, times will be displayed in UTC.
***** Starting EPICS application *****
## Example RTEMS startup script
## You may have to change iocRtems to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet("IOC","iocRtems")
epicsEnvSet("TOP","/soft/epics/IOC/iocRtems")
epicsEnvSet("MODULES","/soft/epics/inst-3.15.7")
epicsEnvSet("ASYN","/soft/epics/inst-3.15.7/asyn/4-40-1")
epicsEnvSet("MOTOR","/soft/epics/inst-3.15.7/motor/7-2-1")
epicsEnvSet("PSEUDOMOTAPPS","/soft/epics/inst-3.15.7/pseudoMotors/1-1")
epicsEnvSet("SEQLONG","/soft/epics/inst-3.15.7/seqlong-1-0")
epicsEnvSet("SSCAN","/soft/epics/inst-3.15.7/sscan/2-11-3")
epicsEnvSet("CALC","/soft/epics/inst-3.15.7/calc/3-7-4")
epicsEnvSet("AUTOSAVE","/soft/epics/inst-3.15.7/autosave/5-10-1")
epicsEnvSet("IK342","/soft/epics/inst-3.15.7/IK342")
epicsEnvSet("EPICS_BASE","/soft/epics/base")
cd "/soft/epics/IOC/iocRtems"
## Register all support components
dbLoadDatabase("dbd/iocRtems.dbd")
iocRtems_registerRecordDeviceDriver(pdbbase)
## Load record instances
#dbLoadTemplate("db/iocRtems.substitutions")
dbLoadRecords("db/iocRtems.db", "user=bl")
#var drvOms58debug 10
oms58Setup(11, 0x1000,180,5,2)
IK342Setup(1,0xC000)
set_savefile_path("/autosave/iocRtems")
set_requestfile_path("/autosave/iocRtems")
save_restoreSet_NFSHost("nfsioc","192.168.99.1")
Mount nfsioc:/autosave/iocRtems on /autosave/iocRtems
mount failed: Invalid argument
save_restore: Can't mount '/autosave/iocRtems'
set_pass0_restoreFile("auto_positions.sav")
set_pass0_restoreFile("auto_settings.sav")
#set_pass0_restoreFile("pseudoMotor.sav")
set_pass1_restoreFile("auto_settings.sav")
#set_pass1_restoreFile("detectors.sav")
save_restoreSet_status_prefix("iocRtems:")
save_restoreSet_DatedBackupFiles(1)
save_restoreSet_NumSeqFiles(1)
# Time interval between sequenced backups
save_restoreSet_SeqPeriodInSeconds(600)
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.7
## EPICS Base built Sep 1 2020
############################################################################
*** IK342: Running IK342 Initialization IK342_drv_init ***
1 nIK342Cards, 0xc000. baseAddr
libbspExt - Warning: it seems that MCP support is not available on your CPU
or not implemented by your board. Address probing must
be performed in polling mode with interrupts disabled
../drvIK342.c: card 0 present at addr 9FFFC000
version FF00
reboot_restore: entry for file 'auto_positions.sav'
reboot_restore: Found filename 'auto_positions.sav' in restoreFileList.
*** restoring from '/autosave/iocRtems/auto_positions.sav' at initHookState 6 (before record/device init) ***
save_restore: Can't open file '/autosave/iocRtems/auto_positions.sav'.
save_restore: Trying backup file '/autosave/iocRtems/auto_positions.savB'
save_restore: Can't open file '/autosave/iocRtems/auto_positions.savB'.
save_restore: Can't figure out which seq file is most recent,
save_restore: so I'm just going to start with '/autosave/iocRtems/auto_positions.sav0'.
save_restore: Trying backup file '/autosave/iocRtems/auto_positions.sav0'
save_restore: Can't open file '/autosave/iocRtems/auto_positions.sav0'.
save_restore: Can't find a file to restore from...save_restore: ...last tried '/autosave/iocRtems/auto_positions.sav0'. I give up.
save_restore: **********************************
save_restore: Can't open save file.reboot_restore: entry for file 'auto_settings.sav'
reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
*** restoring from '/autosave/iocRtems/auto_settings.sav' at initHookState 6 (before record/device init) ***
save_restore: Can't open file '/autosave/iocRtems/auto_settings.sav'.
save_restore: Trying backup file '/autosave/iocRtems/auto_settings.savB'
save_restore: Can't open file '/autosave/iocRtems/auto_settings.savB'.
save_restore: Can't figure out which seq file is most recent,
save_restore: so I'm just going to start with '/autosave/iocRtems/auto_settings.sav0'.
save_restore: Trying backup file '/autosave/iocRtems/auto_settings.sav0'
save_restore: Can't open file '/autosave/iocRtems/auto_settings.sav0'.
save_restore: Can't find a file to restore from...save_restore: ...last tried '/autosave/iocRtems/auto_settings.sav0'. I give up.
save_restore: **********************************
save_restore: Can't open save file.init_record: card = 0 channel = 0
init_record: card = 0 channel = 1
init_record: card = 0 channel = 2
init_record: card = 0 channel = 3
reboot_restore: entry for file 'auto_settings.sav'
reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
*** restoring from '/autosave/iocRtems/auto_settings.sav' at initHookState 7 (after record/device init) ***
save_restore: Can't open file '/autosave/iocRtems/auto_settings.sav'.
save_restore: Trying backup file '/autosave/iocRtems/auto_settings.savB'
save_restore: Can't open file '/autosave/iocRtems/auto_settings.savB'.
save_restore: Can't figure out which seq file is most recent,
save_restore: so I'm just going to start with '/autosave/iocRtems/auto_settings.sav0'.
save_restore: Trying backup file '/autosave/iocRtems/auto_settings.sav0'
save_restore: Can't open file '/autosave/iocRtems/auto_settings.sav0'.
save_restore: Can't find a file to restore from...save_restore: ...last tried '/autosave/iocRtems/auto_settings.sav0'. I give up.
save_restore: **********************************
save_restore: Can't open save file.iocRun: All initialization complete
epicsThreadSleep(10.)
create_monitor_set("auto_positions.req", 5, "NULL")
save_restore:readReqFile: unable to open file auto_positions.req. Exiting.
Mount nfsioc:/autosave/iocRtems on /autosave/iocRtems
create_monitor_set("auto_settings.req", 5, "NULL")
mount failedsave_restore:readReqFile: unable to open file auto_settings.req. Exiting.
: #create_monitor_set("pseudoMotor.req",5, "NULL")
Invalid argument#create_monitor_set("detectors.req",5, "NULL")
#fdbrestore("DMMarm.sav")
save_restore: Can't mount '/autosave/iocRtems'
## Start any sequence programs
#seq(sncxxx, "user=bl")
192.168.99.250> save_restore: Can't connect to all status PV(s)
save_restore: attempting to remount filesystem
Mount nfsioc:/autosave/iocRtems on /autosave/iocRtems
mount failed: Invalid argument
save_restore: failed to remount '/autosave/iocRtems'
192.168.99.250>192.168.99.250>
This is how my dhcpd.conf for the MVME-2100 looks like (it is OpenSuse Leap 15.1):
group {
use-host-decl-names on;
always-reply-rfc1048 on;
server-name bam01;
host vmecpu-20 {
option host-name iocRtems;
option script-name "/soft/epics/IOC/iocRtems/iocBoot/iocRtems/st.cmd";
hardware ethernet 00:01:af:15:ad:97;
fixed-address 192.168.99.250;
filename "epics/iocRtems/iocRtems.boot";
next-server 192.168.99.1;
}
And this is the exports file-entry for my autosave folder:
/autosave 172.17.8.0/24(rw,no_subtree_check) 192.168.99.0/24(rw,no_subtree_check)
The command
save_restoreSet_NFSHost("nfsioc","192.168.99.1") is using the
CNAME-Record “nfsioc” which is just an alias for my NFS-Server.
If I set it to the real name of my NFS-Server (“bam01”), it results in the same error:
mount failed: Invalid argument
So what argument am I missing? Does anyone know?
Regards
Michael
Michael Sintschuk
Bundesanstalt für Materialforschung und –prüfung (BAM)
8.5 Mikro-ZfP
Unter den Eichen 87
12205 Berlin
GERMANY
P: +49 30 8104-5736 (BESSY, Adlershof)
P: +49 30 8104-4065 (BAM, Steglitz)
michael.sintschuk at bam.de