All:

Being a big fan of SuSE before coming to Gentoo, I was interested to note
that gentoo had RedHat kernel sources, but not SuSE sources.  Since I have
always preferred the stability of the SuSE kernel over RedHat's [I know it's
a subjective opinion, so no comments please :) ] I decided to rectify the
situation and create an ebuild for the SuSE kernel sources.

I have installed the kernel on my desktops at work and at home and they have
been running solid with the SuSE kernel for about two weeks now, with no
issues arising concerning the kernel.

Some features of the SuSE kernel  that are not present in the
gentoo-2.4.20-r7 sources are ALSA support built in, and more extensive
support for Video for Linux support to include support for the Hauppauge
WinTV cards.

The gotcha's that I have noticed with using the SuSE kernel are:

1. The kernel sources are distributed by SuSE as an RPM.  The RPM data is
compressed with bzip instead of gzip.  I discovered that rpm2targz doesn't
understand bzipped RPM files and would not correctly process the rpm.
Because of this, an explicit dependency for the kernel is the rpm ebuild.
The only thing that is used from rpm is the rpm2cpio command to unpack the
sources into the ebuild sandbox.  I don't use rpm in any other way.  The
second dependency is cpio.  This one really isn't an issue since it is part
of the system, but to be safe, I included it anyway.

2. SuSE comes with ALSA ported into the kernel.  The ALSA version used by
SuSE is 0.9.0, while the Gentoo stable release is 0.9.2.  I have configured
the kernel to both use and not use the ALSA drivers bundled with the kernel
and have not noticed a problem using either configuration.

The following are the steps I took to install the kernel using genkernel.
For those of you who completely roll your own kernel, I'm making the
assumption, that you can figure it out from these instructions.  I am also
assuming that you already have your system up and running with another
kernel, and that you have some familarity with the kernel compiling process.

1. Get the ebuild from:
http://varnerfamily.org/pvarner/gentoo/suse-sources-2.4.20.100.ebuild.tar.bz2
2. mkdir /usr/local/portage
3. cd /usr/local/portage
4. tar xvjf suse-sources-2.4.20.100.ebuild.tar.bz2
5. Edit /etc/make.conf and uncomment the PORTDIR_OVERLAY variable and set it
to PORTDIR_OVERLAY=/usr/local/portage
6. emerge suse-sources
7.cd /usr/src
8. rm linux
9. ln -s linux-2.4.20-SuSE-100 linux
10. cp /usr/src/linux-2.4.20-gentoo-r7/.config
/etc/kernels/config-2.4.20-SuSE-100
11. genkernel --config
12. In the kernel configuration, Processor Type and Features, ensure that
Local APIC Support on uniprocessors and IO-APIC support on uniprocessors is
turned on or ACPI support will not compile.
13. In the file systems section, ensure that /dev file system support and
Automatically mount at boot is turned on.  Turn off /dev/pts file system for
Unix98 PTYs
14. Peruse through the rest of the configuration and set everything to match
your hardware and desires.
15. Exit and save the config
16. Let genkernel do it's thing.
17. Modify the boot loader and add the entry for the new kernel and initrd

Prior to rebooting, If I used built in ALSA support.
1. /etc/init.d/alsasound stop
2. emerge unmerge alsa-driver
3. emerge -i alsa-driver (inject the stub, so emerge -u won't try to
reinstall alsa-driver)
4. reboot
5. login or su to root after the reboot and use lsmod to insure the sound
modules loaded, use the alsamixer to make sure that the volume levels are
set correctly.

If I did not use the built in ALSA support.
1. /etc/init.d/alsasound stop
2. emerge alsa-driver
3. reboot
4. login or su to root after the reboot and use lsmod to insure the sound
modules loaded, use the alsamixer to make sure that the volume levels are
set correctly.

Rebuild the other drivers that depend upon the kernel.  For me, I have an
nvidia card and use vmware, so I also execute the following.

emerge nvidia-kernel
vmware-config.pl

If I get enough interest in the ebuild, I will submit it to gentoo for
possible inclusion in the portage tree.  At this point, besides determining
possible interest, I'm also looking for problems with the ebuild as well as
enhancements.

One of the things that I would like to see, is an ebuild for creating only
rpm2cpio.  I have figured out how to build and install only rpm2cpio
manually from the rpm sources.  But I haven't decided the better method for
creating and using such an ebuild.  Should it block the install of rpm, or
should the rpm ebuild be modified to unmerge the rpm2cpio ebuild if it is
installed.  Secondly, I'm not sure how I would specify in the suse-sources
ebuild, the either the rpm or rpm2cpio ebuild would satisfy the dependency.

Finally, as the SuSE /etc/motd would say "Have a Lot of Fun!"

Regards,
Paul Varner



--
[EMAIL PROTECTED] mailing list

Reply via email to