Kernel Module: Invalid module format

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
clansman5
Sędziwy Jeż
Sędziwy Jeż
Posty: 77
Rejestracja: 06 sty 2009, 10:59
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

Kernel Module: Invalid module format

Post autor: clansman5 »

Napisalem sobie prosty modul kernelowy (dummy - na razie nic nie robi). Mam z nim maly problem.

Zrodlo modulu jest nastepujace:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/kd.h>

// ------------------------------------------------------

#define lic "GPL"
#define auth "TW"
#define desc "Test Module"
#define dev "dummy"

// ------------------------------------------------------

MODULE_LICENSE(lic);
MODULE_AUTHOR(auth);
MODULE_DESCRIPTION(desc);
MODULE_SUPPORTED_DEVICE(dev);

// ------------------------------------------------------

static int __init kb_init(void)
{
printk(KERN_ALERT "Hello\n");
return 0;
}

// ------------------------------------------------------

static void __exit kb_exit(void)
{
printk(KERN_ALERT "Bye\n");
return;
}

// ------------------------------------------------------

module_init(kb_init);
module_exit(kb_exit);

// ------------------------------------------------------
Modul sie kompiluje. Gdy probuje zaladowac go do kernela dostaje komunikat:
tomasz@athena:~/Programowanie/Testy/k_mody$ sudo insmod kb.ko
insmod: error inserting 'kb.ko': -1 Invalid module format
dmesg:
[ 4215.463669] kb: disagrees about version of symbol struct_module
Zastanawiam sie o co chodzi? Jestem w 100% pewny, ze skompilowal sie z obecnie uzywana wersja jadra. Sam ten kernel kompilowalem a w katalogu /usr/src mam tylko jedne zrodla linuxa.

Ma ktos jakis pomysl ? Moze jakis naglowek specyficzny jest potrzebny?
arrevalk
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 07 sie 2006, 16:51
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: Kernel Module: Invalid module format

Post autor: arrevalk »

A jaki plik konfiguracyjny wykorzystales do kompilacji jądra?
Plik konfiguracyjny Twojego jajka pod ubuntu mozna znalezc w katalogu \boot

Edit:
Wersje kernela łatwo sprawdzić za pomocą polecenia

Kod: Zaznacz cały

uname -r
natomiast wersje modułu:

Kod: Zaznacz cały

modinfo ./jakis_modul.ko
clansman5
Sędziwy Jeż
Sędziwy Jeż
Posty: 77
Rejestracja: 06 sty 2009, 10:59
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: Kernel Module: Invalid module format

Post autor: clansman5 »

To config ma jakiekolwiek znaczenie? Nie rozumiem co to zmienia, przeciez zrodla pozostaja te same. Fakt zmienialem cos w configu kernela, mialem go przekompilowac i uruchomic ale w konsekwencji zostalem przy obecnej konfiguracji. Sprawdze sprawe z configiem

EDIT:

Faktycznie, config ma znaczenie lekka modyfikacja configa i kernel juz uznaje modul za skompilowany z innym kernelem
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości