my attempts to use 'insmod' i.s.o. 'modprobe' also fail. 'insmod -f' doesn't help either... i know that i update my kernel image from 2.2.20 to 2.4.20 properly and boot from the new image but perhaps i need to do additional things re: header files, etc. i'll check the debian forum re: kernel upgrades. so let's put this problem on hold for the moment.
to be able to continue my work for now, i switched from 'loadable' to 'linked in' drivers and was able to install my streams-xyz driver w/o any problems. but then i hit on another problem as follows... i have an internal library (e.g., libcmn.a) which contains a set of kernel-space functions. since these functions are used by many of my drivers, i link all my drivers with this library at compile/link time. if i try to configure 2 of my drivers (i.e., streams-abc, streams-xyz) as linked in drivers (i.e., by creating the appropriate /usr/src/LiS/pkg sub-directories and Config, Makefile, driver.o files), and do a 'make install' i run into multiple definition problems re: some functions listed in the libcmn.a library. i also get additional complaints re: multiple definition of vsprintf and sprintf functions. as a result, i'm unable to get my 2 drivers installed at the same time. 1. how can resolve multiple definition problems caused by libcmn.a routines? 2. what causes sprintf/vsprintf multiple definition problems & how can i alleviate them? thanks for any suggestions, gurol -----Original Message----- From: Brian F. G. Bidulock [mailto:[EMAIL PROTECTED] Sent: Sunday, August 31, 2003 12:39 AM To: Gurol Akman Cc: '[EMAIL PROTECTED]' Subject: Re: [Linux-streams] dynamically loadable drivers Gurol, Several things to check. Make sure that you have installed you kernel and kernel modules properly. modprobe looks for modules by kernel version. You can try 'insmod streams-xyz' instead of modprobe to see if it is a kernel installation problem or not. If you get a version error from 'insmod' try 'insmod -f streams-xyz'. --brian On Sat, 30 Aug 2003, Gurol Akman wrote: > 1. disabled the version checks and rebuilt the 2.4.20 kernel. > 2. rebooted my machine with the new kernel. > 3. compiled LiS 2.16.12 from scratch. > 4. removed -DMODVERSIONS flag and recompiled my driver. > 5. did 'streams start' > 6. did 'modprobe streams-xyz' > > I still get the same complaint re: kernel version not found. This doesn't > make sense!!! I was expecting modprobe to skip any version checks; > apparently it doesn't. I noted that LiS detects the kernel change I made and > does not use the -DMODVERSIONS flag when compiling its sub components. It > looks like 'modprobe' didn't take the change I made into account however. > > I looks like there's no way for me to load my driver dynamically -- > regardless of version checks being enabled or disabled in the kernel. Any > other suggestions to get this functionality to work? Thanks, > > Gurol > > -----Original Message----- > From: Brian F. G. Bidulock [mailto:[EMAIL PROTECTED] > Sent: Saturday, August 30, 2003 9:24 PM > To: Gurol Akman > Cc: '[EMAIL PROTECTED]' > Subject: Re: [Linux-streams] dynamically loadable drivers > > > Gurol, > > Do you have the following at the top of your driver? > > #include <linux/config.h> > #include <linux/version.h> > #ifdef MODVERSIONS > #include <linux/modversions.h> > #endif > #include <linux/module.h> > > that might help. I find that kernel symbol and module versions cause more > grief than good during developement and I usually turn them off in my > development kernels. > > --brian > > On Sat, 30 Aug 2003, Gurol Akman wrote: > > > i believe so brian... > > > > debian 3.0 comes with 2.2.20 kernel; i then installed & compiled 2.4.20 > > kernel under /usr/src/linux and upgraded my system from 2.2.20 to 2.4.20. > i > > then compiled & installed LiS 2.16.12. finally, i compiled my driver on > this > > system and try to load it. this is when i get the errors listed. do you > see > > anything incorrect in this sequence of events? thanks, > > > > gurol > > > > -----Original Message----- > > From: Brian F. G. Bidulock [mailto:[EMAIL PROTECTED] > > Sent: Saturday, August 30, 2003 12:37 AM > > To: Gurol Akman > > Cc: '[EMAIL PROTECTED]' > > Subject: Re: [Linux-streams] dynamically loadable drivers > > > > > > Gurol, > > > > Did you compile your streams module with the same kernel header files as > > you compiled the kernel? > > > > --brian > > > > On Fri, 29 Aug 2003, Gurol Akman wrote: > > > > > > > > When I try to use 'modprobe' to load my driver, i get the > following > > > errors: > > > > > > > > > > > > couldn't find the kernel version the module was compiled for > > > > > > insmod /lib/modules/2.4.20/misc/streams-xyz.o failed > > > > > > > > > > > > 1. I've compiled my driver with the -DMODULE and -DMODVERSIONS flags. > > > > > > 2. I have the init_module() and cleanup_module() calls defined in > my > > > driver code. > > > > > > 3. I'm using LiS 2.16.2 under Debian 3.0 with a kernel upgrade > (i.e., > > > 2.4.20). > > > > > > > > > > > > Any ideas about what I may be missing or doing wrong? Thanks much, > > > > > > > > > > > > Gurol > > > > -- > > Brian F. G. Bidulock � The reasonable man adapts himself to the � > > [EMAIL PROTECTED] � world; the unreasonable one persists in � > > http://www.openss7.org/ � trying to adapt the world to himself. � > > � Therefore all progress depends on the � > > � unreasonable man. -- George Bernard Shaw � > > -- > Brian F. G. Bidulock � The reasonable man adapts himself to the � > [EMAIL PROTECTED] � world; the unreasonable one persists in � > http://www.openss7.org/ � trying to adapt the world to himself. � > � Therefore all progress depends on the � > � unreasonable man. -- George Bernard Shaw � -- Brian F. G. Bidulock � The reasonable man adapts himself to the � [EMAIL PROTECTED] � world; the unreasonable one persists in � http://www.openss7.org/ � trying to adapt the world to himself. � � Therefore all progress depends on the � � unreasonable man. -- George Bernard Shaw � _______________________________________________ Linux-streams mailing list [EMAIL PROTECTED] http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams
