Notes on setup a system to run the IARC software on bigdog/guidedog (CentOS 6.x x64) Notes on setting up a CentOS 6.3 x86_64 computer with the IARC controller tools and software. The following software is needed: wine - to execute DOS asm compilers. DSP Tools - from ARC to compile controller .asm files. (ARC-22 board) AstroPCI - PCI board device drivers for ARC-66 PCIe card. ARC API - application interface between IRTF code and the PCI device driver. 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 repositiroies, 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 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 ARC66 Device Driver Compile Astro PCIe - PCI card device driver You will need to build the device driver for your ARC-66 From http://www.astro-cam.com/ you will need the AsroPCIe Board Device Drive. We use the version 3.5 for Centos 6.x 64 bits archived to /home/s2/public_html/vendor_info/arc/software/Arc66PCIe3.5_E6_x64.tar.bz2 Driver was installed to /home/s2/src/driver As 's2', untar it into ~/src/drivers: cd mkdir src/drivers cd src/drivers bzcat /home/s2/public_html/vendor_info/arc/software/Arc66PCIe3.5_E6_x64.tar.bz2 | tar xvf - cd cd astropci/3.5/PCIe/Arc66/src/ Compile the driver: make clean make 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 7615. I want to block out 128MB. The driver's READ_ME file has various thing to try, this is what I did. (Oh yeah, the 3.5 soruce did not have a READ_ME file, so I used the 3.0 READ_ME). Since I have a machine with 8GB of RAM (8192M), It tested the following: The READ_ME samples, vs stuff I tried: Example Tested Results ------------------- ------------------- --------------------------- na free -m total is 7615 mem=500M mem=8000 Did not boot: Error 28:Selected item cannot fit into memory mem=500M memmap=12M$500M mem=8000M memmap=128M$8000M Did not boot: Error 28 mem=500M memmap=12M@500M mem=8000M memmap=128M@8000M Did not boot: Erorr 28 Also tried the above exercise with 7000M ... same result: Error 28. I did some work with moris and memmap: ref: http://irtfweb/~moris/irtf/OS-setup/1210_andor_linux_sdk.html So here I did used the BIOS-e820 data. 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 It did copy the module to: /lib/modules/`uname -r`/extra Said "ls: cannot access /dev/Arc66PCIe*: No such file or directory" Module seem to load, but /dev/ nodes were not created, rebooted PC. /dev/Arc66PCIe0,1 nodes still not present. So I make a simple script called load_arc66 to load the driver and create the device nodes. # cp /home/s2/src/drivers/astropci/3.5/PCIe/Arc66/src/load_arc66 /etc/load_arc66 # vi /etc/rc.local and add: /etc/load_arc66 After a reboot, the driver is loaded and /dev/Arc66PCIe0,1 nodes exits. ARC API Install the ARC Device Driver Application Interface (API) for Linux 64-bits. I archived the downloaded ARCAPI3.5_x64src_linux.tar.bz2 file in /home/s2/public_html/vendor_info/arc/software. The source was untar'ed to ~/src cd ~/src bzcat /home/s2/public_html/vendor_info/arc/software/ARCAPI3.5_x64src_linux.tar.bz2 | tar xvf - This ~/src/ARC_API was left untouch. The Makefile for spex just references this source tree for headers, and compiles the necessary libraries. Spex only uses a small subset of what is needed.