processor.h:87: error: array type has incomplete element typ

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
tom-tom
Beiträge: 4
Registriert: 08.09.2005 13:03:06
Kontaktdaten:

processor.h:87: error: array type has incomplete element typ

Beitrag von tom-tom » 08.09.2005 13:11:22

Hallo zusammen,

hab egrade diese Forum entdeckt und finde es recht nützlich. Leider brachte mich eure suchfunktion genauso weit wie googel.

Nun ich bin eiegntlich ein Linux/Debian DAU und mache grade meine ersten geh versuche mit einer Linux VoIP software (Asterisk) ich habe Zuhause ein Debian System mit Kernel 2.6.8.2 laufen welchen ich per apt installiert habe. Auch die Kernel-sourchen 2.6.8 habe ich per apt installiert. Per ln -s linux auf auf die kernelsourcen gelinkt.

Code: Alles auswählen

Linux version 2.6.8-2-686 (horms@tabatha.lab.ultramonkey.org) (gcc version 3.3.5 (Debian 1:3.3.5-12)) #1 Thu May 19 17:53:30 JST 2005

Server1:/usr/src# ls -l
insgesamt 34864
dr-xr-xr-x  12 root root     4096 2005-08-30 22:34 bristuff-0.2.0-RC8n
drwxr-xr-x  16 root root     4096 2005-09-03 13:38 kernel-headers-2.6.8-2
drwxr-xr-x   3 root root     4096 2005-09-03 13:38 kernel-headers-2.6.8-2-686
drwxr-xr-x   3 root root     4096 2005-08-26 11:05 kernel-kbuild-2.6-3
drwxr-xr-x  19 root root     4096 2005-09-08 15:04 kernel-source-2.6.8
lrwxrwxrwx   1 root src        20 2005-09-08 14:58 linux -> kernel-source-2.6.8/
drwxrwxr-x  18  500  500     4096 2004-08-14 07:37 linux-2.6.8
-rw-r--r--   1 root src  35634061 2005-09-07 11:25 linux-2.6.8.tar.bz2
Habe dann über "make menueconfig" meine config kopiert und möchte nun mit "make modules" die Kernel-module erstellen.
Dabei erhalte ich aber folgenden fehler:

Code: Alles auswählen

Server1:/usr/src/linux# make modules
  CC      arch/i386/kernel/asm-offsets.s
In file included from include/asm/thread_info.h:16,
                 from include/linux/thread_info.h:21,
                 from include/linux/spinlock.h:12,
                 from include/linux/capability.h:45,
                 from include/linux/sched.h:7,
                 from arch/i386/kernel/asm-offsets.c:7:
include/asm/processor.h:87: error: array type has incomplete element type
make[1]: *** [arch/i386/kernel/asm-offsets.s] Fehler 1
make: *** [arch/i386/kernel/asm-offsets.s] Fehler 2
Kann mir jemand weiterhelfen?

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 09.09.2005 16:18:06

/edit: Natürlich ein herzliches Willkommen im Forum

folgendes sollte zum Ziel führen:

Code: Alles auswählen

$> apt-get install kernel-package
...
$> cd /usr/src/linux
$> make-kpkg --revision=foo1 modules
oder
$> make-kpkg --revision=foo1 modules_image
das wird aber nichts bringen, wenn du versuchst ein Modul zu bauen, das nicht auch schon im Kernel drin ist.
Natürlich kannst du auch gleich einen kompletten (eigenen) Kernel bauen, da sind dann die Module mit dabei:

Code: Alles auswählen

$> cd /usr/src/linux
$> make-kpkg --revision=foo1 --append_to_version=foo kernel_image
$> cd ..
$> dpkg -i kernel-image-2.6.8_foo1_i386.deb
mit dem letzten Schritt installierst du den neuen Kernel inkl. Module.
Bei deinem Ansatz oben hast du die Standardmethode zum Kernelbauen genutzt. Die braucht aber diverse /usr/include/linux/*.h, die bei dir ws. nicht vorhanden sind.

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 09.09.2005 17:22:29

falls das doch nicht klappen sollte, poste mal die Ausgabe von "gcc -v".

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

tom-tom
Beiträge: 4
Registriert: 08.09.2005 13:03:06
Kontaktdaten:

Beitrag von tom-tom » 09.09.2005 17:38:07

Recht Herzlichen dankt für die Antworten, ich habe die von dir genannten Lösungsvorschläge einmal getestet leider funktionieren sie alle nicht.

Code: Alles auswählen

CRC32 functions (CRC32) [Y/?] y
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check (LIBCRC32C) [M/y/?] m
make[1]: Verlasse Verzeichnis »/usr/src/kernel-source-2.6.8«
/usr/bin/make EXTRAVERSION=foo   \
                                ARCH=i386 prepare
make[1]: Gehe in Verzeichnis »/usr/src/kernel-source-2.6.8«
  SPLIT   include/linux/autoconf.h -> include/config/*
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CC      arch/i386/kernel/asm-offsets.s
In file included from include/asm/thread_info.h:16,
                 from include/linux/thread_info.h:21,
                 from include/linux/spinlock.h:12,
                 from include/linux/capability.h:45,
                 from include/linux/sched.h:7,
                 from arch/i386/kernel/asm-offsets.c:7:
include/asm/processor.h:87: error: array type has incomplete element type
make[2]: *** [arch/i386/kernel/asm-offsets.s] Fehler 1
make[1]: *** [arch/i386/kernel/asm-offsets.s] Fehler 2
make[1]: Verlasse Verzeichnis »/usr/src/kernel-source-2.6.8«
make: *** [stamp-kernel-configure] Fehler 2
gcc -v sagt

Code: Alles auswählen

Server1:/usr/src/linux# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.1 (Debian 4.0.1-2)
Stehe etwas auf den schlauch.
das wird aber nichts bringen, wenn du versuchst ein Modul zu bauen, das nicht auch schon im Kernel drin ist.
Kannst du mir bitte einmal erklären was das bedeutet?

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 09.09.2005 19:19:23

gcc -v sagt

Code: Alles auswählen

Server1:/usr/src/linux# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.1 (Debian 4.0.1-2)
Stehe etwas auf den schlauch.
Hmm, da kannste nur noch den Patch hier versuchen: http://nopaste.debianforum.de/get/1034
Speicher die Datei in /usr/src als "linux-2.6.8-allow-gcc-4.0-asm-i386.patch"
und dann machst du folgendes:

Code: Alles auswählen

$> cd /usr/src
$> patch -b -p0 < linux-2.6.8-allow-gcc-4.0-asm-i386.patch
Da sollte als Rückmeldung in ungefähr stehen: "hunk#3 succeeded". Im Anschluss kannst du noch mal das Bauen der Module starten. Ich hoffe doch, dass dann klappt.
Kannst du mir bitte einmal erklären was das bedeutet?
Ha, brauch ich nicht, da hab ich nämlich auf dem Schlauch gestanden und war im Kopf bei etwas völlig anderem. Also ignorier es einfach. :)

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

tom-tom
Beiträge: 4
Registriert: 08.09.2005 13:03:06
Kontaktdaten:

Beitrag von tom-tom » 11.09.2005 13:01:41

Hi das mit dem Patch hat ohne Probleme funktioniert! Leider hilft es nicht das Ursprüngliche Problem zu behen :-(

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 12.09.2005 14:17:35

Hast du's auch schon mal mit dem gcc-3.4.x versucht, oder als allerletzte Krücke 2.95? Nach wievor raten die Kerneldocs zu 2.95.x als bevorzugtem compiler.

Und wenn das obige auch nix bringt, mach mal:

Code: Alles auswählen

$> apt-get install linux-kernel-headers
Dann sind alle [plausiblen] Möglichkeiten durch. :)

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

tom-tom
Beiträge: 4
Registriert: 08.09.2005 13:03:06
Kontaktdaten:

Beitrag von tom-tom » 14.09.2005 18:53:37

GCC wars! Danke sehr!

Antworten