Error building linux kernel module (Invalid module format)
Hello, currently I began learning linux kernel programming and I faced the following problem. After successfully creating and compiling some modules I made a new directory that contained two files, my_module.c (containing just init and exit functions with pr_info) and Makefile. Accidentally on this particular Makefile I didn't put M= before ${PWM} like in the example below.
...
all:
make -C /lib/modules/$(uname -r)/build ${PWD} modules
...
Before even realizing, I had tried to build this module as root. Getting the following
result.
make[1]: Entering directory '/usr/src/linux-headers-5.11.0-41-generic' SYNC include/config/auto.conf.cmd HOSTCC scripts/basics/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTLD scripts/kconfig/cong make[2]: *** No rule to make target 'arch/x86/tools/relocs_32.c', need by 'arch/x86/tools/relocs_32.o'. Stop. make[1]: *** [arch/x86/Makefile:211: archscripts] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-41-generic' make: *** [Makefile:4: all] Error 2
But the actual problem isn't this. After putting M= on the Makefile and trying to build my module again, I cannot insmode it, since if I try to insmod that module I get this error
insmod: ERROR: could not insert module my_module.ko: Invalid module format
Moreover, on dmesg I see the following output.
module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 000000001528b80b, val ffffffffc0797000
Now, none of the previously running modules (that I made) can be build and run. Does anyone know how I could fix this error? Thank you in advance!
Categories
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 769 Linux Foundation IT Professional Programs
- 379 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 102 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 7 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 16 Cloud & Containers Training
- 2 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 2 Networking Training
- 2 Open Source Best Practice Training
- 4 System Administration Training
- 1 System Engineering Training
- 2 Web & Application Development Training
- 796 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 91 Storage
- 771 Linux Distributions
- 81 Debian
- 68 Fedora
- 23 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 466 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 79 Network Management
- 101 System Management
- 46 Web Management
- 127 Mobile Computing
- 20 Android
- 92 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 400 Off Topic
- 124 Introductions
- 32 Study Material
- 1K Programming and Development
- 310 Kernel Development
- 705 Software Development
- 1K Software
- 409 Applications
- 182 Command Line
- 5 Compiling/Installing
- 70 Games
- 318 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)