try to follow the instructions given in the attach file i send u.

regards

----- Original Message -----
From: Darrin Ward <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, April 28, 1999 4:16 PM
Subject: [SuSE Linux] Network card under 2.2.5


>
> I have been running SuSE 6.0 / kernel 2.0.36 with my SMC ethernet card
(DEC tulip compatible driver)
>
> I have just compiled kernel 2.2.5, using exactly the same settings (and
selecting the tulip driver) and now I get errors when booting, and no go
with the network card.  I get several messages about the"function not
supported by the device" with some variable names (I think) being given.
They start with SIO...
>
> I really am at a loss, and just a beginner.  Any suggestions?
> --
> To get out of this list, please send email to [EMAIL PROTECTED] with
> this text in its body: unsubscribe suse-linux-e
> Check out the SuSE-FAQ at http://www.suse.com/Support/Doku/FAQ/ and the
> archive at http://www.suse.com/Mailinglists/suse-linux-e/index.html
Title: Moving up to 2.2

Moving to kernel 2.2

This is a short (?) guide intended to help people in the process of upgrading to the 2.2 series of Linux kernels.

Other sites/background information

I assume that you know what the kernel is. If you don't, come to the next CLUG meeting or check the mailing list.

For general information on compiling the kernel, see the kernel HOWTO. If you've never compiled a kernel before, I'd strongly recommend you upgrade to the latest 2.0.x and compile it yourself before you take the plunge. Otherwise, you'll be hopelessly lost.

Another useful resource is Alan Cox's clue-point-two site. Also, check out the HTML'ized CHANGES file at linuxhq. It has tips and links and such. And, for even more info, look at the Wonderful World of 2.2


Updating system tools

First rule: Read Documentation/Changes ! If you don't, there will be much grief. If you do, you have a chance. In addition, skim other relevant documentation. Most importantly, you have to update a number of system tools in order to successfully upgrade. Never you fear, here they are. Note that, even if you have a "good enough" version, you may wish to upgrade. Download links point accordingly. Oh, just because I'm running an older version than recommended doesn't mean you should be as lazy as I am ;).
  • Kernel modules 2.1.121 (insmod -V to check current version)
    This is very important! Stuff will not work with earlier versions. Note, however, that once you have 2.1.121 installed, don't boot with a 2.0.x kernel or all module hell will break loose. I have no idea why, just trust me. Make this your last step (despite the fact that, perversely, it's first both in Changes and here). In addition, you'll want to install the 2.2 source in /usr/src/linux before installing modutils, in order to get the include files to work out right.
    Homepage | Download
  • GNU C 2.7.2.3 (gcc --version)
    Hopefully you have at least this version. Note also that the problems with kernel compiles under 2.8.1 have been fixed, so you can use egcs or pgcc if you wish, but YMMV. I played it safe and stuck with 2.7.2.3. EGCS appears to be recommended for Alpha compiles, and gcc 2.7.x may not work at all.
    Homepage | Download
  • Binutils2.8.1.0.23 (ld -v)
    Make sure stuff is configured to go into /usr/bin instead of /usr/local and you should be set. Some of you may wish to go for the precompiled binaries.
    Homepage | Download
  • Libc 5 5.4.46 (ls -l /lib/libc.so.*)
    This is, of course, only for libc5-based systems (libc6 below). I would not recommend upgrading a libc5 system; development has wholly ceased, and the move to libc6 is continuing apace. If you wish to stick with libc5 for size and/or speed concerns, you probably shouldn't be running kernel 2.2.0 anyhow.
    No download links; let's kill this beast.
  • Libc 6 2.0.7pre6 (ls -l /lib/libc.so.*)
    This is another instance of "if it's good enough, don't mess with it." Upgrading your libc is not necessarily the easiest thing. I won't put a download link to any particular version since it's up to you to decide how beta you want to be. Addendum: 2.1 is now officially released--and withdrawn, due to "politics." I'll put a link to it when the rerelease comes.
    Homepage | Download
  • Linker ld.so 1.9.9 (ldd -v)
    Debian 2.0 comes with this version of ld.so, so I didn't bother to recompile it myself. Be very careful here--if your linker breaks, you are in serious trouble. Note also that ldd -v doesn't work for me; ldd --version does, but gives the binutils version. Look at the version number for /lib/ld.so to be sure.
    Homepage | Download
  • Linux C++ library 2.7.2.8 (ls -l /usr/lib/libg++.so.*)
    Again, a matter of "if it's good enough, use it." I didn't have to upgrade.
    Homepage | Download
  • Procps 1.2.9 (ps --version)
    Version 1.2.9 reports 1.2.7 with --version! To be safe, then, I'd recompile even if it reports 1.2.7--you might have 1.2.9 or 1.2.7, so compile 1.2.9 and you'll be golden.
    Homepage | Download
  • Procinfo 15 (procinfo -v)
    I couldn't find 15 at the time, so I'm running 14, with no problems.
    Homepage | Download
  • Psmisc 17 (pstree -V)
    I'm running 16; no problems so far.
    Homepage | Download
  • Net-tools 1.49 (hostname -V)
    No problems here. Note that failing to upgrade this package is one of the biggest reasons people have problems, especially with bizarre boot errors. Note that some options (mainly netmask and such) have been removed from route (they are now figured out automagically), so don't panic if you get one or two "invalid option" messages.
    I've had reports that version 1.50 might be required for IP aliasing.
    On a related note, RedHat users should remove the linuxconf stuff from the network-scripts on their installation if it has problems. Might be a good idea anyhow.
    Homepage | Download
  • Loadlin 1.6a
    I never use Loadlin, but I believe Debian 2.0 comes with the correct version.
    Homepage | Download
  • Sh-utils 1.16 (basename --v)
    No problems. Careful, though--this is critical stuff! Also, be sure to build to /usr/bin (use --prefix)
    Homepage | Download
  • Autofs 3.1.1 (automount --version)
    I don't use automounting, so I didn't install it. No problems. If you're running an NFS server, though, you'll need to update.
    Homepage | Download
  • NFS 2.2beta37 (showmount --version)
    I'm running 2.2beta34, no problem. Of course, I never serve NFS either. This is just the server; you don't need it to mount NFS partitions.
    Homepage | Download
  • Bash 1.14.7 (bash --version or -version)
    Bash might be a "leave-it-alone-if-it-works" situation. I managed to hose mine, and wound up grabbing the binary from my roommate's machine
    Homepage | Download
  • Ncpfs 2.2.0 (ncpmount -v)
    Not worried about Novell? Good. Neither am I.
    Homepage | Download
  • Pcmcia-cs 3.0.6 (cardmgr -V)
    If you aren't running a laptop, don't worry.
    Homepage | Download
  • PPP 2.3.5 (pppd -v)
    If you run PPP, get this. Otherwise don't. Some people have reported problems with connections hanging over PPP. If this is the case, try disabling header compression with the novj option in your PPP option file (/etc/ppp/options usually). See the linux-kernel thread for details.
    Homepage | Download
  • Util-linux 2.9 (chsh -v or possibly mount --version)
    This package contains various system utilities; some of which are in other packages. Apparently this is meant more for cutting-edge. Debian claims it's installed. chsh doesn't work with -v for me. Anyhow, get it or not, your call. I didn't update it and I'm not suffering. Addendum: using --version works on RH 5.1. Also, apparently the new mount and mkswap utilities in later versions of util-linux allow larger-than-128MB swapspace. Sweet.
    Continuing the saga: the h-suffix version on Sunsite is the same as the g, but re-released to avoid Trojan confusion (from compromised win.tue.nl). g-suffix is suspect. A new i version is now out which fixes a few bugs. Get it.
    Homepage | Download
  • Setserial
    Debian users may want to update base/setserial to the Slink/2.1 version to remove some boot error messages.
    Homepage
  • Ipfwadmin/Ipchains
    IP firewalling support has now been replaced by IPChains. Update accordingly.There's a HOWTO at the LDP
    Homepage

No, we aren't done yet. All you've done is bring your system up to date. Hopefully this will teach a lesson about checking freshmeat daily to stay updated, but I doubt that will happen :) .

The next step is to grab the kernel itself. A lecture to the wise: If you have the source tree for a reasonably late 2.1.x kernel (or 2.2pre, for that matter), grab the patch. Whether you get patch or full source tree, please get the bzip2 instead of the gz--it will save some load on the servers. And, finally, use a mirror! We now have the lovely kernel.org mirroring system, so use it. You will be automatically connected to the fastest server in your country. Go to ftp.xx.kernel.org, where xx is your two-digit country code (clue to Americans: that's "us" for you).

Now that you have the kernel, do the usual business of extracting it. I like to keep multiple source trees in /usr/src named linux-2.0.36, linux-2.2.0pre7, and the likes. Then, I just "ln -s linux-2.2.0pre7 linux" or similar to make the linux directory a symlink to the version I'm working on. Note: Patches assume linux/, as do the full tarballs. Remove the symlink, untar the archive, move linux to linux-x.xx.xx, and then do the symlink. This will help keep things organized.

A special note for those who patch: Before you patch, cp .config from linux/ to a safe place, then do a make distclean. This clobbers just about everything. It's extreme, but then everything gets built properly. Afterwards, cp .config back in and do a "make oldconfig". This will reconfigure your kernel with the old options and prompt you for any new options. I'd still do a make menuconfig to check things out.


Now configure the kernel. Use whatever you wish: make config, menuconfig, xconfig...
Note: make xconfig has been having difficulties lately. It may be fixed (feel free to test it) by now, but menuconfig is sure to work.

You may have to edit the Makefile. I changed HOSTCC to gcc -V 2.7.2.3 and CC to the same. I've had problems with gcc 2.8.1 internal compiler error'ing at odd places, and I didn't want to deal with this. Especially note that the ewrk3 driver didn't compile for me under 2.8.1 (there may have been other contributing factors).

Take your time with the configuration, and be sure to read the help text if you're at all unsure. Here are a few tips and potential pitfalls:

  • Be sure to enable development/incomplete code/drivers in Code Maturity if you want to run a Banshee based video board or other VESA framebuffer device. Then, be sure to also enable the frame buffer console support. Look here.
  • You want modules, version information, and kernel module loader.
  • Plug and Play seems to be for parallel devices only. You still need isapnptools, as far as I can tell.
  • Remember to include support for your root filesystem, as usual.
  • Only do Unix98 PTY support if you're using the appropriate libc; see the help file
  • Unless you're mucking with other weird stuff (possibly including framebuffer), you definitely want VGA text console. And virtual terminals.
  • If you decided to not upgrade a certain package above because you don't use it, don't put the relevant support in the kernel. If you need Novell mounting, update the tools and put the support in. Otherwise, do neither.
  • Sound support has changed a lot. You probably want OSS driver support. Read the documentation and be sure to experiment. Note that almost all sound is modular now, and you specify IRQ and such in conf.modules (or modules.conf)
  • The magic SysRq key is cool. Read the docs, then enable it.
Okay, you're configured. Do the usual make dep; make clean; make zImage; make modules; make modules_install (or whatever process you like)
Once the compile is done, it's time to put other stuff together. Go into /lib/modules and symlink the relevant subdirectory (say 2.2.0pre8) to 2.2. Then symlink default and preferred to 2.2. Hopefully this should keep all programs happy; and all you have to do is update where 2.2 points when you next compile.

Now go into /boot. Again, I use lots of symlinks. Copy /usr/src/linux/arch/i386/boot/zImage to /boot/vmlinuz-2.2.xx-prex (this is how I keep my kernel images straight). Then, symlink vmlinuz to the most recent kernel (the one you just compiled) and vmlinuz.old to the second most recent (probably the last one you booted). I then have "linux" and "old" options in lilo to boot the appropriate kernel. Using the symlinks means that I don't have to change my lilo.conf for a new kernel; I just update the links and rerun lilo.

These instructions are, of course, strictly my preference. Do whatever you like to do to get your modules where they belong, the new kernel image bootable, and some sort of backup kernel image bootable.


Congrats! You should now have a working kernel 2.2 setup. If you encounter any bugs, try to repeat and document them before reporting. Remember: the stability and usability of 2.2final is in your hands.

If you have corrections or additions, please mail me.


Credits

Since initially posting this page, I have received a lot of comments/additions. Thanks to:
  • Tom Williams
  • Tuan Hoang
  • Steffen
  • Daniel Grahn
  • "Cougar"
  • Chris J. Richards
  • Ingo Rohloff
  • Steffen Evers
  • Ken McNeil
  • David Forrest
  • Jon Earle
I'm not including email addresses in order to protect their privacy.
By Jon Niehof. (C)1999. Feel free to reproduce, distribute, whatever.

Reply via email to