Tuesday, September 29, 2015

RDAC Driver RPM install



RDAC Driver RPM


0 people like this

|Updated September 18, 2013 by JASON WO|Tags: None
This rpm is a highly modified version of the release available from http://pkgs.org/centos-5-rhel-5/puias-computational-x86_64/kmod-rdac-09.03.0C05.0331-0.4.PU_IAS.5.x86_64.rpm.html which was designed for RHEL6. Modifications were made to port it RHEL5 to fit our environment and allow support for both RHEL5/RHEL6.
The original rpm provides kmod rdac kernel modules compiled in a kernel agnostic manner against the stable ABI meaning as long as the ABI doesnt change from one kernel release to the next, then there is no need to recompile/rebuild the rpm.
The rpm dependencies and actions have been modified to add missing files back in and have the rpm automatically perform post install configuration and automatically detect the installation of new kernels and perform reconfiguration as necessary without any manual intervention.
DO NOT install this rpm on a box where you have previous manually compiled/installed the rdac drivers. The rpm must be installed on a box that hasn't yet had rdac drivers installed on it.
1. When do the drivers/rpm need to be recompiled/upgraded?
The rpms will need to be rebuilt any time there is a change in the kernel ABI (kABI) or when you want to upgrade to a new driver version. More information on how the kernel ABI is used can be gained by googling for "Redhat Driver Update Program" and you should find a few pdfs and driverupdateprogram.com as references.
2. How do I check if a new kernel's ABI is supported by the current rdac kernel module rpms?
This is done by validating the hashes of the ABI groups provided in the rpm to that of the kernel (note that this should be handled by rpm automatically but its a good pre kernel upgrade manual test to ensure they are compatible:
# rpm --requires -qp kmod-rdac-09.03.0C05.0504-25.el5.x86_64.rpm | grep kernel
kernel(rhel5_drivers_base_ga) = 61dc730b8ca5e74017f2df5b55ecda8b7df7f9c2
kernel(rhel5_vmlinux_ga) = 78f928da689a93ecf2e044fc0ced6b3eaedf5c19
kernel(rhel5_drivers_scsi_ga) = 1cc16b1f8996d37eaa858690bfbab7f4030c55b6
kernel(rhel5_kernel_ga) = 84d69198cf51b494e38d9d0a54e52607c8a507e2
kernel(rhel5_mm_ga) = d5edc1b3d2a4f2bf8ce28d7f4dbeab27cfeb19bd
kernel(rhel5_lib_ga) = ff25b583d6d314edd98f7c9533c5867194b3d30d
kernel(rhel5_fs_proc_ga) = 30f9166e128d20c7305d5a9bc9ab69451c40a555
kernel(rhel5_block_ga) = 5b4effd1cc3809b4bd243e499ab6be486fd95fd9
kernel(rhel5_fs_ga) = 1c422a6b84a2000991b1b99c61506cfd711a20d1
kernel(rhel5_fs_u4) = 518e7b7963ed0843e4b55b64ba2b25db95cf821a
kernel(rhel5_arch_x86_64_kernel_ga) = 880dbfce5086d666f5bab6ad642c0323fcdabd90
kernel(rhel5_drivers_xen_core_ga) = c05a8027c47f037b99169c7441da64fa0a723869
kernel(rhel5_kernel_module_ga) = a74a9d2bf87d13d6b9412698dc2728248ca92523
# rpm --provides -q kernel-2.6.18-308.13.1.el5 | grep "kernel("
kernel(rhel5_gfs2_ga) = 73e828ddf6a8787f935f6088a18a862409174aaf
kernel(rhel5_fs_lockd_ga) = 67913a0875a3219e6b8c2d914775c91fab5b7c4f
kernel(rhel5_drivers_hwmon_ga) = 21462092aeb2b284e955337136d204c26f79ed92
kernel(rhel5_net_core_ga) = c186a7dc043c903564c2dd9ed49d8847b7043c86
.... 
# for modDep in $(rpm --requires -qp kmod-rdac-09.03.0C05.0504-25.el5.x86_64.rpm | grep kernel); do if ! /bin/grep "${modDep}" <<< "$(rpm --provides -q kernel-2.6.18-308.13.1.el5)" > /dev/null; then echo "ERROR: NOT FOUND ${modDep}"; fi done
3. What steps do I need to perform before installing the rpms on a system which already has the rdac drivers installed manually from source?
  1. Unmount all partitions that are using the rdac driver (and comment them out in /etc/fstab if needed) and unmap all LUNs.
  2. Remove all MPP kernel boot entries from /boot/grub/grub.conf
  3. Remove all MPP init images:
     /bin/rm -f /boot/mpp-*.img
  4. Remove all lines from /etc/modprobe.conf and /etc/modprobe.conf.local that match the lines in /opt/mpp/modprobe.conf.mppappend
  5. Run the uninstall script:
     make -f /opt/mpp/makefile.saved uninstall
  6. Reboot the box
  7. Install the rdac rpms per normal instructions below.
  8. Re-enable any mount points and map any needed LUNs.
  9. Reboot the box
4. What steps do I need to perform to rebuild the rpms?
  1. Get the source using git directly from the repo, or manually browse to the git server and download the tar.gz for the most recent date listed:
     git clone http://10.19.10.164/wdprepos/pub/UnixTools/Linux/rdac-kmod.git
     cd rdac-kmod
     or
     Browse to http://10.19.10.164/gitweb/?p=pub/UnixTools/Linux/rdac-kmod.git;a=summary and click the topmost "tar.gz" to download the latest version and extract it on the build server.
   2. Ensure you have gcc, make, buildsys-macros and rpm-build rpms installed:
      yum --noplugins --disablerepo=* --enablerepo=R* install gcc make buildsys-macros rpm-build
   3. Run the following as a regular user:
      ./rdac-kmod-rpmbuild.sh
   4. Stage the rpms in ~/rpmbuild/RPMS// in the tools repo (do not stage the debug rpm) and reindex the tools repo:
      See instructions for staging rpms at https://w3.tap.ibm.com/w3ki/display/wdpdo/Staging%20RPMs%20to%20ITE%20Tools%20Repository
   5. Use the normal yum install or upgrade command to install (see step 5 below).
5. What steps do I need to perform to install the rpms?
yum --disablerepo=* --enablerepo=WDP-Tools* install kmod-rdac rdac
6. Will the current rdac-kmod.spec file work for new versions of the rdac driver?
There's no way to know before hand whether the existing spec file will work for future versions of the rdac driver without modification as this is 100% dependent on what changes are made to the make file for the new release. You will have to review changes that are made to the copyfiles, copyrpmfiles, moduledep, setupfiles, setupdriver, uninstall, and uninstall_doer sections and ensure the same steps are done in the proper sections of the spec file but only if necessary.
7. I have installed the rdac rpms and will be doing a kernel upgrade, what steps do I need to perform?
If you have done the pre-upgrade check in step 2 and no errors are reported, then just upgrade the kernel as normal and there are no extra steps, the rpm should handle the rest.

No comments: