progetti:puma:pxftvmex_-_fresh_install_notes
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| progetti:puma:pxftvmex_-_fresh_install_notes [2020/12/18 11:56] – leombru@infn.it | progetti:puma:pxftvmex_-_fresh_install_notes [2020/12/21 13:30] (current) – leombru@infn.it | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== pcftkvmeX Fresh OS Install - notes ===== | ||
| + | These notes are valid on Red Hat-based distributions such as SLC6 and CentOS7. In the following, the shell commands prefaced with '' | ||
| + | |||
| + | ==== Installing AFS ==== | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | First of all, install and upgrade all the necessary binaries. You need to import an external repository in order to install [[wp> | ||
| + | |||
| + | < | ||
| + | # yum install https:// | ||
| + | # yum repolist | ||
| + | </ | ||
| + | |||
| + | Now you can install all the prerequisites: | ||
| + | |||
| + | < | ||
| + | # yum install -y rpm-build yum-utils make perl libtool bzip2 wget elfutils-devel dkms gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) | ||
| + | </ | ||
| + | |||
| + | Make a temp folder in the root user's home and download all the files corresponding to the current stable release of OpenAFS (at the time of writing, 1.8.6). | ||
| + | |||
| + | < | ||
| + | # mkdir ~/temp | ||
| + | # cd ~/temp | ||
| + | # wget http:// | ||
| + | # wget http:// | ||
| + | # wget http:// | ||
| + | # wget http:// | ||
| + | </ | ||
| + | |||
| + | Extract from the source tarball the RPM-making Perl script and use it to compile a '' | ||
| + | |||
| + | < | ||
| + | # tar xf openafs-1.8.6-src.tar.bz2 --strip-components=4 ' | ||
| + | # perl makesrpm.pl openafs-1.8.6-src.tar.bz2 openafs-1.8.6-doc.tar.bz2 RELNOTES-1.8.6 ChangeLog | ||
| + | </ | ||
| + | |||
| + | Check if all necessary dependencies are installed (if not, refer to both the command output and the beginning of this section to find the missing ones): | ||
| + | |||
| + | < | ||
| + | # yum-builddep openafs-1.8.6-1.src.rpm | ||
| + | </ | ||
| + | |||
| + | Rebuild the RPM in order to perform the included scripts: | ||
| + | |||
| + | < | ||
| + | # rpmbuild --rebuild openafs-1.8.6-1.src.rpm | ||
| + | </ | ||
| + | |||
| + | Now you can finally install the generated RPMs: | ||
| + | |||
| + | < | ||
| + | # cd ../ | ||
| + | # yum install -y openafs-1.8.6-1.el7.x86_64.rpm openafs-client-1.8.6-1.el7.x86_64.rpm openafs-krb5-1.8.6-1.el7.x86_64.rpm dkms-openafs-1.8.6-1.el7.x86_64.rpm | ||
| + | </ | ||
| + | |||
| + | For the last steps, we need to set the single-board computer as part of the Cern cell: | ||
| + | |||
| + | < | ||
| + | # cd / | ||
| + | # echo " | ||
| + | # curl -o CellServDB http:// | ||
| + | </ | ||
| + | |||
| + | We're done! Start and enable the OpenAFS service and check if the ''/ | ||
| + | |||
| + | < | ||
| + | # systemctl start openafs-client | ||
| + | # systemctl enable openafs-client | ||
| + | # ls /afs/ | ||
| + | </ | ||
| + | |||
| + | The last command should return the list of AFS cells (acm-csuf.org, | ||
| + | |||
| + | ==== Installing CVMFS ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | # yum install https:// | ||
| + | # yum repolist | ||
| + | </ | ||
| + | |||
| + | Install the package: | ||
| + | |||
| + | < | ||
| + | # yum install -y cvmfs | ||
| + | </ | ||
| + | |||
| + | Now we need to configure the CVMFS repositories and client profile. Start by invoking the autoconfigure script: | ||
| + | |||
| + | < | ||
| + | # cvmfs_config setup | ||
| + | </ | ||
| + | |||
| + | Now you need to create the ''/ | ||
| + | |||
| + | < | ||
| + | CVMFS_REPOSITORIES=atlas.cern.ch, | ||
| + | CVMFS_CLIENT_PROFILE=single | ||
| + | |||
| + | </ | ||
| + | |||
| + | Done! | ||
| + | |||
| + | ==== Installing the TDAQ driver ==== | ||
| + | |||
| + | For convenience, | ||
| + | |||
| + | * / | ||
| + | * /ATLAS/ | ||
| + | * /ATLAS/bin/ | ||
| + | * ... | ||
| + | * / | ||
| + | * ... | ||
| + | * / | ||
| + | * ... | ||
| + | * /ATLAS/lib/ | ||
| + | * ... | ||
| + | * /AFS/ | ||
| + | * ... | ||
| + | * ... | ||
| + | |||
| + | Theoretically, | ||
| + | |||
| + | < | ||
| + | # yum install -y / | ||
| + | </ | ||
| + | |||
| + | If it fails with error '' | ||
| + | |||
| + | < | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | I managed to fix this by modifying the ''/ | ||
| + | |||
| + | <code c> | ||
| + | enum hrtimer_mode { | ||
| + | HRTIMER_MODE_ABS = 0x0, /* Time value is absolute */ | ||
| + | HRTIMER_MODE_REL = 0x1, /* Time value is relative to now */ | ||
| + | HRTIMER_MODE_PINNED = 0x02, /* Timer is bound to CPU */ | ||
| + | HRTIMER_MODE_ABS_PINNED = 0x02, | ||
| + | HRTIMER_MODE_REL_PINNED = 0x03, | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | with the following ones, taken by a newer kernel version: | ||
| + | |||
| + | <code c> | ||
| + | enum hrtimer_mode { | ||
| + | HRTIMER_MODE_ABS = 0x00, | ||
| + | HRTIMER_MODE_REL = 0x01, | ||
| + | HRTIMER_MODE_PINNED = 0x02, | ||
| + | HRTIMER_MODE_SOFT = 0x04, | ||
| + | HRTIMER_MODE_HARD = 0x08, | ||
| + | |||
| + | HRTIMER_MODE_ABS_PINNED = HRTIMER_MODE_ABS | HRTIMER_MODE_PINNED, | ||
| + | HRTIMER_MODE_REL_PINNED = HRTIMER_MODE_REL | HRTIMER_MODE_PINNED, | ||
| + | |||
| + | HRTIMER_MODE_ABS_SOFT = HRTIMER_MODE_ABS | HRTIMER_MODE_SOFT, | ||
| + | HRTIMER_MODE_REL_SOFT = HRTIMER_MODE_REL | HRTIMER_MODE_SOFT, | ||
| + | |||
| + | HRTIMER_MODE_ABS_PINNED_SOFT = HRTIMER_MODE_ABS_PINNED | HRTIMER_MODE_SOFT, | ||
| + | HRTIMER_MODE_REL_PINNED_SOFT = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_SOFT, | ||
| + | |||
| + | HRTIMER_MODE_ABS_HARD = HRTIMER_MODE_ABS | HRTIMER_MODE_HARD, | ||
| + | HRTIMER_MODE_REL_HARD = HRTIMER_MODE_REL | HRTIMER_MODE_HARD, | ||
| + | |||
| + | HRTIMER_MODE_ABS_PINNED_HARD = HRTIMER_MODE_ABS_PINNED | HRTIMER_MODE_HARD, | ||
| + | HRTIMER_MODE_REL_PINNED_HARD = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_HARD, | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | You may need to adapt this to your system, modifying other headers in the ''/ | ||
| + | |||
| + | < | ||
| + | # rpmrebuild -ep / | ||
| + | </ | ||
| + | |||
| + | and //while the command is running// open another shell and modify the source files inside '' | ||
| + | |||
| + | < | ||
| + | |||
| + | which points to an RPM which you can install with '' | ||
