Hi, I would like to build the lustre kernel modules via dkms so modules get rebuilt on kernel upgrades. My current system is centos 5.3 with lustre 1.6.7.2 I have been trying to build the modules using the dkms framework, however it fails. For those who do not know when you build the module via dkms, the dkms system creates a copy of the source (/usr/src/lustre-version) to /var/lib/dkms/lustre/version/build and builds in this directory. The issue I am seeing is that when the dkms build system builds (via the packaged make file) the module creates certain libraries back in /usr/src/lustree-version, hence the build in dkms fails as it tries to find the library, it fails since it is not in the correct location. An example will probably illustrate it better. After using make in /usr/src/lustre-1.6.7.2 to build the module the followin file gets created during the process. /usr/src/lustre-1.6.7.2/libsysio/lib/libsysio.a If I try the dkms system it copies the src tree to /var/lib/dkms/lustre/1.6.7.2/build then builds It gets to a point where it fails, /var/lib/dkms/lustre/1.6.7.2/build/libsysio/lib/ is empty, however the file gets created back in the original location /usr/src/lustre-1.6.7.2/libsysio/lib/libsysio.a Has anyone seen this issue before, and got around it for building the dkms package? Regards, Nathan
On Sep 02, 2009 16:55 +1000, Nathan Norton wrote:> I would like to build the lustre kernel modules via dkms so modules get rebuilt on kernel upgrades. > > My current system is centos 5.3 with lustre 1.6.7.2 > > I have been trying to build the modules using the dkms framework, however it fails. > > If I try the dkms system it copies the src tree to /var/lib/dkms/lustre/1.6.7.2/build then builds > > It gets to a point where it fails, > /var/lib/dkms/lustre/1.6.7.2/build/libsysio/lib/ is empty, however the file gets created back in the original location > /usr/src/lustre-1.6.7.2/libsysio/lib/libsysio.a > > Has anyone seen this issue before, and got around it for building the dkms package?Probably need to re-run configure or config.status in the new directory before building. Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc.
> >On Sep 02, 2009 16:55 +1000, Nathan Norton wrote: >> I would like to build the lustre kernel modules via dkms so modules get rebuilt on kernel upgrades. >> >> My current system is centos 5.3 with lustre 1.6.7.2 >> >> I have been trying to build the modules using the dkms framework, however it fails. >> >> If I try the dkms system it copies the src tree to /var/lib/dkms/lustre/1.6.7.2/build then builds >> >> It gets to a point where it fails, >> /var/lib/dkms/lustre/1.6.7.2/build/libsysio/lib/ is empty, however the file gets created back in the original location >> /usr/src/lustre-1.6.7.2/libsysio/lib/libsysio.a >> >> Has anyone seen this issue before, and got around it for building the dkms package? > >Probably need to re-run configure or config.status in the new directory >before building. >That did the trick, for the archives below is my dkms.conf PACKAGE_NAME="lustre" PACKAGE_VERSION="1.6.7.2" MAKE[0]="sh config.status ; make -C ${kernel_source_dir} SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build" BUILT_MODULE_NAME[0]="lustre" BUILT_MODULE_LOCATION[0]="lustre/llite/" DEST_MODULE_LOCATION[0]="/kernel/fs/lustre/" BUILT_MODULE_NAME[1]="lov" BUILT_MODULE_LOCATION[1]="lustre/lov/" DEST_MODULE_LOCATION[1]="/kernel/fs/lustre/" BUILT_MODULE_NAME[2]="mdc" BUILT_MODULE_LOCATION[2]="lustre/mdc/" DEST_MODULE_LOCATION[2]="/kernel/fs/lustre/" BUILT_MODULE_NAME[3]="obdclass" BUILT_MODULE_LOCATION[3]="lustre/obdclass/" DEST_MODULE_LOCATION[3]="/kernel/fs/lustre/" BUILT_MODULE_NAME[4]="ptlrpc" BUILT_MODULE_LOCATION[4]="lustre/ptlrpc/" DEST_MODULE_LOCATION[4]="/kernel/fs/lustre/" BUILT_MODULE_NAME[5]="libcfs" BUILT_MODULE_LOCATION[5]="lnet/libcfs/" DEST_MODULE_LOCATION[5]="/kernel/net/lustre/" BUILT_MODULE_NAME[6]="lvfs" BUILT_MODULE_LOCATION[6]="lustre/lvfs/" DEST_MODULE_LOCATION[6]="/kernel/fs/lustre/" BUILT_MODULE_NAME[7]="osc" BUILT_MODULE_LOCATION[7]="lustre/osc/" DEST_MODULE_LOCATION[7]="/kernel/fs/lustre/" BUILT_MODULE_NAME[8]="lnet" BUILT_MODULE_LOCATION[8]="lnet/lnet/" DEST_MODULE_LOCATION[8]="/kernel/net/lustre/" BUILT_MODULE_NAME[9]="llite_lloop" BUILT_MODULE_LOCATION[9]="lustre/llite/" DEST_MODULE_LOCATION[9]="/kernel/fs/lustre/" BUILT_MODULE_NAME[10]="lquota" BUILT_MODULE_LOCATION[10]="lustre/quota/" DEST_MODULE_LOCATION[10]="/kernel/fs/lustre/" BUILT_MODULE_NAME[11]="obdecho" BUILT_MODULE_LOCATION[11]="lustre/obdecho/" DEST_MODULE_LOCATION[11]="/kernel/fs/lustre/" BUILT_MODULE_NAME[12]="ko2iblnd" BUILT_MODULE_LOCATION[12]="lnet/klnds/o2iblnd/" DEST_MODULE_LOCATION[12]="/kernel/net/lustre/" BUILT_MODULE_NAME[13]="ksocklnd" BUILT_MODULE_LOCATION[13]="lnet/klnds/socklnd/" DEST_MODULE_LOCATION[13]="/kernel/net/lustre/" BUILT_MODULE_NAME[14]="lnet_selftest" BUILT_MODULE_LOCATION[14]="lnet/selftest/" DEST_MODULE_LOCATION[14]="/kernel/net/lustre/" BUILT_MODULE_NAME[15]="mgc" BUILT_MODULE_LOCATION[15]="lustre/mgc" DEST_MODULE_LOCATION[15]="/kernel/fs/lustre/" AUTOINSTALL="yes"