Closed LeeYangLBLBCS closed 1 year ago
iopl mean I/O privilege. It allowed non-privileged users to access the PC parallel ports. This is obsolete and no longer needed.
Just run the Mercury with
../../bin/linux-x86_64/dxpApp 4element.cmd
thanks. It turns out that dxpApp is not generated.
Which lead me to think there is something wrong with my libUSB install, though
Installing libUSB didn't help:
sudo apt install libusb-1.0-0-dev
sudo apt install libusb-1.0-0
My CONFIG_SITE file is:
=================================================
# To make a standalone distribution uncomment this line
#STATIC_BUILD=YES
# Uncomment this line if you have libusb-0.1 installed on your Linux system
LINUX_USB_INSTALLED=YES
# Use site-specific definitions from areaDetector to find HDF5, etc.
-include $(AREA_DETECTOR)/configure/CONFIG_SITE
=================================================
Any idea what else I'm missing?
There are 2 versions of libusb. libusb-1.0 is the new version. libusb-0.1 is the old version. You need to install the old version, because that is what dxp uses. Both versions of libusb can be installed at the same time.
You should post the output of the complete rebuild of the dxp module.
I installed libusb-0.1-4, as that is the only one I can find that's closest to libusb-0.1-dev. dxpApp is still not linked. Here is the entire build log: dxp_build_log.txt
You probably need to uncomment this line in dxp/configure/CONFIG_SITE LINUX_USB_INSTALLED=YES
it was uncommented. I've posted it's contents earlier:
================================================
# To make a standalone distribution uncomment this line
#STATIC_BUILD=YES
# Uncomment this line if you have libusb-0.1 installed on your Linux system
LINUX_USB_INSTALLED=YES
# Use site-specific definitions from areaDetector to find HDF5, etc.
-include $(AREA_DETECTOR)/configure/CONFIG_SITE
At the top-level of dxp send the output of these commands:
ls -l lib/linux-x86_64
ls -l bin/linux-x86_64
here it is: bl531@bl531controls:/opt/epics/modules/synApps_6_1_epics7/support/dxp-R6-0$ ls -l lib/linux-x86_64 total 7504 -r--r--r-- 1 bl531 bl531 2490346 Oct 12 12:33 libdxp.a -r-xr-xr-x 1 bl531 bl531 2460688 Oct 12 12:33 libdxp.so -r--r--r-- 1 bl531 bl531 1809926 Oct 12 12:33 libhandel.a -r-xr-xr-x 1 bl531 bl531 917616 Oct 12 12:33 libhandel.so
Please check /opt/epics/modules/synApps_6_1_epics7/support/configure/CONFIG_SITE and /opt/epics/modules/synApps_6_1_epics7/support/configure/CONFIG_SITE.linux-x86_64. One of those files might be setting LINUX_USB_INSTALLED=NO, which overrides the setting in dxp/configure.
You did not send ls -l for the bin/ directory.
I found the problem - the upper level CONFIG_SITE is overriding it. After correcting that, I got the output: bl531@bl531controls:/opt/epics/modules/synApps_6_1_epics7/support/dxp-R6-0$ ls -l bin/linux-x86_64 total 96 -r-xr-xr-x 1 bl531 bl531 76552 Oct 12 13:09 dxpApp -r-xr-xr-x 1 bl531 bl531 17032 Oct 12 13:09 startWithIopl3
I'm getting this error when trying to start IOC: bl531@bl531controls:/opt/epics/modules/synApps_6_1_epics7/support/dxp-R6-0/iocBoot/iocMercury$ ../../bin/linux-x86_64/startWithIopl3 4element.cmd Can't open access to I/O ports: Operation not permitted The error appears to be coming from the line calling a function "iopl" in dxpApp/src/startWithIopl3.c, though I couldn't figure out what "iopl" is.