Hi
For a number of reasons we are trying to build our own customised dvd (based on Fedora) using the latest kernel (2.6.20). Currently we are running with Fedora 3. I know this is very old, and it is our intention to upgrade to a newer release in the near future. Unfortunately, for various reasons we are being forced to run with Fedora 3 a little longer. For future reference we would very much like the ability to personalize our own Fedora distro to take account for example of the ever changing hardware requirements and special software requirements.
We can successfully build and install the kernel rpm using the tar ball from .org (linux-2.6.20.tar.bz2). Using the commands tar xfvj linux-2.6.20.tar.bz2 Edited the Makefile for EXTRAVERSION = -1 make mrproper make defconfig make rpm
This works fine; we have to edit the /etc/grub.conf and run mkinitrd after the rpm has been installed.
We have succesfully replicated the original distro DVD's by performing the following commands:-
Step 1 export PYTHONPATH=/usr/lib/anaconda export PATH="$PATH:/usr/lib/anaconda-runtime" export FCBASE=`pwd` mkdir -p $FCBASE/fc3/i386
Step 2 (In this case I copied the original individual Fedora 3 CD's) mount -o ro,loop ../FC3-i386-disc1.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-disc2.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-disc3.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-disc4.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-SRPMS-disc1.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-SRPMS-disc2.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-SRPMS-disc3.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/ mount -o ro,loop ../FC3-i386-SRPMS-disc4.iso /mnt cp -a /mnt/* $FCBASE/fc3/i386/ umount /mnt/
Step 3 find $FCBASE/fc3 -name TRANS.TBL -exec rm -f {} ; find $FCBASE/fc3 -name boot.cat -exec rm -f {} ;
Step 4 genhdlist --productpath=Fedora $FCBASE/fc3/i386
pkgorder $FCBASE/fc3/i386 i386 Fedora | tee $FCBASE/fc3/pkgfile
buildinstall --pkgorder $FCBASE/fc3/pkgfile --version 3 --product "Redora Core" --release "Fedora Core 3" --prodpath Fedora $FCBASE/fc3/i386
Step 5 I used a slightly modifed splittree.py script to handle the generation of the dvd's. ./splittree.py --arch=i386 --total-discs=2 --bin-discs=1 --src-discs=1 --release-string="Fedora Core 3" --pkgorderfile=$FCBASE/fc3/pkgfile --distdir=$FCBASE/fc3/i386 --srcdir=$FCBASE/fc3/i386/SRPMS --productpath=Fedora
Step 6 rm -rf $FCBASE/fc3/i386-disc1/Fedora/base/hdlist genhdlist --productpath=Fedora --withnumbers --fileorder $FCBASE/fc3/pkgfile $FCBASE/fc3/i386-disc1
Step 7 mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "Fedora Core 3" -b isolinux/isolinux.bin -c isolinux/boot.cat -x "lost+found" -o FC3-i386-dvd1.iso i386-disc1
The above process works fine for the Fedora 3 kernel-2.6.9-1.667.src.rpm The rpm has a version of 2.6.9 and a release of 1.667.
We added an EXTRAVERSION of -1 to the kernel Makefile, built the kernel and ended up with an rpm called kernel-2.6.201-1.i386.rpm(???strange name???). If this rpm is installed we get a kernel (uname) 2.6.20-1 and a /lib/modules directory of 2.6.20-1 (which is what we expected)
However if we put this new rpm in the RPMS area before step 4 above and continue with the above build process we get the message $KERNELROOT/lib/modules/2.6.201-1 is not a valid modules directory. (which we can see would be true).
This is because the rpm has been built with a VERSION of 2.6.21(???) and a RELEASE of 1, (See script mk-images(anaconda-runtime-10.1.0.2-1):- rpm --nodigest --nosignature --qf '%{VERSION}-%{RELEASE}' -qp kernel-2.6.201-1.i386.rpm)
We have hacked a Makefiles and a script in the kernel rpm build area and forced the above build to complete....(did not install for other reasons we have yet to understand).
Our first concern here is why does the buildinstall script fall over.....or more to the point how do we stop the rpm from being built with the wrong VERSION number?
Does anybody know or have any ideas??
Thanks
phil prentice wrote:
Hi
For a number of reasons we are trying to build our own customised dvd (based on Fedora) using the latest kernel (2.6.20). Currently we are running with Fedora 3. I know this is very old, and it is our intention to upgrade to a newer release in the near future. Unfortunately, for various reasons we are being forced to run with Fedora 3 a little longer. For future reference we would very much like the ability to personalize our own Fedora distro to take account for example of the ever changing hardware requirements and special software requirements.
snip
You are a candidate for pungi.
https://hosted.fedoraproject.org/projects/pungi
FC6 and F7 have pungi in extras. The pungi tools are new and are dependant upon newer versions of supporting tools to roll a new distro.
So, you could set up a laptop or developer system with the latest F7 and follow pungi. From that system you could roll a custom distro of FC6 or F7.
After manipulating your custom comps.xml and fixing yum references to use local or remote fast repositories ( we put home grown packages in our own repository, and mirror the major repositories) you simply run pungi and a new distro is born!
Test, re-roll, test, etc.
I can usually make and test changes to a test server configuration in about an hour.
Using pungi also gives you a fairly easy method of adding your own custom kickstart files to your CD/DVD image.
Check it out!