Hi All, I am attempting to get setup for the kernel development of a USB serial driver. I am currently running on RH-9. Please bear with me as I have tried posting to the kernel-newbies.com list but the list appears to be read-only and no HOWTO's I have looked at are relevant.
I have downloaded a kernel tar-ball and extracted it under my home directory. I still have a few questions about development under this tree. Here is where I am so far: I am currently booted on 2.4.20-6smp (redhat). I downloaded the tarball: linux-2.6.0-test2.tar.bz2 and have extracted it under my home directory. After this step I was successfully able to do the following steps (with gcc version 3.2.2): . make oldconfig (left most options as default) . make bzImage then I tried: . make modules At the "make modules" stage I get a build failure. Below is a dump of the last screen of the failure. It was building for perhaps 20 minutes before bailing out. There were many warnings throughout the build (see below). I get similar errors if I try to build a 2.5 kernel (2.5.75). I saw a post somewhere about needing to do the following steps between the "make bzImage" and "make modules", however it did not work: make bzImage cp .conf .conf.save make clean make mrproper make clean cp .conf.save .conf make modules BUILD_DUMP_BEGIN: drivers/char/istallion.c: In function `stli_startbrd': drivers/char/istallion.c:4231: warning: `flags' might be used uninitialized in this function drivers/char/istallion.c: In function `stli_memread': drivers/char/istallion.c:4798: warning: `flags' might be used uninitialized in this function drivers/char/istallion.c: In function `stli_memwrite': drivers/char/istallion.c:4852: warning: `flags' might be used uninitialized in this function drivers/char/istallion.c: In function `stli_portcmdstats': drivers/char/istallion.c:4970: warning: `flags' might be used uninitialized in this function CC [M] drivers/char/ip2.o drivers/char/ip2.c: In function `init_module': drivers/char/ip2.c:57: warning: `MOD_INC_USE_COUNT' is deprecated (declared at include/linux/module.h:482) drivers/char/ip2.c:67: warning: `MOD_DEC_USE_COUNT' is deprecated (declared at include/linux/module.h:494) CC [M] drivers/char/ip2main.o drivers/char/ip2main.c: In function `ip2_ioctl': drivers/char/ip2main.c:2140: warning: implicit declaration of function `save_flags' drivers/char/ip2main.c:2140: warning: implicit declaration of function `cli' drivers/char/ip2main.c:2142: warning: implicit declaration of function `restore_flags' drivers/char/ip2main.c:1976: warning: `flags' might be used uninitialized in this function drivers/char/ip2main.c: At top level: drivers/char/ip2/i2cmd.c:142: warning: `ct89' defined but not used CC [M] drivers/char/riscom8.o In file included from drivers/char/riscom8.c:51: drivers/char/riscom8.h:84: field `tqueue' has incomplete type drivers/char/riscom8.h:85: field `tqueue_hangup' has incomplete type drivers/char/riscom8.c:84: warning: type defaults to `int' in declaration of `DECLARE_TASK_QUEUE' drivers/char/riscom8.c:84: warning: parameter names (without types) in function declaration drivers/char/riscom8.c:135: confused by earlier errors, bailing out make[2]: *** [drivers/char/riscom8.o] Error 1 make[1]: *** [drivers/char] Error 2 make: *** [drivers] Error 2 [EMAIL PROTECTED] linux-2.6.0-test2]$ BUILD_DUMP_END: So it appears that the general rule is you cannot build a 2.5.x or 2.6.x kernel from a 2.4.x kernel!! I know that this cannot be the case and I must have misinterpreted something somewhere? So this is one stumbling box I have not found a HOWTO or anything to suggest that it should be more difficult than this. I have tried posting to the kernel-newbies.com list but the list appears to be read-only. Am I supposed to upgrade the binutils first? From where? Once I get past this stage I think what I am supposed to do is install the kernel in the /boot directory, add it to my GRUB configuration and boot from it. Right? This kind of doesn't make sense because all the headers in /usr/src/linux-xxx will be out of synch with the binary kernel running? Does this not matter for driver development? One website suggested a build command line for just building a driver as: gcc -o mymod.o -Wall -W -O2 -DMODULE -D__KERNEL__ -I/lib/modules/`uname -r`/build/include -c my_mod.c to be executed from the driver directory (e.g. ./drivers/usb/serial). This does not work if I am trying to build a 2.6 kernel from a 2.4 system. So I guess I have to build and boot from the 2.6 kernel and the try and build the separate modules. If I can install and boot from a new 2.6 kernel will the appropriate headers magically find their way to /lib/modules/`uname -r`/build/include which will be /lib/modules/2.6.0-test2/build/include ?? As I am looking at starting a new module I will not be able to use the existing makefiles. Is this command line option the best one? Thanks for any help. So far my first kernel development experience with Linux has not been a pleasant one. ;( sab ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel