* Invalid module format in Fedora core2
@ 2005-02-25 15:27 Payasam Manohar
2005-02-25 15:36 ` Arjan van de Ven
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Payasam Manohar @ 2005-02-25 15:27 UTC (permalink / raw)
To: linux-kernel
Hai all,
I tried to insert a sample module into Fedora core 2 , But it is giving
an error message that " no module in the object"
The same module was inserted successfully into Redhat linux 9.
Is there any changes from RH 9 to Fedora Core 2 with respect to the module
writing and insertion.
Any small help also welcome.
Thanks in advance.
Regards,
Manohar.
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: Invalid module format in Fedora core2 2005-02-25 15:27 Invalid module format in Fedora core2 Payasam Manohar @ 2005-02-25 15:36 ` Arjan van de Ven 2005-02-25 15:42 ` Christian Borntraeger 2005-02-25 15:53 ` linux-os 2 siblings, 0 replies; 7+ messages in thread From: Arjan van de Ven @ 2005-02-25 15:36 UTC (permalink / raw) To: Payasam Manohar; +Cc: linux-kernel On Fri, 2005-02-25 at 20:57 +0530, Payasam Manohar wrote: > Hai all, > I tried to insert a sample module into Fedora core 2 , But it is giving > an error message that " no module in the object" > The same module was inserted successfully into Redhat linux 9. > > Is there any changes from RH 9 to Fedora Core 2 with respect to the module > writing and insertion. yes; 2.6 has a new module system. It sounds like you're not building your module correctly, look in the Documentation/ directory for more information on how to build modules for 2.6 kernels ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Invalid module format in Fedora core2 2005-02-25 15:27 Invalid module format in Fedora core2 Payasam Manohar 2005-02-25 15:36 ` Arjan van de Ven @ 2005-02-25 15:42 ` Christian Borntraeger 2005-02-25 15:53 ` linux-os 2 siblings, 0 replies; 7+ messages in thread From: Christian Borntraeger @ 2005-02-25 15:42 UTC (permalink / raw) To: linux-kernel; +Cc: Payasam Manohar Payasam Manohar wrote: > Hai all, > I tried to insert a sample module into Fedora core 2 , But it is > giving an error message that " no module in the object" > The same module was inserted successfully into Redhat linux 9. > > Is there any changes from RH 9 to Fedora Core 2 with respect to the > module writing and insertion. > > Any small help also welcome. Well, the most important difference is probably the move from Linux kernel 2.4 to Linux kernel 2.6. See http://lwn.net/Articles/driver-porting/ for details how to change modules from 2.4 to 2.6 (If source code is available). cheers Christian ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Invalid module format in Fedora core2 2005-02-25 15:27 Invalid module format in Fedora core2 Payasam Manohar 2005-02-25 15:36 ` Arjan van de Ven 2005-02-25 15:42 ` Christian Borntraeger @ 2005-02-25 15:53 ` linux-os 2005-02-25 16:49 ` Horst von Brand [not found] ` <20050225205004.GA15773@mars> 2 siblings, 2 replies; 7+ messages in thread From: linux-os @ 2005-02-25 15:53 UTC (permalink / raw) To: Payasam Manohar; +Cc: Linux kernel [-- Attachment #1: Type: TEXT/PLAIN, Size: 2907 bytes --] On Fri, 25 Feb 2005, Payasam Manohar wrote: > > Hai all, > I tried to insert a sample module into Fedora core 2 , But it is giving an > error message that " no module in the object" > The same module was inserted successfully into Redhat linux 9. > > Is there any changes from RH 9 to Fedora Core 2 with respect to the module > writing and insertion. > Yes. Fedora Core 2 should have the new module tools. It also has a new kernel. These new kernels load a module called "module.ko" instead of "module.o". Inside the new module is some code used to obfuscate the new module mechanism where 'insmod' and friends has been moved inside the kernel, further bloating the kernel and, incidentally, making it necessary for modules to be "politically correct", i.e., policy moved into the kernel. Whoever did this disastrous and destructive thing now wants you to write modules in a certain "politically correct" way, also. This means that you need to use the kernel source Makefile. There are new books that you are supposed to buy which will tell you how to re-write all your modules to interface with the new crap. I attached a typical makefile so you can see how complicated this new crap is. In the meantime, you can just take this and link it with your "module.o" to make a "module.ko". //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // // This program may be distributed under the GNU Public License // version 2, as published by the Free Software Foundation, Inc., // 59 Temple Place, Suite 330 Boston, MA, 02111. // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // // This is the junk that needs to be linked with module code so // it can be loaded by the new in-kernel module loader. It has no // purpose except to make the kernel loader happy. // // This is a totally artificial mechanism used to prevent one // from making a module that can work over several different // kernel versions. // #include <linux/kernel.h> #include <linux/module.h> #include <linux/vermagic.h> #include <linux/compiler.h> #define DEREF(x) (#x) #define MKSTR(x) DEREF(x) MODULE_INFO(vermagic, VERMAGIC_STRING); struct module __attribute__((section(".gnu.linkonce.this_module"))) __this_module = { .name = MKSTR(MODNAME), .init = init_module, .exit = cleanup_module, }; #ifdef REQUIRES_OTHER_MODULES static const char __attribute_used__ __attribute__((section(".modinfo"))) __module_depends[]="depends=other_modules"; #else static const char __attribute_used__ __attribute__((section(".modinfo"))) __module_depends[]="depends="; #endif > Any small help also welcome. > > Thanks in advance. > Regards, > Manohar. Cheers, Dick Johnson Penguin : Linux version 2.6.10 on an i686 machine (5537.79 BogoMips). Notice : All mail here is now cached for review by Dictator Bush. 98.36% of all statistics are fiction. [-- Attachment #2: Type: TEXT/PLAIN, Size: 2702 bytes --] # # # This program may be distributed under the GNU Public License # version 2, as published by the Free Software Foundation, Inc., # 59 Temple Place, Suite 330 Boston, MA, 02111. # # Project Makefile for kernel versions over 6 # Created 05-OCT-2004 Richard B. Johnson # # Note that macro "obj" refers to this directory when # make is executing from the kernel directory. # %.o:%.S as -o $@ $< VERS := $(shell uname -r) CDIR := $(shell pwd) MKNOD = /usr/bin/mknodp FNAM = HeavyLink EXTRA_CFLAGS += -DKVER6 -DMAJOR_NR=178 -DMODNAME="\"$(FNAM)"\" OBJS = datalink.o min_size_t.o license.o ram_test.o\ rwcheck.o seeprom.o rwreg.o rnd.o\ rdtsc.o dma_buffer.o ioctltxt.o all: chkhdrs @./chkhdrs @make V=1 -C /usr/src/linux-$(VERS) SUBDIRS=$(CDIR) modules strip -x -R .note -R .comment $(FNAM).ko obj-m := $(FNAM).o $(FNAM)-objs := $(OBJS) $(obj)/min_size_t.o: $(obj)/min_size_t.S $(obj)/Makefile $(obj)/license.o: $(obj)/license.c $(obj)/Makefile $(obj)/ram_test.o: $(obj)/ram_test.c $(obj)/Makefile $(obj)/rwcheck.o: $(obj)/rwcheck.S $(obj)/Makefile $(obj)/rwreg.o: $(obj)/rwreg.S $(obj)/Makefile $(obj)/rnd.o: $(obj)/rnd.S $(obj)/Makefile $(obj)/rdtsc.o: $(obj)/rdtsc.S $(obj)/Makefile $(obj)/ioctltxt.o: $(obj)/ioctltxt.s $(obj)/datalink.o: $(obj)/datalink.c $(obj)/datalink.h\ $(obj)/config.h $(obj)/types.h\ $(obj)/plx.h $(obj)/dlb.h\ $(obj)/ver.h $(obj)/Makefile\ $(SUBDIRS)/bool.h $(SUBDIRS)/kver.h $(obj)/dma_buffer.o: $(obj)/dma_buffer.c $(obj)/datalink.h\ $(obj)/config.h $(obj)/Makefile\ $(SUBDIRS)/bool.h $(obj)/seeprom.o: $(obj)/seeprom.c $(obj)/plx.h\ $(obj)/types.h $(obj)/Makefile chkhdrs: ../tools/chkhdrs.c gcc -O2 -Wall -o chkhdrs ../tools/chkhdrs.c $(SUBDIRS)/chktrue: $(SUBDIRS)/../tools/chktrue.c gcc -O2 -Wall -o $(SUBDIRS)/chktrue $(SUBDIRS)/../tools/chktrue.c $(SUBDIRS)/bool.h: $(SUBDIRS)/chktrue cd $(SUBDIRS) ; $(SUBDIRS)/chktrue $(SUBDIRS)/mkioctltxt: $(SUBDIRS)/mkioctltxt.c gcc -O2 -Wall -o $(SUBDIRS)/mkioctltxt $(SUBDIRS)/mkioctltxt.c $(SUBDIRS)/ioctltxt.s: $(SUBDIRS)/mkioctltxt $(SUBDIRS)/datalink.h cd $(SUBDIRS) ; $(SUBDIRS)/mkioctltxt $(SUBDIRS)/chkver: $(SUBDIRS)/../tools/chkver.c gcc -O2 -Wall -o $(SUBDIRS)/chkver $(SUBDIRS)/../tools/chkver.c $(SUBDIRS)/kver.h: $(SUBDIRS)/chkver cd $(SUBDIRS) ; $(SUBDIRS)/chkver $(VERS) install: install.sh $(MKNOD) @sh install.sh install $(MKNOD): ../tools/mknodp.c make -C ../tools clean: rm -rf $(OBJS) $(FNAM).ko $(FNAM).mod.c $(FNAM)*.o \.*.cmd \ chkhdrs \.tmp_versions chktrue bool.h kver.h *.s mkioctltxt chkver @sh install.sh clean ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Invalid module format in Fedora core2 2005-02-25 15:53 ` linux-os @ 2005-02-25 16:49 ` Horst von Brand [not found] ` <20050225205004.GA15773@mars> 1 sibling, 0 replies; 7+ messages in thread From: Horst von Brand @ 2005-02-25 16:49 UTC (permalink / raw) To: linux-os; +Cc: Payasam Manohar, Linux kernel linux-os <linux-os@analogic.com> said: > On Fri, 25 Feb 2005, Payasam Manohar wrote: > > I tried to insert a sample module into Fedora core 2 , But it is giving > > an error message that " no module in the object" > > The same module was inserted successfully into Redhat linux 9. > > Is there any changes from RH 9 to Fedora Core 2 with respect to the module > > writing and insertion. > Yes. Fedora Core 2 should have the new module tools. It also has > a new kernel. These new kernels load a module called "module.ko" > instead of "module.o". Right up to here. > Inside the new module is some code used > to obfuscate the new module mechanism where 'insmod' and friends > has been moved inside the kernel, further bloating the kernel AFAIR, the resulting code in-kernel is even smaller than before, and diong it in-kernel is the only sane way to avoid all kinds of nasty races. > and, incidentally, making it necessary for modules to be > "politically correct", i.e., policy moved into the kernel. Is this FUD really necesary? -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 654431 Universidad Tecnica Federico Santa Maria +56 32 654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513 ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20050225205004.GA15773@mars>]
* Re: Invalid module format in Fedora core2 [not found] ` <20050225205004.GA15773@mars> @ 2005-02-27 3:11 ` Payasam Manohar 0 siblings, 0 replies; 7+ messages in thread From: Payasam Manohar @ 2005-02-27 3:11 UTC (permalink / raw) To: linux-kernel; +Cc: linux-os hai sam, thanks for ur valuable info reg. 2.6 module insertion. Thanks&Regards, P.Manohar, n Fri, 25 Feb 2005, it was written: >> >> There are new books that you are supposed to buy which will >> tell you how to re-write all your modules to interface with >> the new crap. > Whats wrong with the free articles at lwn.net? > >> >> I attached a typical makefile so you can see how complicated >> this new crap is. > This is utterly crap. > > There is no difference in the Makefile being in-kernel or for an > external module if the Makefile is used solely to specify content of the > Module. > > So for a sample module named mymodule you need: > > Makefile: > obj-m := mymodule.o > mymodule-y := file1.o file2.o file3.o > > Here assuming 3 files are needed to build the actual module. > If you then want some wrapping to make things a bit easier you can add a > second file: > > > makefile: > VERS := $(shell uname -r) > CDIR := $(shell pwd) > > all: > $(MAKE) V=1 -C /usr/src/linux-$(VERS) SUBDIRS=$(CDIR) modules > strip -x -R .note -R .comment mymodule.ko > > And nothing special is needed with respect to vermagic etc. The kernel > do it for you. > > Please keep in mind the original poster did not ask for a method that > could be used for both 2.4 _and_ 2.6. > > Sam > ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <3BPzY-6Vi-33@gated-at.bofh.it>]
[parent not found: <3BQcw-7tO-3@gated-at.bofh.it>]
* Re: Invalid module format in Fedora core2 [not found] ` <3BQcw-7tO-3@gated-at.bofh.it> @ 2005-02-27 7:35 ` Robert Hancock 0 siblings, 0 replies; 7+ messages in thread From: Robert Hancock @ 2005-02-27 7:35 UTC (permalink / raw) To: linux-kernel linux-os wrote: > I attached a typical makefile so you can see how complicated > this new crap is. > > In the meantime, you can just take this and link it with your > "module.o" to make a "module.ko". What is all this stuff for? Unless you are doing some pretty bizarre things in your module this is far more complex than it needs to be. See: http://linuxdevices.com/articles/AT4389927951.html Given your previous posts on this issue I can't help but think you'd be better off reading how this can be done simply, rather than whining about the "political correctness" of the build process.. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-02-27 7:37 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-25 15:27 Invalid module format in Fedora core2 Payasam Manohar
2005-02-25 15:36 ` Arjan van de Ven
2005-02-25 15:42 ` Christian Borntraeger
2005-02-25 15:53 ` linux-os
2005-02-25 16:49 ` Horst von Brand
[not found] ` <20050225205004.GA15773@mars>
2005-02-27 3:11 ` Payasam Manohar
[not found] <3BPzY-6Vi-33@gated-at.bofh.it>
[not found] ` <3BQcw-7tO-3@gated-at.bofh.it>
2005-02-27 7:35 ` Robert Hancock
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox