Folks;
I am trying to learn about generating a custom kernel. But starting
slow, I tried to regenerate the kernel that came with Knoppix
3.7. without sucess. Long - but more data is better than not enuf.

uname -a = "Linux lt47 2.4.27 #2 SMP Mo Aug 9 00:39:37 CEST 2004 i686 GNU/Linux"

I fetched the best looking package with apt-get

lt47:apt-get source kernel-source-2.4.27

giving me:
kernel-source-2.4.27_2.4.27.orig.tar.gz
kernel-source-2.4.27_2.4.27-6.diff

I opened the tar.gz in /usr/src.
I realigned the 'linux->' link to point to the new source directory
"linux -> kernel-source-2.4.27-2.4.27/"
I did the patch -p1 of the .diff from within the linux directory. Which
did not report any errors. All looked good.
Added Knoppix specific patch.

"cat knoppix-kernel.patch | patch -p0"
I have not been able to connect to www.xfs.org to obtain that patch

I copied the '.config' from the old /usr/src/linux-2.4.27 to my new "linux->" directory
Did a 'make oldconfig" to get the setting. New .config matched old .config
Did "make dep" -- OK
Then "make bzImage" resulting in this set of final lines:
Code:
 
   objcopy -O binary -R .note -R .comment -S compressed/bvmlinux compressed/bvmlinux.out
   tools/build -b bbootsect bsetup compressed/bvmlinux.out CURRENT > bzImage
   Root device is (22, 1)
   Boot sector 512 bytes.
   Setup is 4869 bytes.
   System is 989 kB
   warning: kernel is too big for standalone boot from floppy
   make[1]: Leaving directory `/usr/src/kernel-source-2.4.27-2.4.27/arch/i386/boot'
   root@lt47:/usr/src/linux#
Next "make modules" and this fails
Code:
 ...
gcc-2.95 -D__KERNEL__ -I/usr/src/kernel-source-2.4.27-2.4.27/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE  -nostdinc -iwithprefix include -DKBUILD_BASENAME=dgrs  -c -o dgrs.o dgrs.c
dgrs.c:137: dgrs_firmware.c: No such file or directory
dgrs.c: In function `dgrs_download':
dgrs.c:1040: `dgrs_ncode' undeclared (first use in this function)
dgrs.c:1040: (Each undeclared identifier is reported only once
dgrs.c:1040: for each function it appears in.)
dgrs.c:1040: `dgrs_code' undeclared (first use in this function)
dgrs.c: In function `dgrs_init_module':
dgrs.c:1501: `dgrs_firmnum' undeclared (first use in this function)
dgrs.c:1501: `dgrs_firmdate' undeclared (first use in this function)
dgrs.c:1501: `dgrs_firmver' undeclared (first use in this function)
make[2]: *** [dgrs.o] Error 1
make[2]: Leaving directory `/usr/src/kernel-source-2.4.27-2.4.27/drivers/net'
make[1]: *** [_modsubdir_net] Error 2
make[1]: Leaving directory `/usr/src/kernel-source-2.4.27-2.4.27/drivers'
make: *** [_mod_drivers] Error 2
root@lt47:/usr/src/linux#
The code that causes the failure is:
Code:
  /*
   *      Firmware.  Compiled separately for local compilation,
   *      but #included for Linux distribution.
   */
  #ifndef NOFW
          #include "dgrs_firmware.c"
  #else
          extern int      dgrs_firmnum;
          extern char     dgrs_firmver[];
          extern char     dgrs_firmdate[];
          extern uchar    dgrs_code[];
          extern int      dgrs_ncode;
  #endif
But unfortunately, NOFW appears nowhere else in this source tree.
Code:
  root@lt47:/usr/src/linux# grep -r NOFW *
  drivers/net/dgrs.c:#ifndef NOFW
  root@lt47:/usr/src/linux#
Checking my current system, there is no such module:
Code:
  root@lt47:/lib/modules# ls
  2.4.27  2.6.9  airo-mpi  extra
  root@lt47:/lib/modules# find . -name "dsg*" -print
  root@lt47:/lib/modules#
What now? what am I missing? Did this config file really make my
kernel? Is there another package needed?