====== White Rabbit Hardware on Diskless FECs - Pexaria5 (PCIe) / Vetar2 (VME) ====== To build drivers and tools from GIT we first need to enter a maintenance chroot of the diskless system in question. If git has not been installed yet through the package list facility of the diskless scripts, you have to install it now yum install git As root change to /root via cd ~ and check out the white rabbit source tree: git clone --recursive -b proposed_master https://github.com/stefanrauch/bel_projects.git Enter source tree cd bel_projects and build programs and driver modules via: make KERNELVER=3.6.11.9-rt42 etherbone tools eca tlu driver Specifying the **exact** kernel version string with KERNELVER is crucial.\\ Here, KERNELVER=3.6.11.9-rt42 just serves as an example. \\ To list available valid kernel versions installed on the FEC, do ls -l /boot/vmlinuz-* | sed -nre 's@.*vmlinuz-(.*).*@\1@p' On successful built of tools and driver modules, deploy them via: make KERNELVER=3.6.11.9-rt42 etherbone-install tools-install eca-install tlu-install driver-install In case //depmod// fails, you might want depmod to only care about the specified Linux version.\\ To accomplish this, edit /root/bel_projects/ip_cores/fpga-config-space/vme-wb/Makefile,\\ changing line [ $$(id -u) -ne 0 ] || depmod -a to [ $$(id -u) -ne 0 ] || depmod $(KERNELVER) ===== Linking to Init Scripts ===== Depending on the used White Rabbit timing receiver, either Pexaria5 (PCIe) or Vetar (VME), \\ the appropriate init script need to be linked to the specific FEC.\\ Currently, on //sdlx014// where the diskless mounts reside, \\ two relevant directories exist for this matter. The directory that holds the "real" init scripts sdlx014:/srv/diskless/fec/global/scripts/ is mounted on the FEC (exemplary sddsc043) at sddsc043:/fec/global/scripts For a specific FEC symlinks to the appropriate script are generated.\\ The symlinks reside in the FEC-specific directory sdlx014:/srv/diskless/fec/local/sddsc043/etc/init.d/ which is mounted on the FEC at sddsc043:/fec/local/etc/init.d When creating symlinks on sdlx014 they must be follow the \\ mounting at the FEC, which is error prone some time.\\ Viewed from sdlx014 the symbolic link //seems// to link to a dead file,\\ marked by a blinking red link target. Links can have arbitrary names. All init scripts in the directory will \\ be executed. However, the name should be prefixed with a number, \\ which allows for structured precedence. Scripts starting with lower \\ numbers are executed earlier. This is important in case of dependencies. === Example === Let's assume, for VME FEC sddsc043, we want to link to the init script\\ for the Vetar VME White Rabbit card.\\ The script we're targeting resides in the global scripts directory\\ and is called //vetar_load2//.\\ On sdlx014 we have to do the following: cd /srv/diskless/fec/local/sddsc043/etc/init.d/ ln -s /fec/global/scripts/vetar_load2 10_vetar