Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Oct 2004 14:01:14 -0700 (PDT)
From:      "Richard Lynch" <ceo@l-i-e.com>
To:        "Malcolm Kay" <malcolm.kay@internode.on.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: stdout/stderr/???
Message-ID:  <1362.66.243.145.38.1097442074.squirrel@www.l-i-e.com>
In-Reply-To: <200410101257.05494.malcolm.kay@internode.on.net>
References:  <1315.67.167.52.21.1097357022.squirrel@www.l-i-e.com> <200410101257.05494.malcolm.kay@internode.on.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Malcolm Kay wrote:
> On Sun, 10 Oct 2004 06:53 am, Richard Lynch wrote:
>> I have a situation where NIC code printf's out stuff.
>>
>> I'd *LIKE* to collect that output.
>>
>> Under Linux, I'd use 2&>1
>
> I think (hope) you mean 2>&1

According to "man bash" both should work, though one is preferred.

Both work fine *EXCEPT* that I have to pull the plug, and the file never
gets save/written/whatever.

I am using bash, specifically so I *CAN* do re-directs, but would be happy
to use *ANY* shell if I could just get what I want.

> Can't see why it should work differently for 'ifconfig'
> unless maybe this time you have the '&' in the wrong place.
> In any case I would not expect massive amounts of output from
> ifconfig.

It works differently because the driver goes into an infinite loop, and
the file never manages to get written.  Perhaps I could reduce some kind
of buffer somewhere to force the flush() to the file?

>> I can sorta get what I want by starting X-Windows, and using a
>> terminal/shell to do the command.  Then the messages I desire to log are
>> A) suppressed from by shell (which is BAD) but B) logged into
>> /var/log/messages (which is close enough to what I want)
>
> I don't understand what you are saying here. X-windows (of itself) should
> not process the commands differently. I suspect you have some fancy
> desktop
> program with options set that interfere.

It's KDE.

I'll be damned if I know why it's re-directing stderr to /var/log/messages
and hiding it from me in the shell.

I've tried poking around in the configuration of shells, but am presented
with a dialog so confusing, with so many options, I can't even understand
what all the choices mean. :-(

All I really want is a shell just like CTRL-ALT-F#.  Except it would be
nice if shift-ctrl-c and shift-ctrl-v did copy/paste.  I have that on one
X shell on a RedHat 9 box, and it's pretty nice.  All the other copy/paste
options are cumbersome, at best, and frequently just plain won't cross
applications boundaries.  (IE, I can copy/paste from shell to shell, but
not shell to browser.   Grrrrrr)

>> Alas, the real problem comes when my driver code sends the machine into
>> an
>> infinite loop, spewing out messages so fast I can't even read them, and
>> the only way out is to forcibly power-off the laptop by removing battery
>> and power cord.
>
> What driver code? Are you trying to write your own? for what device?

I am attempting to modify /usr/src/sys/dev/bfe/if_bfe.c to work with the
Broadcom 4401-B0 in my laptop.

The existing code is known to work for the Broadcom 4401-A1.

> An infinite loop while running or compiling the driver code?
>
> If when the driver code is installed and run  then you are fiddling will
> kernel mode, and if you mess up all bets are off.

bfe has been disabled in the kernel, and the kernel has been
re-built/installed.

cd /usr/src/sys/modules/bfe/
make; make install; kldload /boot/kernel/if_bfe.ko;

"ifconfig bfe0" works fine, and prints out my error messages, and I can
capture them.

"ifconfig bfe0 192.168.2.111" generates an infinite loop spewing messages
so fast I can't even *READ* them.

Nothing but total power loss stops this.

> You have tried Cntrl-Z and Cntrl-Alt-F2 ?

Ctrl-Z I have not tried.

cntrl-alt-f2, hit repeatedly, will eventually "catch" an interrupt (or
time-slice or whatever) and get me to tty2.  But I can't seem to do
anything useful there, as keyboard input is ignored.  I could, perhaps,
manage to press a key long enough to catch an interrupt/time-slice
there...

>> Upon re-boot, the additions I would expect in /var/log/messages (or the
>> bziped older logs) do not contain the messages I need to see.
>>
>> I have also tried:
>> ktrace xxx
>>
>> Again, for the case where the machine is not in an infinite loop, it
>> works
>> real nifty;  But when I'm forced to chop power, I get nothing.
>>
>> Is there something that will:
>> A) copy (or re-direct) all output somewhere, *AND*
>> B) force it to be synchronous and unbuffered and whatever else has to
>> occur to get the file to be saved?
>>
>> Any other suggestions for how to get this process to not lock up the
>> machine? control-C ineffective
>> CTRL-ALT-F2 followed by CTRL-ALT-DELETE can sometimes get me to another
>> tty, but that tty does not accept input
>
> Are you sure?

Yes, I'm quite sure.

I can switch back to ctrl-alt-f1, but cannot log in.

I can press ctrl-alt-f2 enough times, and eventually get switched to
tty2... which is dead.

> The CTRL-ALT-F2 hopefully gets you a character mode tty with a login
> prompt.
> But you'll need to login to proceed. CTRL-ALT-DELETE at this stage should
> cause a reboot.

ctrl-alt-delete does absolutely nothing, though perhaps if I held it down
long enough to catch a time-slice (or interrupt or whatever) it *MIGHT*
re-boot.  Probably not much better than cold power loss, though, right?

-- 
Like Music?
http://l-i-e.com/artists.htm



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1362.66.243.145.38.1097442074.squirrel>