[Firewire-users] Firewire Module: How To Recompile?
Danilo Gimenez
dgimenez at uol.com.br
Tue Sep 5 04:36:11 PDT 2006
Hi, folks.
I've found the solution at OTN's Linux Discussion Forum, under this
thread:
http://forums.oracle.com/forums/thread.jspa?messageID=1267104#1267104
I've tryed to use wolfpeter's instructions, but I got an error,
regarding to my kernel version. So, I decided to make some adjustments,
in order to get an "adaptative" environment.
I kept 'oracle-firewire-modules-2.6.9-EL.spec-generic', and instead of
renameing it, I replaced its first 11 lines for the code below. Notice
that I've changed version to 1287.
******************** START HERE ********************
#
# Spec file for RHEL4 firewire modules
#
%define karch #kernelArch#
%define base #kernelVersion#
%define sver #kernelRelease#
%define kver %{base}-%{sver}
Summary: Oracle Firewire Clustering Modules.
Name: oracle-firewire-modules-%{kver}
Version: 1287
******************** END HERE ********************
Then, instead of adding comments to file ./ieee1394/highlevel.c, I've
just replaced the text from line 33 - "/* XXX: compat hack */" - up to
line 53 - "static DEFINE_RWLOCK(addr_space_lock);" - for the code below:
******************** BEGIN REPLACEMENT CODE FOR LINES 33-53
********************
struct hl_host_info {
struct list_head list;
struct hpsb_host *host;
size_t size;
unsigned long key;
void *data;
};
static LIST_HEAD(hl_drivers);
static DECLARE_RWSEM(hl_drivers_sem);
static LIST_HEAD(hl_irqs);
static rwlock_t hl_irqs_lock = RW_LOCK_UNLOCKED;
static rwlock_t addr_space_lock = RW_LOCK_UNLOCKED;
******************** END REPLACEMENT CODE FOR LINES 33-53
********************
Finally, I've created a simple shell script called genrpm-1287.sh:
******************** BEGIN genrpm-1287.sh SHELL SCRIPT
********************
# Try to discover if it is an 'smp' kernel
unameRelease=`uname -r`
echo $unameRelease | grep smp 1>/dev/null
[ $? -eq 0 ] && kernelPackage=kernel-smp || kernelPackage=kernel
# Some variables to define kernel version
kernelArch=`rpm -q $kernelPackage --qf %{ARCH}`
kernelVersion=`rpm -q $kernelPackage --qf %{VERSION}`
kernelRelease=`rpm -q $kernelPackage --qf %{RELEASE}`
kernelType=${unameRelease/$kernelVersion-$kernelRelease}
# Generate a spec file with the correct kernel version
sed -e "s,#kernelArch#,$kernelArch,g" \
-e "s,#kernelVersion#,$kernelVersion,g" \
-e "s,#kernelRelease#,$kernelRelease,g" \
oracle-firewire-modules-2.6.9-EL.spec-generic > \
oracle-firewire-modules-2.6.9-${kernelRelease}${kernelType}.spec
# create new .tar.gz file
cd ..
tar czf oracle-firewire-modules-1287.tar.gz ./oracle-firewire-modules
# create the rpm
rpmbuild -ta oracle-firewire-modules-1287.tar.gz
******************** END genrpm-1287.sh SHELL SCRIPT
********************
To install this brand new RPM file, you must have both kernel-devel and
kernel-smp-devel packages installed on your system. Just do the
following:
cd /usr/src/redhat/RPMS/i386
rpm -ivh oracle-firewire-modules-`uname -r`-1287*.rpm
Hope this helps!
Danilo Gimenez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/firewire-users/attachments/20060905/132d9a94/attachment.html
More information about the Firewire-users
mailing list