[BusyBox] WORKS! - but still and issue -- 1.00-pre2/pre3 - shell/ash.c Internal compilererror

Erik Andersen andersen at codepoet.org
Tue Sep 16 06:44:33 UTC 2003


On Tue Sep 16, 2003 at 03:56:32PM +1000, Gad wrote:
> Erik Andersen wrote:
> >On Tue Sep 16, 2003 at 02:58:12PM +1000, Gad wrote:
> >
> >>David Douglas wrote:
> >>
> >>>Ok,		
> >>>
> >>>So now it builds, but I'm having another problem.  The shell does not
> >>>seem to be responding properly when I use this busybox.  With the 0.60.5
> >>>busybox the shell works OK and I can access the ramdisk.  However, with
> >>>the pre3 busybox, nothing echo's back when I type a command...  It just
> >>>acts like nothing is there.
> >>>
> >>
> >>Could your problem be related to (or the same as) mine?
> >>After booting 1.00-pre3, I get "can't access tty: job control turned 
> >>off" and a few other things and can't type anything:
> >>
> >>http://www.busybox.net/lists/busybox/2003-September/009293.html
> >
> >
> >Quoting the uClibc FAQ:
> >
> >    Why do I keep getting "sh: can't access tty; job control
> >    turned off" errors?  Why doesn't Control-C work within my
> >    shell?
> >
> >    This isn't really a uClibc question, but I'll answer it here
> >    anyways.  Job control will be turned off since your shell can
> >    not obtain a controlling terminal.  This typically happens
> >    when you run your shell on /dev/console.  The kernel will not
> >    provide a controlling terminal on the /dev/console device.
> >    Your should run your shell on a normal tty such as tty1 or
> >    ttyS0 and everything will work perfectly.  If you REALLY want
> >    your shell to run on /dev/console, then you can hack your
> >    kernel (if you are into that sortof thing) by changing
> >    drivers/char/tty_io.c to change the lines where it sets
> >    "noctty = 1;" to instead set it to "0".  I recommend you
> >    instead run your shell on a real console...
> >
> > -Erik
> 
> I've read the FAQ and searched the list, but nothing seems to apply to 
> this case.

In one of your earlier emails you said your /etc/inittab is this:

    ::sysinit:/etc/init.d/rcS
    ::respawn:-/bin/sh
    tty2::askfirst:-/bin/sh
    ::ctrlaltdel:/bin/umount -a -r

In the init section in busybox/docs/BusyBox.txt, it mentions that
if the <id> "field is left blank, the controlling tty is set to
the console."  You have left the <id> field blank, therefore you
are running the shell on /dev/console, which means the FAQ stuff
I quoted applies exactly to your case.

> This is a self contained boot floppy, to run on a normal PC. It worked 
> _fine_ with 0.6.50/uClibc 0.9.20 (following the bootfloppy howto in the 
> BB documentation).
> 
> It only breaks when I switch to BB 1.00-preX (with either uClibc 0.9.20 
> or 0.9.21).
> 
> I haven't changed anything else - the same 2.2.25 kernel (all it's made 
> of is kernel, modules and BB binaries and libraries).

With busybox 0.60.5, init would go to absurd pains to force a
controlling terminal.  This broke things and the behavior was
removed.

Why not run your first shell on tty1?


 -Erik

--
Erik B. Andersen             http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--



More information about the busybox mailing list