Debugging device drivers

2006-01-11 Thread Francis Gudin
Hi all,

i'm trying to understand why my SB16 soundcard isn't recognized by
DragonFly, though working alright under FBSD 5.4: i already had a
long-standing problem with ips(4) and as i've got no other controller to
boot from, i had to go through a painful cycle (put printf everywhere,
rebuild on another host, scp & install the new kernel, reboot, try
to understand anything at all...).

As a sound card isn't that critical to the boot process, i'd like to
know if an easier way of debugging exists: would it be possible to
build a kernel without any sound support, instrument and somewhat
hack bits of snd_sbc and friends and then use kldload/kldunload to
investigate ? I mean: will the probe routines get called as they would
during normal kernel initialization ?

Thanks for any tips,
Francis.

PS: though the device names changed a little bit in kernel config files
between FBSD and DFly, i'm still using the same parameters in both case
(same irq, port, etc.)


Re: Debugging device drivers

2006-01-11 Thread Danial Thom


--- Francis Gudin <[EMAIL PROTECTED]> wrote:

> Hi all,
> 
> i'm trying to understand why my SB16 soundcard
> isn't recognized by
> DragonFly, though working alright under FBSD
> 5.4: i already had a
> long-standing problem with ips(4) and as i've
> got no other controller to
> boot from, i had to go through a painful cycle
> (put printf everywhere,
> rebuild on another host, scp & install the new
> kernel, reboot, try
> to understand anything at all...).
> 
> As a sound card isn't that critical to the boot
> process, i'd like to
> know if an easier way of debugging exists:
> would it be possible to
> build a kernel without any sound support,
> instrument and somewhat
> hack bits of snd_sbc and friends and then use
> kldload/kldunload to
> investigate ? I mean: will the probe routines
> get called as they would
> during normal kernel initialization ?
> 
> Thanks for any tips,
> Francis.

Trace code is your friend. Compiling a kernel is
so fast these days, just compile and reboot. 

DT

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Debugging device drivers

2006-01-11 Thread Francis GUDIN
On Wednesday, 11 January 2006 at 13:10:42 -0800, Danial Thom wrote :
> 
> Trace code is your friend. Compiling a kernel is
> so fast these days, just compile and reboot. 
> 

Hum... not exactly: my host is a 2xPPro (200MHz). Rebuilding a kernel is
about 1/4 hour. Rebooting globally lasts a few minutes. Joy, joy, joy...
Oh ! Also: i'd like to avoid launching X everytime, firefox (s**t) and
all over again. This *is* painful. This is why i asked...

Francis.


Re: Debugging device drivers

2006-01-11 Thread Brian Reichert
On Wed, Jan 11, 2006 at 10:19:45PM +0100, Francis GUDIN wrote:
> Hum... not exactly: my host is a 2xPPro (200MHz). Rebuilding a kernel is
> about 1/4 hour. Rebooting globally lasts a few minutes. Joy, joy, joy...
> Oh ! Also: i'd like to avoid launching X everytime, firefox (s**t) and
> all over again. This *is* painful. This is why i asked...

VMware?  Qemu?  Bochs?

Dunno if these would be useful to you...

> Francis.

-- 
Brian Reichert  <[EMAIL PROTECTED]>
55 Crystal Ave. #286Daytime number: (603) 434-6842
Derry NH 03038-1725 USA BSD admin/developer at large


Re: Debugging device drivers

2006-01-11 Thread Francis GUDIN
On Wednesday, 11 January 2006 at 16:43:46 -0500, Brian Reichert wrote :
> VMware?  Qemu?  Bochs?
> 
> Dunno if these would be useful to you...
> 

A simulated SoundBlaster wouldn't help much with XMMS ;-)
I'm talking *real hardware* here: my legacy ISA SB16 doesn't show up
with DFly whereas FreeBSD can use it. That's the point.

To get a bit further: would a gentle hacker explain how is devices
discovery and initialization done, even quickly in a few words, pse ?
I'm really lost with PNP or not, buses architecture and all.
Oh, pse: no need to tell me "go get 4.4BSD D&I...", it didn't help me
much. 

Francis.


Re: Debugging device drivers

2006-01-11 Thread Danial Thom


--- Brian Reichert <[EMAIL PROTECTED]> wrote:

> On Wed, Jan 11, 2006 at 10:19:45PM +0100,
> Francis GUDIN wrote:
> > Hum... not exactly: my host is a 2xPPro
> (200MHz). Rebuilding a kernel is
> > about 1/4 hour. Rebooting globally lasts a
> few minutes. Joy, joy, joy...
> > Oh ! Also: i'd like to avoid launching X
> everytime, firefox (s**t) and
> > all over again. This *is* painful. This is
> why i asked...
> 
> VMware?  Qemu?  Bochs?
> 

Uh, you don't have to rebuild the entire kernel
source every time, sillyboy. Only the module you
change will have to be recompiled. 

Its easy enough to stop x from launching. 

DT

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Debugging device drivers

2006-01-11 Thread joerg
On Wed, Jan 11, 2006 at 10:19:45PM +0100, Francis GUDIN wrote:
> On Wednesday, 11 January 2006 at 13:10:42 -0800, Danial Thom wrote :
> > 
> > Trace code is your friend. Compiling a kernel is
> > so fast these days, just compile and reboot. 
> > 
> 
> Hum... not exactly: my host is a 2xPPro (200MHz). Rebuilding a kernel is
> about 1/4 hour. Rebooting globally lasts a few minutes. Joy, joy, joy...
> Oh ! Also: i'd like to avoid launching X everytime, firefox (s**t) and
> all over again. This *is* painful. This is why i asked...

First of all, get a console to play sound like mad123 or so. Second, do
you have your device settings (IRQ, DMA, ...)? You need to add two
entries your kernel config:
device pcm
device snd_sbc0 at isa? ...

where "..." are the configuration parameters. You can change them via
the kernel config (boot -c).

Joerg


Re: Debugging device drivers

2006-01-11 Thread Francis Gudin
On 2006-01-11, Danial Thom <[EMAIL PROTECTED]> wrote:
>
>
> --- Brian Reichert <[EMAIL PROTECTED]> wrote:
>
>> On Wed, Jan 11, 2006 at 10:19:45PM +0100,
>> Francis GUDIN wrote:
>> > Hum... not exactly: my host is a 2xPPro
>> (200MHz). Rebuilding a kernel is
>> > about 1/4 hour. Rebooting globally lasts a
>> few minutes. Joy, joy, joy...
>> > Oh ! Also: i'd like to avoid launching X
>> everytime, firefox (s**t) and
>> > all over again. This *is* painful. This is
>> why i asked...
>> 
>> VMware?  Qemu?  Bochs?
>> 
>
> Uh, you don't have to rebuild the entire kernel
> source every time, sillyboy. Only the module you
> change will have to be recompiled. 
>
> Its easy enough to stop x from launching. 
>
> DT

OK, 'sillyboy' is going to rephrase it:
i know that modules do exist, thank you. What i'd like to know a bit
more about is the way drivers get plugged into the kernel, then how
probing is done, and so on.

Francis.


Re: Debugging device drivers

2006-01-11 Thread Doudou
On 2006-01-11, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> First of all, get a console to play sound like mad123 or so. Second, do
> you have your device settings (IRQ, DMA, ...)? You need to add two
> entries your kernel config:
> device pcm
> device snd_sbc0 at isa? ...
>
> where "..." are the configuration parameters. You can change them via
> the kernel config (boot -c).
>
> Joerg

OK, i'm trying this way at the moment.

As a side note, what confused me is the following:
- pcm(4), aka snd(4) states:
"For a card with bridge driver support, and a PnP card:
 device pcm

 For a card without bridge driver support, and a non-PnP card:
 device pcm0 at isa? port? irq 5 drq 1 flags 0x15"

- sbc(4) on the other hand:
"For PnP cards:
 device sbc

 For non-PnP cards:
 device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15"

- and the last comes straight from LINT:
"# Basic PCM support, needed for all sound card:
device  pcm
# For PnP/PCI sound cards:
device  snd
# For non-pnp sound cards:
device  snd0 at isa? irq 10 drq 1 flags 0x0"

Is there something seriously outdated on my system, or does the tree
need a bit of a clean-up ?

Francis.


Re: Debugging device drivers

2006-01-11 Thread Francis Gudin
On 2006-01-11, Doudou <[EMAIL PROTECTED]> wrote:
> On 2006-01-11, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>>
>> First of all, get a console to play sound like mad123 or so. Second, do
>> you have your device settings (IRQ, DMA, ...)? You need to add two
>> entries your kernel config:
>> device pcm
>> device snd_sbc0 at isa? ...
>>
>> where "..." are the configuration parameters. You can change them via
>> the kernel config (boot -c).
>>
>> Joerg
>
> OK, i'm trying this way at the moment.
>

No luck :-( Here's from dmesg:

snd_sbc0 [tentative] failed to probe at port 0x220 irq 5 drq 1 flags
0x15 on isa0
The exact same parameters work fine under FBSD as said in my 1st post.

Local time is 00:21, i give it up. Tomorrow might be different.

Thanks for your help anyway,
Francis.