Subject: how to get the kernel to be more "verbose"?

Hi!

I have a problem on my machine, it's the Asus A6M laptop (amd sempron
3200+, 2gb ram, 80gb disk, (still unknown sound card), realtek 8168
ethernet, broadcom wireless, geforce go6100 etc), using debian amd64
port stable.

I simply cannot compile a bootable kernel. Every single one hangs at a
single point:
NET: Registered protocol family 2

(I am writing from my memory).

It does not produce an oops, does not produce anything, just gets
stuck, no disk usage after this, simply the machine is totally
hang-up. Rebooting has to be done by the service reset button. The
power button doesn't even work.

I've tried differendt editions from 2.6.8 to the current. The 2.6.8 is
shipped with debian port to amd64 - and the default debian kernel
boots up. But I need the wi-fi broadcom card - that is quite new.

I've tried using the /proc/config.gz provided by the default kernel,
but to no avail.

The next step of loading the kernel I have seen in various logs is the
TCP/IP stack, am I right? I've tried mutiple types of networking
config (router, non router, with/without ipv6, etc). But it still
hangs up.

Always in the same place. There is no output even with all the
possible debugging options compiled in.

Can You in some extent point me where to look for errors, what could
it be? Is there any way of loading a kernel on top of the default
kernel, so when it crashes I can trace the problem somehow?

Also, I've tried both gcc 3.3 and 3.4.

Any help? Please point me at something, I am trying for two weeks
already, and I cannot find any problems like mine. Thanks a lot for
any help.
--
Witold Wladyslaw Wojciech Wilk Et39m:+48605066384 gg3211630 (lepiej @)
prr: giant boulder'02 @13kkm - brak czasu :( / tychy-sosnowiec-gliwice
pms: vw golf 2 byl, juz sprzedany :) / [email protected]
pms/kc: citroen xantia mkI 2.0 8v 1995 225kkm/17kkm hydrokomfortowa :)


2006-10-06 07:28:17

by Uwe Zeisberger

[permalink] [raw]
Subject: Re: how to get the kernel to be more "verbose"?

Hello Witold,

Witold Władysław Wojciech Wilk wrote:
> I've tried using the /proc/config.gz provided by the default kernel,
> but to no avail.
Does this mean, you cannot find the config because /proc/config.gz
doesn't exist? Then try /boot/config-2.6.8. Maybe I misunderstood you?

> The next step of loading the kernel I have seen in various logs is the
> TCP/IP stack, am I right?
I think offically the initcalls are in no particular order, but in
practice in depends on the linking order. For my kernel the next line
is

IP route cache hash table entries: 32768 (order: 5, 131072 bytes)

> Any help? Please point me at something, I am trying for two weeks
> already, and I cannot find any problems like mine. Thanks a lot for
> any help.
You can try the "initcall_debug" kernel parameter to see which init
functions are called.

Best regards
Uwe

--
Uwe Zeisberger

http://www.google.com/search?q=12+mol+in+dozen

2006-10-06 09:43:51

by Uwe Zeisberger

[permalink] [raw]
Subject: Re: how to get the kernel to be more "verbose"?

Hi Witold,

(I readded [email protected] to the Cc:.)

Witold W?adys?aw Wojciech Wilk wrote:
> 2006/10/6, Uwe Zeisberger <[email protected]>:
> >Witold W?adys?aw Wojciech Wilk wrote:
> >> I've tried using the /proc/config.gz provided by the default kernel,
> >> but to no avail.
> >Does this mean, you cannot find the config because /proc/config.gz
> >doesn't exist? Then try /boot/config-2.6.8. Maybe I misunderstood you?
>
> No, I've used the config I had in the 2.6.8 (in proc/config.gz), but
> the SAME kernel 2.6.8 source compiled incorrectly. So I think this
> might be some glitch on my machine... because it is im possible to
> make a kernel that is always getting stuck in the same place.
Did you notice that Debian kernels are not vanilla but patched?

You can get the patches from http://packages.debian.org/

> >> Any help? Please point me at something, I am trying for two weeks
> >> already, and I cannot find any problems like mine. Thanks a lot for
> >> any help.
> >You can try the "initcall_debug" kernel parameter to see which init
> >functions are called.
>
> I will use that then. I am quite new to debugging the kernel... My
> programming knowledge is still quite low ;) But I will try that today
> after work... I will write more. I need to get the Wi-Fi working ASAP.
Another thing that could help you is SysRQ, there is a request that
prints out a stack dump.

Best regards
Uwe

--
Uwe Zeisberger

http://www.google.com/search?q=5+choose+3

Subject: Re: how to get the kernel to be more "verbose"?

2006/10/6, Uwe Zeisberger <[email protected]>:
> > No, I've used the config I had in the 2.6.8 (in proc/config.gz), but
> > the SAME kernel 2.6.8 source compiled incorrectly. So I think this
> > might be some glitch on my machine... because it is im possible to
> > make a kernel that is always getting stuck in the same place.
> Did you notice that Debian kernels are not vanilla but patched?
> You can get the patches from http://packages.debian.org/

OK, I'll check them out. Maybe they did patch them somewhere... But if
such a patch exist I think it should be for quite some time in the
mainstream, because this is quite a critical kernel bug, that it
crashes down.

> > >You can try the "initcall_debug" kernel parameter to see which init
> > >functions are called.
> > I will use that then. I am quite new to debugging the kernel... My
> > programming knowledge is still quite low ;) But I will try that today
> > after work... I will write more. I need to get the Wi-Fi working ASAP.
> Another thing that could help you is SysRQ, there is a request that
> prints out a stack dump.

Unfortunately the SysRQ does not respond. I've tried that to reboot,
shutdown, etc the system after the crash. There is simply no response.
I've tried even compiling into the kernel some really abstract
drivers, just in case I forgot something. I've managed once even a
2.5MB kernel image ;) unfortunately it got stuck just like the rest.

Thanks again, I'll write something more through the weekend, maybe I
will solve this... at least I hope so.
--
Witold Wladyslaw Wojciech Wilk Et39m:+48605066384 gg3211630 (lepiej @)
prr: giant boulder'02 @13kkm - brak czasu :( / tychy-sosnowiec-gliwice
pms: vw golf 2 byl, juz sprzedany :) / [email protected]
pms/kc: citroen xantia mkI 2.0 8v 1995 225kkm/17kkm hydrokomfortowa :)

2006-10-06 16:21:04

by Randy Dunlap

[permalink] [raw]
Subject: Re: how to get the kernel to be more "verbose"?

On Fri, 6 Oct 2006 09:33:03 +0200 Uwe Zeisberger wrote:

> Hello Witold,
>
> Witold Władysław Wojciech Wilk wrote:
> > I've tried using the /proc/config.gz provided by the default kernel,
> > but to no avail.
> Does this mean, you cannot find the config because /proc/config.gz
> doesn't exist? Then try /boot/config-2.6.8. Maybe I misunderstood you?
>
> > The next step of loading the kernel I have seen in various logs is the
> > TCP/IP stack, am I right?
> I think offically the initcalls are in no particular order, but in
> practice in depends on the linking order. For my kernel the next line
> is
>
> IP route cache hash table entries: 32768 (order: 5, 131072 bytes)

They are in initcall section order and within those sections they
are in link order. From include/linux/init.h:

/* initcalls are now grouped by functionality into separate
* subsections. Ordering inside the subsections is determined
* by link order.
* For backwards compatibility, initcall() puts the call in
* the device init subsection.
*/

#define __define_initcall(level,fn) \
static initcall_t __initcall_##fn __attribute_used__ \
__attribute__((__section__(".initcall" level ".init"))) = fn

#define core_initcall(fn) __define_initcall("1",fn)
#define postcore_initcall(fn) __define_initcall("2",fn)
#define arch_initcall(fn) __define_initcall("3",fn)
#define subsys_initcall(fn) __define_initcall("4",fn)
#define fs_initcall(fn) __define_initcall("5",fn)
#define device_initcall(fn) __define_initcall("6",fn)
#define late_initcall(fn) __define_initcall("7",fn)

> > Any help? Please point me at something, I am trying for two weeks
> > already, and I cannot find any problems like mine. Thanks a lot for
> > any help.
> You can try the "initcall_debug" kernel parameter to see which init
> functions are called.

You can also add "debug" to the boot options. That will make the
kernel more verbose, but beware, some distro's init scripts
change the loglevel during bootup, so it may not have effect for
very long.

And if you have a second machine, you can use netconsole or serial
console (depending on hardware) to capture boot messages.
The "earlyprintk" option could help here. Even without a second
machine, using "earlyprintk=vga" might help.

---
~Randy