Now I have a Dell PowerEdge 1950, and the only Linux distribution I can
install correctly on this server seems to be SUSE 10.2, now in Beta1 state
(but releasing on December). I tried to install OFED-1.1 on this server, but I
get compilation errors while building the RPM.
Building InfiniBand Software RPMs. Please wait...
Building openib RPMs. Please wait...
Running rpmbuild --rebuild --define '_topdir /var/tmp/OFEDRPM' --define
'_prefix /usr/local/ofed' --define 'build_root /var/tmp/OFED' --define
'configure_options --with-dapl --with-ipoibtools --with-libibcm
--with-libibcommon --with-libibmad --with-libibumad --with-libibverbs
--with-libipathverbs --with-libmthca --with-opensm --with-librdmacm
--with-libsdp --with-openib-diags --with-srptools --with-mstflint
--with-perftest --with-ipath_inf-mod --with-ipoib-mod --with-mthca-mod
--with-sdp-mod --with-srp-mod --with-core-mod --with-user_mad-mod
--with-user_access-mod --with-addr_trans-mod' --define 'configure_options32
--with-dapl --with-ipoibtools --with-libibcm --with-libibcommon
--with-libibmad --with-libibumad --with-libibverbs --with-libipathverbs
--with-libmthca --with-opensm --with-librdmacm --with-libsdp
--with-openib-diags --with-srptools ' --define 'KVERSION 2.6.18.1-13-default'
--define 'KSRC /lib/modules/2.6.18.1-13-default/build' --define
'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' --define
'NETWORK_CONF_DIR /etc/sysconfig/network' --define 'modprobe_update 1'
--define 'include_ipoib_conf 1' --define 'build_32bit 1'
/opt/nfs_public/OFED-1.1/SRPMS/openib-1.1-0.src.rpm
\
ERROR: Failed
executing "rpmbuild --rebuild --define '_topdir /var/tmp/OFEDRPM' --define
'_prefix /usr/local/ofed' --define 'build_root /var/tmp/OFED' --define
'configure_options --with-dapl --with-ipoibtools --with-libibcm
--with-libibcommon --with-libibmad --with-libibumad --with-libibverbs
--with-libipathverbs --with-libmthca --with-opensm --with-librdmacm
--with-libsdp --with-openib-diags --with-srptools --with-mstflint
--with-perftest --with-ipath_inf-mod --with-ipoib-mod --with-mthca-mod
--with-sdp-mod --with-srp-mod --with-core-mod --with-user_mad-mod
--with-user_access-mod --with-addr_trans-mod' --define 'configure_options32
--with-dapl --with-ipoibtools --with-libibcm --with-libibcommon
--with-libibmad --with-libibumad --with-libibverbs --with-libipathverbs
--with-libmthca --with-opensm --with-librdmacm --with-libsdp
--with-openib-diags --with-srptools ' --define 'KVERSION 2.6.18.1-13-default'
--define 'KSRC /lib/modules/2.6.18.1-13-default/build' --define
'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' --define
'NETWORK_CONF_DIR /etc/sysconfig/network' --define 'modprobe_update 1'
--define 'include_ipoib_conf 1' --define 'build_32bit 1'
/opt/nfs_public/OFED-1.1/SRPMS/openib-1.1-0.src.rpm"
See log file: /tmp/OFED.8057.log
server1950:/opt/nfs_public/OFED-1.1 #
-----
OFED.8057.log attached.
The 'interesting' part of the log is:
-----
gcc
-Wp,-MD,/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/.ucma.o.d
-nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.1.2/include -D__KERNEL__
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/include
\
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/include
\
-Iinclude \
-Iinclude2 -I/usr/src/linux-2.6.18.1-13/include
\
-include include/linux/autoconf.h \
-include
/var/tmp/OFEDRPM/BUILD/openib-1.1/include/linux/autoconf.h \
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -Werror-implicit-function-declaration
-fno-strict-aliasing -fno-common -Os -mtune=generic -m64 -mno-red-zone
-mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -funit-at-a-time
-mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fomit-frame-pointer
-fasynchronous-unwind-tables -fno-stack-protector
-Wdeclaration-after-statement -Wno-pointer-sign
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/include
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/include
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/ulp/ipoib
-I/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/debug -DMODULE
-D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ucma)"
-D"KBUILD_MODNAME=KBUILD_STR(rdma_ucm)" -c -o
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/.tmp_ucma.o
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.c
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.c:
In function
‘ucma_init’:
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.c:878:
error: ‘struct miscdevice’ has no member named
‘class’
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.c:
In function
‘ucma_cleanup’:
/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.c:892:
error: ‘struct miscdevice’ has no member named ‘class’
make[5]: ***
[/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core/ucma.o] Error
1
make[4]: *** [/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband/core]
Error 2
make[3]: ***
[_module_/var/tmp/OFEDRPM/BUILD/openib-1.1/drivers/infiniband] Error
2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error
2
make[1]: Leaving directory
`/usr/src/linux-2.6.18.1-13-obj/x86_64/default'
make: *** [kernel] Error
2
error: Bad exit status from /var/tmp/rpm-tmp.13083 (%install)
RPM build errors:
user vlad does not exist -
using root
group mtl does not exist - using
root
user vlad does not exist - using
root
group mtl does not exist - using
root
Bad exit status from /var/tmp/rpm-tmp.13083
(%install)
ERROR: Failed executing "rpmbuild --rebuild --define '_topdir
/var/tmp/OFEDRPM' --define '_prefix /usr/local/ofed' --define 'build_root
/var/tmp/OFED' --define 'configure_options --with-dapl --with-ipoibtools
--with-libibcm --with-libibcommon --with-libibmad --with-libibumad
--with-libibverbs --with-libipathverbs --with-libmthca --with-opensm
--with-librdmacm --with-libsdp --with-openib-diags --with-srptools
--with-mstflint --with-perftest --with-ipath_inf-mod --with-ipoib-mod
--with-mthca-mod --with-sdp-mod --with-srp-mod --with-core-mod
--with-user_mad-mod --with-user_access-mod --with-addr_trans-mod' --define
'configure_options32 --with-dapl --with-ipoibtools --with-libibcm
--with-libibcommon --with-libibmad --with-libibumad --with-libibverbs
--with-libipathverbs --with-libmthca --with-opensm --with-librdmacm
--with-libsdp --with-openib-diags --with-srptools ' --define 'KVERSION
2.6.18.1-13-default' --define 'KSRC /lib/modules/2.6.18.1-13-default/build'
--define 'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' --define
'NETWORK_CONF_DIR /etc/sysconfig/network' --define 'modprobe_update 1'
--define 'include_ipoib_conf 1' --define 'build_32bit 1'
/opt/nfs_public/OFED-1.1/SRPMS/openib-1.1-0.src.rpm"
-----
Looking at ucma.c, it #includes <linux/miscdevice.h>
Now, my /usr/src/linux-2.6.18.1-13/include/linux/miscdevice.h looks like
this:
-----
#ifndef _LINUX_MISCDEVICE_H
#define _LINUX_MISCDEVICE_H
#include
<linux/module.h>
#include <linux/major.h>
#define PSMOUSE_MINOR 1
#define MS_BUSMOUSE_MINOR 2
#define
ATIXL_BUSMOUSE_MINOR 3
/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE
*/
#define ATARIMOUSE_MINOR 5
#define SUN_MOUSE_MINOR 6
#define
APOLLO_MOUSE_MINOR 7
#define PC110PAD_MINOR 9
/*#define ADB_MOUSE_MINOR
10 FIXME OBSOLETE */
#define WATCHDOG_MINOR 130 /*
Watchdog timer */
#define
TEMP_MINOR 131 /* Temperature Sensor */
#define RTC_MINOR
135
#define EFI_RTC_MINOR 136 /* EFI Time services
*/
#define SUN_OPENPROM_MINOR 139
#define
DMAPI_MINOR 140 /* DMAPI */
#define NVRAM_MINOR
144
#define SGI_MMTIMER
153
#define STORE_QUEUE_MINOR 155
#define I2O_MINOR 166
#define
MICROCODE_MINOR 184
#define MWAVE_MINOR 219 /*
ACP/Mwave Modem */
#define MPT_MINOR 220
#define MISC_DYNAMIC_MINOR
255
#define TUN_MINOR
200
#define HPET_MINOR 228
struct device;
struct miscdevice {
int minor;
const char
*name;
const struct file_operations *fops;
struct list_head
list;
struct device *parent;
struct device
*this_device;
};
extern int misc_register(struct miscdevice * misc);
extern int
misc_deregister(struct miscdevice * misc);
#define
MODULE_ALIAS_MISCDEV(minor) \
MODULE_ALIAS("char-major-"
__stringify(MISC_MAJOR) \
"-"
__stringify(minor))
#endif
-----
and my /usr/include/linux/miscdevice.h looks like this:
-----
#ifndef _LINUX_MISCDEVICE_H
#define _LINUX_MISCDEVICE_H
#include
<linux/module.h>
#include <linux/major.h>
#define PSMOUSE_MINOR 1
#define MS_BUSMOUSE_MINOR 2
#define
ATIXL_BUSMOUSE_MINOR 3
/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE
*/
#define ATARIMOUSE_MINOR 5
#define SUN_MOUSE_MINOR 6
#define
APOLLO_MOUSE_MINOR 7
#define PC110PAD_MINOR 9
/*#define ADB_MOUSE_MINOR
10 FIXME OBSOLETE */
#define WATCHDOG_MINOR 130 /*
Watchdog timer */
#define
TEMP_MINOR 131 /* Temperature Sensor */
#define RTC_MINOR
135
#define EFI_RTC_MINOR 136 /* EFI Time services
*/
#define SUN_OPENPROM_MINOR 139
#define
DMAPI_MINOR 140 /* DMAPI */
#define NVRAM_MINOR
144
#define SGI_MMTIMER
153
#define STORE_QUEUE_MINOR 155
#define I2O_MINOR 166
#define
MICROCODE_MINOR 184
#define MWAVE_MINOR 219 /*
ACP/Mwave Modem */
#define MPT_MINOR 220
#define MISC_DYNAMIC_MINOR
255
#define TUN_MINOR
200
#define HPET_MINOR 228
struct device;
struct class_device;
struct miscdevice {
int minor;
const char
*name;
const struct file_operations *fops;
struct list_head
list;
struct device *dev;
struct class_device
*class;
};
extern int misc_register(struct miscdevice * misc);
extern int
misc_deregister(struct miscdevice * misc);
#define
MODULE_ALIAS_MISCDEV(minor) \
MODULE_ALIAS("char-major-"
__stringify(MISC_MAJOR) \
"-"
__stringify(minor))
#endif
-----
which seems what OFED-1.1 expects to have. So, now i replace
/usr/src/linux-2.6.18.1-13/include/linux/miscdevice.h with
/usr/include/linux/miscdevice.h, launch the install again and see what
happens:
-----
ERROR: Failed executing "rpmbuild --rebuild --define '_topdir
/var/tmp/OFEDRPM' --define '_prefix /usr/local/ofed' --define 'build_root
/var/tmp/OFED' --define 'configure_options --with-dapl --with-ipoibtools
--with-libibcm --with-libibcommon --with-libibmad --with-libibumad
--with-libibverbs --with-libipathverbs --with-libmthca --with-opensm
--with-librdmacm --with-libsdp --with-openib-diags --with-srptools
--with-mstflint --with-perftest --with-ipath_inf-mod --with-ipoib-mod
--with-mthca-mod --with-sdp-mod --with-srp-mod --with-core-mod
--with-user_mad-mod --with-user_access-mod --with-addr_trans-mod' --define
'configure_options32 --with-dapl --with-ipoibtools --with-libibcm
--with-libibcommon --with-libibmad --with-libibumad --with-libibverbs
--with-libipathverbs --with-libmthca --with-opensm --with-librdmacm
--with-libsdp --with-openib-diags --with-srptools ' --define 'KVERSION
2.6.18.1-13-default' --define 'KSRC /lib/modules/2.6.18.1-13-default/build'
--define 'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' --define
'NETWORK_CONF_DIR /etc/sysconfig/network' --define 'modprobe_update 1'
--define 'include_ipoib_conf 1' --define 'build_32bit 1'
/opt/nfs_public/OFED-1.1/SRPMS/openib-1.1-0.src.rpm"
See log file: /tmp/OFED.29778.log
-----
OFED.29778.log attached.
The 'interesting' part of the log is:
-----
gcc -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -I../include
-DRESOLVE_HOSTNAMES -c -o utils.o utils.c
utils.c: In function
‘inet_addr_match’:
utils.c:333: warning: initialization discards qualifiers
from pointer target type
utils.c:334: warning: initialization discards
qualifiers from pointer target type
utils.c: In function
‘__get_hz’:
utils.c:368: error: ‘HZ’ undeclared (first use in this
function)
utils.c:368: error: (Each undeclared identifier is reported only
once
utils.c:368: error: for each function it appears in.)
make[2]: ***
[utils.o] Error 1
make[2]: Leaving directory
`/var/tmp/OFEDRPM/BUILD/openib-1.1/src/userspace/ipoibtools/iproute2/lib'
make[1]:
*** [lib] Error 2
make[1]: Leaving directory
`/var/tmp/OFEDRPM/BUILD/openib-1.1/src/userspace/ipoibtools/iproute2'
make:
*** [ipoibtools] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.4033
(%install)
-----
Here, I give up: I don't understand where 'HZ' should be defined, or
where it comes from.
Where is the problem?
Is there a solution to fix it?
Thanks,
Diego