I don't think this expected. I do not see the behavior on my cameras (though they use PCIE rather than USB). We just purchased some new units, I can try connecting them via USB and let you know if I see the same behavior.
It may be worth trying to remove the udev rule file and try running the IOC as root, just to see if the udev adding/removing is a potential cause for the freeze you are seeing.
If I run
without any application accessing the camera I run udevadm monitor
I see that the the camera with remove/unbind and then add/bind spontaneously at random intervals.
Is this normal ??????
John
KERNEL[252737.012467] remove /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9:1.0 (usb)
KERNEL[252737.012766] unbind /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
KERNEL[252737.012816] remove /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
UDEV [252737.016445] remove /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9:1.0 (usb)
KERNEL[252737.248065] add /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
KERNEL[252737.249020] add /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9:1.0 (usb)
KERNEL[252737.249071] bind /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
UDEV [252737.249934] unbind /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
UDEV [252737.250662] remove /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
UDEV [252737.256154] add /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
UDEV [252737.257899] add /devices/pci0000:00/0000:00:14.0/usb2/2-9/2-9:1.0 (usb)
UDEV [252737.262626] bind /devices/pci0000:00/0000:00:14.0/usb2/2-9 (usb)
I can start image collection, but it stops after some random number of images, measured in hundreds.
Says Acquire = Collecting but image counter stuck.
John
It sounds like the header files or source code are not compatible with the version of the library in the distribution.
Mark
The same hack also allows the IOC to run.
John
If I do ldd on the EPICS built FanSpeedAndTemperature I see it points to
libpvcam.so.2 => [ ... ]/ADKinetix/lib/linux-x86_64/libpvcam.so.2
I then copy libpvcam.* from
/opt/pvcam/library/x86_64/
to
[...]/ADKinetix/lib/linux-x86_64
And my EPICS built version of FanSpeedAndControl now works
What is going on?
John
I have the latest ADKinetix source code.
I modified ADKinetix::ADKinetix to just retrieve the camera name, following
/opt/pvcam/sdk/examples/code_samples
However, the returned name is nonsense. Each run returns a different nonsense result. This was true before my modifications also.
----------
I then did the following:
I verify that I can successfully run
/opt/pvcam/sdk/examples/code_samples/bin/linux-x86_64/release/FanSpeedAndTemperature
Then I copied the example source files
FanSppecandTemperature.cpp
Common.cpp
Common.h
version.h
to
ADKinetix/kinetixApp/src
And I add these lines to the Makefile
PROD_HOST += FanSpeedAndTemperature
FanSpeedAndTemperature_LIBS += pvcam
FanSpeedAndTemperature_SRCS += FanSpeedAndTemperature.cpp
FanSpeedAndTemperature_SRCS += Common.cpp
Which builds FanSpeedAndTemperature using the EPICS build system
The version of FanSpeedAndTemeprature built in this way has the same behavior, outputs a random nonsense name
PVCAM initialized
Number of cameras found: 1
Camera 0 name: '��b"�'
I don't know how to proceed. Any advice appreciated.
John
I have a new Teledyne Retiga E7.
I first tested on windows using the PVCAM software and the Beacon software.
Next on Linux, Alma 9, I verified that /opt/pvcam/bin/PVCamTest/x86_64/'PVCanTestCli succeeds.
Then using ADKinetix R1-1, base-7.0.6 , areaDetector-R3-13 I get a segfault (see below)
What should I do next?
John Dobbins
Research Support Specialist
Cornell High Energy Synchrotron Source
Cornell University
www.chess.cornell.edu
[root@lnx591 iocKinetix]# ../../bin/linux-x86_64/kinetixApp st.cmd
#!../../bin/linux-x86_64/kinetixApp
< /epics/common/xf31id1-lab3-ioc1-netsetup.cmd
Can't open /epics/common/xf31id1-lab3-ioc1-netsetup.cmd: No such file or directory
errlogInit(20000)
< envPaths
epicsEnvSet("IOC","iocKinetix")
epicsEnvSet("TOP","/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADKinetix/iocs/kinetixIOC")
epicsEnvSet("ADKINETIX","/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADKinetix/iocs/kinetixIOC/../..")
epicsEnvSet("SUPPORT","/nfs/chess/epics/det/support_alma")
epicsEnvSet("ASYN","/nfs/chess/epics/det/support_alma/asyn-R4-45")
epicsEnvSet("AREA_DETECTOR","/nfs/chess/epics/det/support_alma/areaDetector-R3-13")
epicsEnvSet("ADSUPPORT","/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADSupport")
epicsEnvSet("ADCORE","/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADCore")
epicsEnvSet("AUTOSAVE","/nfs/chess/epics/det/support_alma/autosave-R5-11")
epicsEnvSet("BUSY","/nfs/chess/epics/det/support_alma/busy-R1-7-4")
epicsEnvSet("CALC","/nfs/chess/epics/det/support_alma/calc-R3-7-5")
epicsEnvSet("SNCSEQ","/nfs/chess/epics/det/support_alma/seq-R2-2-9")
epicsEnvSet("SSCAN","/nfs/chess/epics/det/support_alma/sscan-R2-11-5")
epicsEnvSet("DEVIOCSTATS","/nfs/chess/epics/det/support_alma/iocStats-3-1-16")
epicsEnvSet("EPICS_BASE","/nfs/chess/epics/det/base-7.0.6")
dbLoadDatabase("/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADKinetix/iocs/kinetixIOC/dbd/kinetixApp.dbd")
kinetixApp_registerRecordDeviceDriver(pdbbase)
# Prefix for all records
epicsEnvSet("PREFIX", "RE7")
# The port name for the detector
epicsEnvSet("PORT", "KTX")
# The queue size for all plugins
epicsEnvSet("QSIZE", "20")
# The maximum number of time series points in the NDPluginStats plugin
epicsEnvSet("NCHANS", "2048")
# The maximum number of frames buffered in the NDPluginCircularBuff plugin
epicsEnvSet("CBUFFS", "500")
# The search path for database files
epicsEnvSet("EPICS_DB_INCLUDE_PATH", "/nfs/chess/epics/det/support_alma/areaDetector-R3-13/ADCore/db")
ADKinetixConfig(0, "KTX")
Segmentation fault (core dumped)