Well, kernel updates on our Linux servers running IBM’s RDAC driver (developed by LSI) is a real pest .. especially if you have to reboot the box two times in order to install the drivers/initrd correctly.
So I sat down and looked at the Makefile. Turns out, it just needs four tweaks in order to be working with a different kernel version (which you have to pass using environment variables to make).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
--- linuxrdac-09.03.0C05.0030.orig/Makefile +++ linuxrdac-09.03.0C05.0030/Makefile @@ -25,7 +25,10 @@ # ####################################################################### -OS_VER := $(shell uname -r) +ifeq ("$(OS_VER)","") + OS_VER := $(shell uname -r) +endif + HOST_TYPE := $(shell uname -m) IS_SMP := $(shell (uname -v | grep -c "SMP")) # Kernel Distribution (either REDHAT or SUSE) @@ -170,7 +173,7 @@ copyrpmfiles : moduledep : @echo "Generating module dependencies..." - @/sbin/depmod $(uname -r) + @/sbin/depmod $(OS_VER) setupfiles : @install -o root -g root -m 0500 -D Makefile $(DEST_DIR)/opt/mpp/makefile.saved @@ -190,7 +193,7 @@ setupfiles : rm devicemapping; fi setupdriver: - @/opt/mpp/setupDriver.$(DIST) + @/opt/mpp/setupDriver.$(DIST) $(OS_VER) @if [ -f /etc/SuSE-release ]; then /sbin/insserv /etc/init.d/mpp; else @@ -266,7 +269,7 @@ uninstall_doer: @echo "The mpp RAMdisk image mpp-$(OS_VER).img has been removed. You may want to remove it from your boot loader config file." @if test ! -s /var/mpp/devicemapping ; then rm -rf /var/mpp/; fi @echo "Generating module dependencies..." - @/sbin/depmod $(uname -r) + @/sbin/depmod $(OS_VER) LINUX_RDAC_DIR := $(shell pwd) |
After that, a simple make KERNEL_OBJ=/lib/modules/2.6.16.60-0.37_f594963d-smp/build OS_VER=2.6.16.60-0.37_f594963d-smp install correctly installs the modules in /lib/modules, rebuilds the correct modules dependencies and builds the correct initrd image.