Error building latest SuSE kernel
From other messages, I saw that kernel 2.4.19 was available and "highly recommended" [because, among other things, it fixes a problem w/multiple IDE drives -- while I haven't seen a problem I can trace to this yet, I'm about to embark on something that would stress this, so if it's waiting to break...] So, I downloaded the sources, did "make cloneconfig" and noted some "new" items (mostly related to 'enterprise volume management') which I figured was a good thing to try out [re above stress test: I may try to do some video editing, in which case I'd REALLY like to have my two 80gb drives configured as raid-0 [striped] for speed] I've probably diddled a couple of other settings [dunno exactly what I'm doing -- it's been a while since I was "comfortable" doing kernel compiles; nowadays it seems even more complex] I -DID- to a "make dep", then tried make bzImage -- this chugged along until the following error: gcc -D__KERNEL__ -I/usr/src/linux-2.4.19.SuSE/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DKBUILD_BASENAME=traps -DEXPORT_SYMTAB -c traps.c traps.c: In function `do_int3': traps.c:790: warning: implicit declaration of function `kdb' traps.c:790: `KDB_REASON_BREAK' undeclared (first use in this function) traps.c:790: (Each undeclared identifier is reported only once traps.c:790: for each function it appears in.) traps.c:790: `kdb_eframe_t' undeclared (first use in this function) traps.c:790: parse error before "regs" make[1]: *** [traps.o] Error 1 make[1]: Leaving directory `/usr/src/linux-2.4.19.SuSE/arch/i386/kernel' make: *** [_dir_arch/i386/kernel] Error 2 So, have I stepped in the goo on this? should I back up an redo the "make cloneconfig" and try that [without any additional 'diddling'] or is there simply "a problem" with the latest kernel sources "as supplied" by SuSE and I'm stuck unless *I* want to investigate and repair... [yeah, RIGHT!] Tom
On Mon, 09 Dec 2002 17:07:46 -0800 Tom Emerson <osnut@pacbell.net> wrote:
make[1]: Leaving directory `/usr/src/linux-2.4.19.SuSE/arch/i386/kernel' make: *** [_dir_arch/i386/kernel] Error 2
So, have I stepped in the goo on this? should I back up an redo the "make cloneconfig" and try that [without any additional 'diddling'] or is there simply "a problem" with the latest kernel sources "as supplied" by SuSE and I'm stuck unless *I* want to investigate and repair... [yeah, RIGHT!]
If you are going to do a cloneconfig of suse, you need to apply all their patches to the kernel. Otherwise you need to figure out where in the config, the error is coming from and disable the feature. I have a plain kernel going with suse8.1 and I get some error on startup about TGIODEV (or something similar) not found. I think it's some error about the identification number in the keyboard, which is found by hwscan. Anyways, it happens because I didn't apply some patch to the kernel source. You probably will have to skip make cloneconfig, and go thru each config option and read the help, and decide if you need it. Then save your new custom config. -- use Perl; #powerful programmable prestidigitation
On Tuesday 10 December 2002 5:02 am, zentara wrote:
On Mon, 09 Dec 2002 17:07:46 -0800
Tom Emerson <osnut@pacbell.net> wrote:
make[1]: Leaving directory `/usr/src/linux-2.4.19.SuSE/arch/i386/kernel' make: *** [_dir_arch/i386/kernel] Error 2
So, have I stepped in the goo on this? should I back up an redo the "make cloneconfig" and try that [without any additional 'diddling'] or is there simply "a problem" with the latest kernel sources "as supplied" by SuSE and I'm stuck unless *I* want to investigate and repair... [yeah, RIGHT!]
If you are going to do a cloneconfig of suse, you need to apply all their patches to the kernel.
pardon my dumb look, but I thought that that is what I downloaded -- SuSE's "patched" 2.4.19 kernel. OTOH, this is the first time I've tried "cloneconfig" -- I didn't even know such a beast existed until I started scanning this group...
You probably will have to skip make cloneconfig, and go thru each config option and read the help, and decide if you need it. Then save your new custom config.
That is what I originally intended to do, but it seems the interdependancy level has "grown" considerably with later kernels. Not so much of "this kernel element needs that component", but rather "this program used during the boot process needs module xxx to be installed" [and, of course, that program is never heard from again...] I realize SuSE makes what I call a "kitchen sink" kernel build [everything, including the kitchen sink, is in there somehow...] and I understand why they would need to do this: they have no clue as to what hardware *I* actually have (or intend to use), and anything I have or want to use WILL differ radically from what my neighbor has or wants... It would be really great if someone could come up with a program to scan your actual hardware and build a .config file to match [hmm, "make yourconfig"?] and [possibly seperately] ask about "optional" items [not hardware related; things like which file system to use, or raid support, etc.] To then base a distribution's installation on such would be icing on the cake (i.e., the install process probes the system, builds a custom kernel configuration, and compiles the kernel as a matter of course...) Mind you, this wouldn't be a "consumer" level distribution -- perhaps the ultimate "professional/server" distribution instead...
Tom Emerson wrote:
From other messages, I saw that kernel 2.4.19 was available and "highly recommended" [because, among other things, it fixes a problem w/multiple IDE drives -- while I haven't seen a problem I can trace to this yet, I'm about to embark on something that would stress this, so if it's waiting to break...]
So, I downloaded the sources, did "make cloneconfig" and noted some "new" items (mostly related to 'enterprise volume management') which I figured was a good thing to try out [re above stress test: I may try to do some video editing, in which case I'd REALLY like to have my two 80gb drives configured as raid-0 [striped] for speed]
I've probably diddled a couple of other settings [dunno exactly what I'm doing -- it's been a while since I was "comfortable" doing kernel compiles; nowadays it seems even more complex] I -DID- to a "make dep", then tried make bzImage -- this chugged along until the following error:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.19.SuSE/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DKBUILD_BASENAME=traps -DEXPORT_SYMTAB -c traps.c traps.c: In function `do_int3': traps.c:790: warning: implicit declaration of function `kdb' traps.c:790: `KDB_REASON_BREAK' undeclared (first use in this function) traps.c:790: (Each undeclared identifier is reported only once traps.c:790: for each function it appears in.) traps.c:790: `kdb_eframe_t' undeclared (first use in this function) traps.c:790: parse error before "regs" make[1]: *** [traps.o] Error 1 make[1]: Leaving directory `/usr/src/linux-2.4.19.SuSE/arch/i386/kernel' make: *** [_dir_arch/i386/kernel] Error 2
So, have I stepped in the goo on this? should I back up an redo the "make cloneconfig" and try that [without any additional 'diddling'] or is there simply "a problem" with the latest kernel sources "as supplied" by SuSE and I'm stuck unless *I* want to investigate and repair... [yeah, RIGHT!]
It is a bug in SuSE's kernel. There is a bad define line in traps.c. I ran into it when trying to compile an athlon-smp kernel from SuSE's sources. It appears to be a patch related coding bug. `KDB_REASON_BREAK' is defined in linux/kdb.h In arch/i386/kernel/traps.c at the top you have this #ifdef CONFIG_KDB #include <linux/kdb.h> #endif /* CONFIG_KDB */ that's ok but then down where it uses `KDB_REASON_BREAK' you have this #if defined(CONFIG_DPROBES_CORE) || defined(CONFIG_KDB) /* * If dp_trap returns zero, there is no probe at this location and we * handle int3 normally. */ asmlinkage int do_int3(struct pt_regs * regs, long error_code) { #if defined(CONFIG_DPROBES_CORE) HOOK_RET(DO_INT3, regs); #endif if (kdb(KDB_REASON_BREAK, error_code, (kdb_eframe_t) regs)) return 0; do_trap(3, SIGTRAP, "int3", 1, regs, error_code, NULL); return 0; } #endif To fix it just add the CONFIG_DPROBES_CORE to the first ifdef like #if defined(CONFIG_DPROBES_CORE) || defined(CONFIG_KDB) #include <linux/kdb.h> #endif /* CONFIG_KDB */ Worked for me.. Mark
On Monday 09 December 2002 20:07, Tom Emerson wrote:
dep", then tried make bzImage -- this chugged along until the following error:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.19.SuSE/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DKBUILD_BASENAME=traps -DEXPORT_SYMTAB -c traps.c
I got roughly the same error with traps.c. Did you attempt to disable ACPI functionality in the kernel? Only when I left it in did the errors go away on mine. -- ----- Doug
participants (4)
-
Doug Glenn
-
Mark Hounschell
-
Tom Emerson
-
zentara