Version-Probleme beim Modul-Bau?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Version-Probleme beim Modul-Bau?

Beitrag von klingone » 29.05.2007 08:17:44

Hallo,

ich habe mir den 2.6.21-1-686 installiert (als linux-image) und versuche nun mit make-kpkg modules_image die lirc-Module zu kompilieren. Ich bekomme folgende Fehlermeldung:

client2:/usr/src/linux# make-kpkg modules_image
exec debian/rules DEBIAN_REVISION=2.6.21-10.00.Custom modules_image
echo "The UTS Release version in include/linux/version.h"; echo " \"\" "; echo "does not match current version:"; echo " \"2.6.21\" "; echo "Please correct this."; exit 2
The UTS Release version in include/linux/version.h
""
does not match current version:
"2.6.21"
Please correct this.

make: *** [modules_image] Fehler 2

Wie korrigiere ich das denn?


Gruß
Uli

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.05.2007 08:45:48

hast du außer dem -image auch das entsprechende -source paket installiert? (oder zumindest -headers)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Installiert habe ich...

Beitrag von klingone » 29.05.2007 09:06:21

...
/usr/src/linux-headers-2.6.21-1
/usr/src/linux-source-2.6.21 (/usr/src/linux ist ein Link darauf)
/usr/src/modules/lirc

unter /usr/src/linux/include/linux/ gibt es keine version.h (?)

Gruß
Uli

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.05.2007 16:17:29

was gibt dir denn (musst du halt anpassen an deinen Kernel):

Code: Alles auswählen

s@hosenscheisser:2.6.21.1$ ls -l /lib/modules/2.6.21.1/build
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Nix (?)

Beitrag von klingone » 29.05.2007 16:47:41

client2:/usr/src/linux# ls -l /lib/modules/2.6.21-1-686/build
ls: /lib/modules/2.6.21-1-686/build: Datei oder Verzeichnis nicht gefunden


Gruß
Uli

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.05.2007 16:54:36

Code: Alles auswählen

ln -s /usr/src/linux-headers-2.6.21-1  /lib/modules/2.6.21-1-686/build
hilft das?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 29.05.2007 16:56:49

Sind die linux-headers-2.6.21-1-686 auch installiert? Das linux-source Paket brauchst du vermutlich gar nicht.

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Nicht wirklich...

Beitrag von klingone » 29.05.2007 17:00:45

Wenn ich nach dem Readme unter /usr/src/modules/lirc den Befehl

make-kpkg modules_image

ausführe (ob mit --version oder nicht) hagelt es ohne Ende Übersetzungsfehler.

@ Spasswolf:

ja, zumindest habe ich /usr/src/linux-headers-2.6.21-1


Gruß
Uli

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: Installiert habe ich...

Beitrag von Savar » 29.05.2007 17:05:10

klingone hat geschrieben:...
/usr/src/linux-headers-2.6.21-1
/usr/src/linux-source-2.6.21 (/usr/src/linux ist ein Link darauf)
/usr/src/modules/lirc
bieg mal den Link um auf linux-headers statt linux-source
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Folgendes Ergebnis

Beitrag von klingone » 29.05.2007 20:24:30

Hallo,
dann passiert folgendes:

client2:/usr/src/linux# make-kpkg modules_image
The modules_* targets should be called from a fully configured source tree,
and one where at least make-kpkg debian has been run
client2:/usr/src/linux# make-kpkg debian
exec make -f /usr/share/kernel-package/ruleset/minimal.mk debian
/usr/share/kernel-package/ruleset/minimal.mk:53: No .config file found
/usr/share/kernel-package/ruleset/minimal.mk:98: *** Please create a .config file. Schluss.
client2:/usr/src/linux# make oldconfig
Makefile:275: /usr/src/linux-headers-2.6.21-1/scripts/Kbuild.include: Datei oder Verzeichnis nicht gefunden
/bin/sh: line 0: [: -lt: unary operator expected
make: *** Keine Regel, um �/usr/src/linux-headers-2.6.21-1/scripts/Kbuild.include� zu erstellen. Schluss.


Gruß
Uli

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 29.05.2007 21:14:46

puh.. dann bieg den Link wieder zurück und mach

Code: Alles auswählen

cd /usr/src/linux/
make oldconfig
make-kpkg
durchlaufen lassen und anschließend das ganze nochmal probieren.. ist nicht schön aber selten
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Alternativ ohne make-kpkg?

Beitrag von klingone » 29.05.2007 21:41:47

Hallo,

ich bin jetzt auf der Arbeit, und kann es nicht testen.
Nur um ganz sicher zu gehen, dass ich nicht die falschen Pakete vom debian-Server heruntergeladen habe um es auf die beschrieben Art und Weise hinzukriegen:

Welche muß man runterladen um den fertigen Kernel-2.6.21 zu haben, die dazugehörigen sources, die header evtl. patches und die lirc-modules-sourcen?


Wäre es denn alternativ möglich, die ganze Sache auf die altmodische Art durchzuziehen:

make (x|menu)config && make && make modules_install ?

Sind die benötigten Sourcen für lirc_imon schon im Kernel drin, oder muß ich die erst irgendwie einpflegen?


Gruß
Uli

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 30.05.2007 01:56:28

Hi Männers,

ich hatte mal ähnliches Problem mit dem Ati Treiber und VMWare hat da auch schon mal Probleme gemacht. Vlt. hilft 80050 weiter. Der zweite Codeblock im zweiten Post kann direkt c'n'p werden.

HTH
debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Löst irgendwie mein Problem nicht

Beitrag von klingone » 30.05.2007 22:41:25

Hallo,

Bezugnehmend auf deinen Verweis zu dem anderen Thread (wo ich auch versehentlich die Antwort hineingepostet habe...), die Dateien utsrelease.h sowie version.h sind bei meinen linux-headers-2.6.21-1 nicht dabei....

debdog hat geschrieben: Code:
cp /usr/src/linux-headers-'uname -r'/include/linux/utsrelease.h \
/usr/src/linux-headers-'uname -r'/include/linux/version.h

siehe auch http://debianforum.de/forum/viewtopic.php?t=80192


Edit: am 23.02.07 03:20
Hab mir das ganze noch ein bisschen angepasst:
Code:
cd /usr/src/linux-headers-`uname -r`/include/linux
cat utsrelease.h >> version.h
cp version.h utsrelease.h
cat version.h
cat utsrelease.h
cd $OLDPWD


So sieht die version.h im 2.6.15 auch aus.

greez debdog
und unter /usr/inlcude/linux/ die Datei version.h sagt:
#define UTS_RELEASE "2.6.18"
#define LINUX_VERSION_CODE 132626
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << + (c))

uname -r sagt:
client2:~# uname -r
2.6.21-1-686


Da stimmt doch auch was nicht, oder?


Gruß
Uli

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 30.05.2007 22:55:06

Die Dateien in /usr/include/linux haben nichts mit dem laufenden Kernel zu tun, und werden nicht fürs nachträgliche kompilieren von Kernelmodulen benutzt.

Benutzeravatar
klingone
Beiträge: 19
Registriert: 26.05.2007 12:19:19
Wohnort: Duisburg

Nach Installation von ein paar gcc-Abhängigkeiten

Beitrag von klingone » 31.05.2007 07:00:56

Hallo,

mittlerweile ist der Versuch die Module zu erzeugen mit weniger Fehler verbunden...
ein make oldconfig und ein make prepare vorausgeschickt.

Foldende Ausgabe:
client2:/usr/src/linux# make-kpkg modules_image
exec debian/rules DEBIAN_REVISION=2.6.21-10.00.Custom modules_image
for module in /usr/src/modules/lirc ; do \
if test -d $module; then \
(cd $module; \
if ./debian/rules KVERS="2.6.21" KSRC="/usr/src/linux" \
KMAINT="Unknown Kernel Package Maintainer" KEMAIL="unknown@unconfigured.in.etc.kernel-pkg.conf" \
KPKG_DEST_DIR="/usr/src/linux/.." \
KPKG_MAINTAINER="Unknown Kernel Package Maintainer" \
KPKG_EXTRAV_ARG="" \
ARCH="i386" \
KDREV="2.6.21-10.00.Custom" kdist_image; then \
echo "Module $module processed fine"; \
else \
echo "Module $module failed."; \
if [ "X" != "X" ]; then \
echo "Perhaps $module does not understand --rootcmd?"; \
echo "If you see messages that indicate that it is not"; \
echo "in fact being built as root, please file a bug "; \
echo "against $module."; \
fi; \
echo "Hit return to Continue"; \
read ans; \
fi; \
); \
else \
echo "Module $module does not exist"; \
echo "Hit return to Continue?"; \
fi; \
done
make[1]: Entering directory `/usr/src/modules/lirc'
sed -e "s!\$KVERS!2.6.21!g; s!\$KSRC!/usr/src/linux!; s!\$KARCH!i386 DEB_BUILD_ARCH_OS=linux DEB_BUILD_ARCH_CPU=i386!; s!\$KEMAIL!unknown@unconfigured.in.etc.kernel-pkg.conf!; s!\$KMAINT!Unknown Kernel Package Maintainer!; s!\$KDREV!2.6.21-10.00.Custom!; s!\$DEBDATE!Do, 31 Mai 2007 06:48:19 +0200!" debian/control.in > debian/control
dh_testdir
# Add here commands to compile the package.
/usr/bin/make debconf
make[2]: Entering directory `/usr/src/modules/lirc'
/usr/bin/make -e -C drivers SUBDIRS="lirc_i2c lirc_dev"
make[3]: Entering directory `/usr/src/modules/lirc/drivers'
Making all in lirc_i2c
make[4]: Entering directory `/usr/src/modules/lirc/drivers/lirc_i2c'
Makefile:8: **************************************************
Makefile:8: *** Makefile trick not undone, trying to recover *
Makefile:8: **************************************************
mv Makefile.automake Makefile
/usr/bin/make all
make[5]: Entering directory `/usr/src/modules/lirc/drivers/lirc_i2c'
mv Makefile Makefile.automake
cp ../Makefile.kernel Makefile
/usr/bin/make -C /usr/src/linux SUBDIRS=/usr/src/modules/lirc/drivers/lirc_i2c modules \
KBUILD_VERBOSE=1
make[6]: Entering directory `/usr/src/linux-source-2.6.21-1-686'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \
echo; \
echo " ERROR: Kernel configuration is invalid."; \
echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo; \
/bin/false)
mkdir -p /usr/src/modules/lirc/drivers/lirc_i2c/.tmp_versions
rm -f /usr/src/modules/lirc/drivers/lirc_i2c/.tmp_versions/*

WARNING: Symbol version dump /usr/src/linux-source-2.6.21-1-686/Module.symvers
is missing; modules will have no dependencies and modversions.

/usr/bin/make -f scripts/Makefile.build obj=/usr/src/modules/lirc/drivers/lirc_i2c
gcc -m32 -Wp,-MD,/usr/src/modules/lirc/drivers/lirc_i2c/.lirc_i2c.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -Iinclude/asm-i386/mach-default -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -DIRCTL_DEV_MAJOR=61 -DEXPORT_SYMTAB -DHAVE_CONFIG_H -I. -I. -I../.. -I /usr/src/modules/lirc/drivers/lirc_i2c/../.. -I /usr/src/linux/include/ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lirc_i2c)" -D"KBUILD_MODNAME=KBUILD_STR(lirc_i2c)" -c -o /usr/src/modules/lirc/drivers/lirc_i2c/.tmp_lirc_i2c.o /usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:334: Fehler: unbekanntes Feld �name� in Initialisierung angegeben
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:334: Warnung: Initialisierung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:335: Fehler: �I2C_DRIVERID_EXP3� ist hier nicht deklariert (nicht in einer Funktion)
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:336: Fehler: unbekanntes Feld �flags� in Initialisierung angegeben
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:336: Fehler: �I2C_DF_NOTIFY� ist hier nicht deklariert (nicht in einer Funktion)
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c: In Funktion �ir_attach�:
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:392: Fehler: �I2C_ALGO_BIT� nicht deklariert (erste Benutzung in dieser Funktion)
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:392: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgef�hrt
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:392: Fehler: f�r jede Funktion in der er auftritt.)
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c: In Funktion �ir_probe�:
/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.c:464: Fehler: �I2C_ALGO_BIT� nicht deklariert (erste Benutzung in dieser Funktion)
make[7]: *** [/usr/src/modules/lirc/drivers/lirc_i2c/lirc_i2c.o] Fehler 1
make[6]: *** [_module_/usr/src/modules/lirc/drivers/lirc_i2c] Fehler 2
make[6]: Leaving directory `/usr/src/linux-source-2.6.21-1-686'
make[5]: *** [lirc_i2c.o] Fehler 2
make[5]: Leaving directory `/usr/src/modules/lirc/drivers/lirc_i2c'
make[4]: *** [all] Fehler 2
make[4]: Leaving directory `/usr/src/modules/lirc/drivers/lirc_i2c'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/usr/src/modules/lirc/drivers'
make[2]: *** [i2c] Fehler 2
make[2]: Leaving directory `/usr/src/modules/lirc'
make[1]: *** [build-stamp] Fehler 2
make[1]: Leaving directory `/usr/src/modules/lirc'
Module /usr/src/modules/lirc failed.
Hit return to Continue


Hängt sich irgendwie an lirc_i2c auf (?)


Gruß
Uli

Benutzeravatar
ecoli
Beiträge: 46
Registriert: 18.02.2005 17:14:56
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von ecoli » 18.06.2007 20:54:38

Hallo,

hatte das gleiche Probleme. Gelöst mit dem module-assistant.

Wichtig: richtigen Kernel-Headers installieren.

module-assistant aufrufen

prepare ausführen
select ausführen - lirc wählen
build und fertig.

modconf ausführen. Und im Misc sind dann die module für lirc drinnen.

Antworten