Notes on setup a system to run the IARC software on CentOS 6.x i386
Notes on setting up a CentOS 6.3 i386 computer with the IARC controller tools and software.
1. Wine and DSP Tools
The DSP tools are needed compile .asm files for iarc. To run these on a
centos computer, you need to install wine. Wine for x86_64 is available from EPEL.
Install the EPEL Repository
Ref: http://www.howtoforge.com/perfect-server-centos-6.3-x86_64-nginx-dovecot-ispconfig-3
section 7 talked about additional repositories, I just did the EPEL.
Download and Install:
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
install yum priorites:
yum install yum-priorities
Edit /etc/yum.repos.d/epel.repo...
vi /etc/yum.repos.d/epel.repo
... and add the line priority=10 to the [epel] section:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]
Install Wine
# yum install wine
A quick test of wine would be: "wine cmd". This should get you athe DOS prompt. Then exit.
Install DSP Tools
From http://www.astro-cam.com/ you will need the Window 56300 Assemblers.
This is used to compile software on the ARC-22 Timing board. This file
has been archived on ~s2/public_html/vendors/arc/software
We will install the dsp tool to ~/tools/DSP in the s2 user account.
cd
mkdir tools
mkdir tools/DSP
cd tools/DSP
cp /home/s2/public_html/vendor_info/arc/software/clas563.zip .
unzip clas563.zip
For a quick test, this should run the aassembler:
> wine /home/s2/tools/DSP/clas563/bin/asm56300
----------------------------------------------------------------------------------
INSTALLING THE IARC SOFTWARE, PER CL's INSTRUCTIONS, but with limited modifications.
----------------------------------------------------------------------------------
2. ARC66 Device Driver
Using a modified 3.0 files from AstroPCIe3.0_E60_x32.tar (archived by iarc)
Per CL 2013/05, plans to take out custom modificaition - he only added ARC commands in .h file.
IARC version of driver is at: /home/iarc/src/DRIVER/astropci/3.0/PCIe/E6.0_x32
Copy and compile IARC 3.0 device driver
Copy
install -d /home/s2/src/drivers/astropci/3.0/PCIe/E6.0_x32
cd /home/s2/src/drivers/astropci/3.0/PCIe/E6.0_x32
cp -pr /home/iarc/src/DRIVER/astropci/3.0/PCIe/E6.0_x32/* .
Make
cd /home/s2/src/drivers/astropci/3.0/PCIe/E6.0_x32
make
(ASK CL ABOUT WARNING MESSAGES)
Allocating Image Buffer Memory
You need to block out some RAM from the linux kernal so the driver can use it for image
memory. Bigdog has 8GB, and on a normal boot 'free -m' reports total 7860.
I want to block out 128MB.
I did "dmesg | grep BIOS-e820" to look for usable RAM, and this line:
BIOS-e820: 0000000020200000 - 0000000040000000 (usable) start=514M end=1024M size=510M
show a big block of RAM at 512M. I put this in /boot/grub/menu.lst:
"memmap=128M$514M" to block out 128M at 514M.
After a reboot, free -m total is now 7487 (that's 128M free'ed)
Loading Driver
Ran Load_Arc64PCI
cd /home/s2/src/drivers/astropci/3.0/PCIe/E6.0_x32
Load_AstroPCIe
ARC API
source for ARC_API is in: /home/iarc/src/IARC/ARC_API/src/ARC_API/3.0/CArcDevice
This has be modified by CL, but CL can make changes to go back to unmodified vendor libs.
COPY:
install -d /home/s2/src/IARC/ARC_API/src/ARC_API/3.0/
cd /home/s2/src/IARC/ARC_API/src/ARC_API/3.0/
cp -pr /home/iarc/src/IARC/ARC_API/src/ARC_API/3.0/* .
make:
cd /home/s2/src/IARC/ARC_API/src/ARC_API/3.0/
make
NOTE TO CL:
CArcPCIe.cpp: line 907, printf with " %x " , but no argument.
Did not do a make, modified iarc server's makefile so that .so are not needed.
DSP CODE
H2RG DSP code is located in /home/iarc/src/H2RG/MKMAC.DSP/H2RG.DSP
COPY:
install -d /home/s2/src/H2RG/MKMAC.DSP/H2RG.DSP
cd /home/s2/src/H2RG/MKMAC.DSP/H2RG.DSP
cp -p /home/iarc/src/H2RG/MKMAC.DSP/H2RG.DSP/* .
NOTE TO CL:
tim script replaced "/home/iarc/" with "$HOME/"
I commented out copy to ~/bin, would rather load from src directory.
MAKC:
run the 'tim' script.
IARC Server
Needs CFITSIO. gocam has version 3.31
Downloaded lastest (V3.340) to src/IARC/cfirtsio, installed:
cd /home/s2/src/IARC/cfitsio
tar xzvf cfitsio_3340.tar.gz
cd cfitsio
./configure
make
make install (installed itself in /home/s2/src/IARC/cfitsio/cfitsio/include/ & lib/).
IARC source code is located in: /home/iarc/src/IARC/iarc
COPY:
install -d /home/s2/src/IARC/iarc
cd /home/s2/src/IARC/iarc
cp -p /home/iarc/src/IARC/iarc/* .
NOTES TO CL:
1. don't need ir1.h if you add these function to iarc_help.c/.h (I did in my copy).
expand_pathname, exist_path create_path (plus a few other functions).
2. Change makefiles so that you don't install thing in /usr
link CArcDevices and fitsio from $HOME/src/....
3. Still TODO: remove /home/iarc/... with $HOME/...
./iarc_commands.c:102: sprintf(filename, "%s", "/home/iarc/bin/tim.lod");
./iarc_controller.c:192: sprintf(iarc_setup.datapath, "%s", "/home/iarc/data/");
./iarc_controller.c:305: printl("updating DSP with /home/iarc/bin/tim.lod\n");
./iarc_controller.c:306: printf("updating DSP with /home/iarc/bin/tim.lod\n");
./iarc_controller.c:307: pArcDev->LoadControllerFile("/home/iarc/bin/tim.lod", true);
./iarc_server.c:109: if ( open_log( "/home/iarc/tmp/iarc_server.log" ) < 0 )
>
I suggest:
expand_pathname( iarc_setup.datapath, sizeof(iarc_setup.datapath), "$HOME/data/" );
WEBGUI
Copied web gui to /home/s2/src/WEBGUI. Run via run.sh.
Just using stock Java from centos 6.x DVD, seems to compile/run OK.
install -d /home/s2/src/WEBGUI
cd /home/s2/src/WEBGUI
cp -r /home/iarc/src/WEBGUI/* .
Other Suggestions
1. Maybe orgainization the code as a single directly tree, that contains all
sources, files need to to run.
~/IARC/dsp/ // DSP Files.
clas563/ // assembler
h2rg/ // h2rg dsp code
alladin/ // aladdin dsp code
other_arrays/
/drivers/ // Device Device Drivers
astropci/
parint/
/ARC_API // CAPI lib needed for IARC Server
/cfitsio // FITS lib needed for IARC Server
/iarc/ // IARC Server
/webgui/ // JAVA Web gui.
/docs/ // Any documentation