Driver can not be inserted with error "inserting gedv0.ko: -1 Invalid mosule format"
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I'm not an expert on ARM but I think 'invialid register name for 'current_stack_pointer' is some wrong inline assembly code. I had a look at the kernel sources and found that symbol only for the sh, mn10300 and and x86 architecture defined but not for arm. Where does this error come from? Can you post the whole output of make? Did you do "make prepare" and "make *config" with the same arguments as the compilation (ARCH=arm, CROSS_COMPILE=arm-...)? It seems that somehow different architectures are mixed ...
So if compile a module for arm processor, then the kernel has to be compied with arm compiler? After removing the arm compileing option in makefile, it compiles ok and modinfo display the right version number, but file check reaveals intel 80386 format.
If you remove the ARCH=arm option from the makefile, the architecture of the host system (I assume x86) will be selected and thus elf32-i386 output will be created. You have to do all things like "make prepare", "make menuconfig" with the options "ARCH=arm CROSS_COMPILE=...".
Enter "make distclean" and then reconfigure the kernel.
I redid everything with the arm-none-linux option. Now I was able to create the right module and inserted into the target. I would like to say thank you very mouch for your persistent help for these few days.
I have a different question. Once the kernel module is inserted, do we need to do anything in order to be able to call the functions in the kernel module? It seems like I have trouble accessing the kernel module that I have just insterted.
Now I have to compile a kernel module for another kernel linux-2.6.30-rc7. But when I do make prepare, I have following erros:
cripts/kconfig/conf -s arch/arm/Kconfig
SYMLINK include/asm -> include/asm-arm
In file included from include/linux/compiler-gcc.h:86,
include/linux/compiler-gcc4.h:8:4: error: #error Your version of gcc miscompiles the __weak directive
make: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2