You need an initrd if the modules required to pivot root to your root device are not statically compiled in the kermel. eg. If your root drive is an Nvidia SATA the nvsata needs to be compiled in, if your root fs is resierfs, then reiserfs needs to be compiled in. If you do not include ALL the required modules in the kernel than you must create an initial ramdisk (initrd) that will allow the kernel to load the modules dynamically in order to locate and access the root filesystem, this is easier for most people since statically compiling them in requires you to understand your hardware and the associated linux modules in detail, whereas the initrd tools generally determine what is required for you. There is more than on way to create an initrd, in SuSE I imagine you will need the 'mkinitrd' package installed (check yast) I assume it works properly now although 'mkinitrd' had trouble with udev in the past, other options are 'yaird' (yet another initial ramdisk) and 'mkinitramfs'. The syntax for these tools are all fairly simliar. An example would be:

mkinitrd -o /boot/initrd.img-2.6.22.5.img 2.6.22.5

This tells initrd to create the output file in /boot and then specifies the kernel version. The initrd program will check the modules in /lib/modules/{kernel version} (2.6.22.5 in this case) for the proper modules, assuming you have done a 'make modules_install' from your kernel source directory. you must then update GRUB to make sure the initrd is passed at boot time from grub. The command 'update-grub' will add your new kernel to your /boot/grub/menu.list but you should go check that file and insure there is a line pointing to your initrd as sometimes the update command will not add this for you. (I think you need to name it exactly the way grub likes it, the above example is probably close but check the naming convention of existing initrd's in /boot) If the entry under 'kernel' is not a line for your initrd add it in. (You should see the syntax from the previous entry) Hope this helps.

-Maestr0