我正在尝试为Ultrium LTO-5磁带设备构buildIBM lin_tape模块,但是它失败了
操作系统是Centos 5.4 x.86_64
当我运行:
rpmbuild –rebuild lin_tape-1.76.0-1.src.rpm
它输出如下:
Installing lin_tape-1.76.0-1.src.rpm Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.42840 + umask 022 + cd /usr/src/redhat/BUILD + LANG=C + export LANG + unset DISPLAY + cd /usr/src/redhat/BUILD + rm -rf lin_tape-1.76.0 + /bin/gzip -dc /usr/src/redhat/SOURCES/lin_tape-1.76.0.tgz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd lin_tape-1.76.0 ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,gw,ow . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.42840 + umask 022 + cd /usr/src/redhat/BUILD + cd lin_tape-1.76.0 + LANG=C + export LANG + unset DISPLAY ++ echo x86_64-redhat-linux-gnu ++ cut -f 1 -d - + p=x86_64 + '[' x86_64 == i386 ']' + '[' x86_64 == i586 ']' + '[' x86_64 == i686 ']' + '[' x86_64 == ppc64 ']' + '[' x86_64 == powerpc ']' + '[' x86_64 == powerpc64 ']' + '[' x86_64 == s390 ']' + '[' x86_64 == s390x ']' + '[' x86_64 == ia64 ']' + '[' x86_64 == x86_64 ']' + proc=AMD + cp -af lin_tape_359X_AMD.ReadMe lin_tape_359X.ReadMe + cp -af lin_tape_Ultrium_AMD.ReadMe lin_tape_Ultrium.ReadMe + make KERNEL=2.6.30.5-UP PROC=x86_64 driver make -C /lib/modules/2.6.30.5-UP/build SUBDIRS=/usr/src/redhat/BUILD/lin_tape-1.76.0 PWD=/usr/src/redhat/BUILD/lin_tape-1.76.0 clean make[1]: Entering directory `/usr/src/kernels/linux-2.6.30.5' make[1]: Leaving directory `/usr/src/kernels/linux-2.6.30.5' mkdir bldtmp make KERNEL=2.6.30.5-UP compileclean lin_tape.ko make[1]: Entering directory `/usr/src/redhat/BUILD/lin_tape-1.76.0' export PWD make -C /lib/modules/2.6.30.5-UP/build SUBDIRS=/usr/src/redhat/BUILD/lin_tape-1.76.0 PWD=/usr/src/redhat/BUILD/lin_tape-1.76.0 modules make[2]: Entering directory `/usr/src/kernels/linux-2.6.30.5' CC [M] /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_scsi_config.o /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_scsi_config.c: In function 'lin_tape_bind_device': /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_scsi_config.c:1833: warning: ignoring return value of 'device_bind_driver', declared with attribute warn_unused_result CC [M] /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_scsi_tape.o CC [M] /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_scsi_trace.o CC [M] /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_ioctl_tape.o /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_ioctl_tape.c: In function 'lin_tape_blk_rq': /usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_ioctl_tape.c:5822: error: 'struct request' has no member named 'resid_len' make[3]: *** [/usr/src/redhat/BUILD/lin_tape-1.76.0/lin_tape_ioctl_tape.o] Error 1 make[2]: *** [_module_/usr/src/redhat/BUILD/lin_tape-1.76.0] Error 2 make[2]: Leaving directory `/usr/src/kernels/linux-2.6.30.5' make[1]: *** [lin_tape.ko] Error 2 make[1]: Leaving directory `/usr/src/redhat/BUILD/lin_tape-1.76.0' make: *** [bldtmp/lin_tape-2.6.30.5-UP.ko] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.42840 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.42840 (%build)
输出结束
任何想法?
提前致谢!
你用标准的EL5内核replace了一个新的定制内核,其中编程接口(ABI / API)是不同的。
要引用install.README您应该已经收到了源RPM:
IBM不保证在任何其他内核或操作系统上正确运行lin_tape驱动程序。
不幸的是你没有提到为什么这个系统有一个自定义的内核,所以build议是有限的。 一些可用的选项包括: