Vous êtes sur la page 1sur 4

21/03/2010

HowToBuildRPM - xplat - Trac

How to build RPM from Tarball file


0. Prerequisite
Linux system
Redhat 7.1 7.2 7.3 8.0 9.0 i386
Redhat Enterprise Linux 2 i386, CentOS 2.x
Redhat Enterprise Linux 3 i386, CentOS 3.x
Redhat Enterprise Linux 4 i386, CentOS 4.x
Fedora Core 1 i386
Fedora Core 2 i386
Fedora Core 3 i386
Fedora Core 4 i386
Fedora Core 7 i386
Fedora Core 8 i386
SuSE 8.1 8.2 8.3 9.0, 9.1, 9.2, 9.3, 10.0, 10.1, 10.2, 10.3 with i386
Mandriva 2006
x86_64 version is tested only on Fedora Core 7 & 8.
C compiler that compiled your kernel if CPU architecture is not x86_64.
Usually, ok if the major/minor version is matched.
For example, your kernel compiled by gc c 3.4.2. then you
can compile the NDAS driver with gc c 3.4.1
Some customizations of tarball file will be needed to build or install the NDAS driver into
the other linux distributions.
Please share those infomation so that we can release the binary in the next release.
Thank you.

1. Install and configure the kernel source


Redhat 8/9, Fedora Core 1, Redhat Enterprise Linux 3, CentOS 3.x
Download kernel-sourc e rpm package and configure the kernel source at /usr/src /linux-2.4
# cd /usr/src/linux-2.4
# make mrproper
# cp configs/kernel-for_your_kernel .config
and change the kernel EXTRA_VERSION name. For example, if you are using smp kernel then
the name should be 2.4.20-8smp if you are using uni-processor kernel then the name should be
2.4.20-8
# vi Makefile
Then generate the dependency files and version file
# make oldconfig
# make dep
# make init/version.o

Fedore Core 2
Donwload the source rpm of your kernel, unpac k it and c onfigure by
# make include/asm-i386/asm_offsets.h

Fedora Core 3
Install SRPM, unpack and apply the patc hes
code.ximeta.com//HowToBuildRPM

1/4

21/03/2010

HowToBuildRPM - xplat - Trac

rpm -ivh kernel-2.6.5.1.spm.rpm


rpmbuild -bp /usr/src/redhat/SPECS/kernel-2.6.spec --target=i686
you have the kernel sourc e under
/usr/src/redhat/BUILD/kernel-2.6.16/linux-2.6.16/
or similar directory. then follow the step for redhat

Fedore Core 4~8, Redhat Enterprise Linux 4, CentOS 4


# yum install kernel-devel

2.4.x kernel for SuSE 9.0 or below


Download the kernel-source RPM and install it from SuSE mirror sites
# rpm -ivh kernel-source-*.rpm
The kernel config file (/usr/src/linux-[your kernel version]/.config) should be configured to have
the same kernel version with your kernel. Open the config file in the kernel source,
# vi /usr/src/linux-[your kernel version]/.config
then, look for 'CONFIG_CFGNAME' and modify the 'c onfig name' into that of your kernel. usually
it should be 'default'.
For example, if the the result of 'uname -r' is
2.4.21-99-default
then the 'config name' is 'default'. so change the value for 'CONFIG_CFGNAME' in the .config
file into 'default'.
CONFIG_CFGNAME=default
Execute 'make init/version.o' command from the kernel source directory so that the version
files of linux source are changed according to the changes of .c onfig file.
make init/version.o

SuSE 9.1, 9.2, 9.3, 10.0, 10.1, 10.2, 10.3


Use YaST to install kernel-source.
execute yast2 as root.
sudo /sbin/yast2
or From Desktop, select Computer->Control Center->YaST
goto software(or Software Management), install and delete software
search for the package "kernel-source", "gcc ", and install it.

Mandriva 2006 and blackPanther OS > v4.x


Locate the kernel source and clean the previous setting.
cd /usr/src/linux-`uname -r`
make clean mrproper
code.ximeta.com//HowToBuildRPM

2/4

21/03/2010

HowToBuildRPM - xplat - Trac

The kernel config file (/usr/src/linux-[your kernel version]/arc h/i386/defconfig.*) should be


configured to have the same kernel version with your kernel. Copy the one of defconfig.* into
.config
cp arch/i386/defconfig.default .config
Cause the kernel makefile generates the sc ripts and the version information.
make oldconfig include/asm-i386/asm_offsets.h
Now ready to c ompile the NDAS driver againt this kernel sourc e.

Mandriva
urpmi kernel-source

2. Download tarball and Build the NDAS rpm


Download tarball from http://c ode.ximeta.com/dev/current/linux/
(http://code.ximeta.c om/dev/c urrent/linux64/ for x86_64)
Log in as root account and run the following c ommands. (Replac e xxx with proper values)
rpmbuild -tb ndas-1.x-x.tar.gz
or, if you have a i686-kernel:
rpmbuild -tb --target=i686 ndas-1.x-x.tar.gz
and you will get the RPM file under

/usr/src/redhat/RPMS/i386/ # Redhat / Fedora


/usr/src/packages/RPMS/i586/ # SuSE (or /usr/src/packages/RPMS/<output of "uname /usr/src/RPMS/RPMS/i386/ # Mandriva

or

/usr/src/redhat/RPMS/x86_64/ # Redhat / Fedora


/usr/src/packages/RPMS/x86_64/ # SuSE (or /usr/src/packages/RPMS/<output of "uname
/usr/src/RPMS/RPMS/x86_64/ # Mandriva

depending on your platform. Move to the directory that ndas-kernel-xxxxx.rpm file and
ndas-admin-xxxx.rpm file exist.

3. Install the rpm


Run the following commands in root. (Replace xxx with proper values)
rpm -ivh ndas-kernel-1.x-2.6.20_8.24.xxx.rpm
rpm -ivh ndas-admin-1.x-x.xxx.rpm

4. Using NDAS driver


After you install the driver, please read the README file whic h c an be found under
/usr/share/ndas
If you can't locate the README under /usr/share/ndas, then try
code.ximeta.com//HowToBuildRPM

3/4

21/03/2010

HowToBuildRPM - xplat - Trac

rpm -ql ndas-admin


The subversion sourc e is at sourc e:/linux/trunk/README

5. Kernel changes
If the Linux kernel has changed sinc e the NDAS driver installed, you need to update NDAS
kernel modules. Please rebuild the NDAS RPMs and install them.
Note: NDAS rpm will automatic ally add a dependenc y on kernel rpm package with the version
name c orresponding to the kernel sourc e you have built it against. In c ase you c ompiled your
own kernel from sources, there will be no such rpm available on the systen, so "rpm -ih -nodeps" needs to be used for install. This is normal, and unlikely to break your system (unless
the ndas kernel module goes crazy, but this has nothing to do with rpm dependencies).vaizdo
klipai

code.ximeta.com//HowToBuildRPM

4/4