[BusyBox] re: CTRL-C over serial console

gopi at india.tejasnetworks.com gopi at india.tejasnetworks.com
Thu Jun 20 02:13:03 UTC 2002


I am attatching the mail that was exchanged on this subject in the ppc mailing list.

I tried the option (1) and (3) and it works.
(1) is ithe easiest thing to do.  You have to make the change in /etc/inittab

thanx
gopi

---------- Forwarded message ----------
Date: Thu, 31 Jan 2002 13:34:34 -0800
From: Scott Anderson <scott_anderson at mvista.com>
To: gopi at india.tejasnetworks.com
Cc: linuxppc-dev at lists.linuxppc.org
Subject: Re: why is tty->pgrp set to -1 for console?

gopi at india.tejasnetworks.com wrote:
>   What is the correct procedure to follow to get around this problem
> and get ctrl-c working on console?

It looks like everyone is taking a swing at this one, so I think I'll
join in.  First off, the easiest way I've found to track down why
ctrl-c doesn't work is to just run "ps -j".  For ctrl-c to work, you
need a controlling terminal (the TTY column) and a process group.  If
you have a '?' in the TTY column, ctrl-c won't work.  In the past I
have seen this happen because of this code in drivers/char/tty_io.c:
        if (device == SYSCONS_DEV) {
                struct console *c = console_drivers;
                while(c && !c->device)
                        c = c->next;
                if (!c)
                        return -ENODEV;
                device = c->device(c);
                filp->f_flags |= O_NONBLOCK; /* Don't let /dev/console block */
                noctty = 1;
        }
Note that O_NOCTTY (no controlling terminal) is forced on whenever
/dev/console is opened (noctty = 1).  Possible workarounds:
  1) Run getty on something other than /dev/console.  For example,
     if you console is on the first serial port, run getty on /dev/ttyS0.
     I believe this is the "correct" answer.
  2) You could also change getty to do a TIOCSCTTY ioctl explicitly after
     it has opened the terminal.
  3) You could remove the forcing of noctty on from tty_io.c

    Scott Anderson
    scott_anderson at mvista.com   MontaVista Software Inc.
    (408)328-9214               1237 East Arques Ave.
    http://www.mvista.com       Sunnyvale, CA  94085


> From gopi at india.tejasnetworks.com Fri Feb  1 11:35:42 2002
> Date: Thu, 31 Jan 2002 20:58:58 +0000 (GMT)
> From: gopi at india.tejasnetworks.com
> To: linuxppc-embedded at lists.linuxppc.org
> Cc: linuxppc-dev at lists.linuxppc.org
> Subject: why is tty->pgrp set to -1 for console?
> 
> hi..
> 
>   We had a problem that ctrl-c was not working on the console.  I
> figured out that, ctrl-c was getting recognized as the 'intr' signal,
> but the function isig (in drivers/char/n_tty.c) sends a signal only if
> the tty->pgrp > 0.
> 
>   I have put a print stmt in this function and checked that the value
>   is 'tty->pgrp = ffffffff' (which is -1).
> 
>   What is the correct procedure to follow to get around this problem
> and get ctrl-c working on console?
> 
> thanx
> gopi
> 
> following is the output of stty -a on the console
> ---------------------------------------------------------------------
> speed 9600 baud; rows 0; columns 0; line = 0;                                   
> intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>;           
> eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase =
> ^W;      
> lnext = ^V; flush = ^U; min = 1; time = 0;                                      
> -parenb -parodd cs8 hupcl -cstopb -cread clocal -crtscts                        
> -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff   
> -iuclc ixany -imaxbel                                                           
> opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 
> isig icanon -iexten echo -echoe -echok -echonl -noflsh -xcase -tostop echoprt   
> echoctl echoke
> ---------------------------------------------------------------------
> 
> 





On Thu, 20 Jun 2002, Matthias Fuchs wrote:

> Hi Doug,
> 
> the problem also came up on my PPC system. I am not using uclibc!
> Also CTRL-C is working over telnet connections.
> 
> The patch that was send to the list some time ago is very huge. And I counld'n apply it
> to recent CVS version (0.61pre). It did not only fix the CTRL-C problem. But I didn't care about the
> other enhancements it brought.
> 
> Matthias
> 
> Doug Edwards wrote:
> > 
> > 
> > |Matthias Fuchs  matthias.fuchs at esd-electronics.com
> > |/Wed Jun 12 03:01:03 2002/
> > |
> > |Hi,
> > |
> > |in april I mentioned a problem with CTRL-C over a serial console (it 
> > did not |work).
> > |Ilquiz posted a huge patch to solve this problem.
> > |
> > |My quiestion: Is this problem already fixed in the CVS ?
> > |
> > |Matthias
> > 
> > 
> > I'm encountering this problem as well.  I'm using busybox 0.60.3 and a 
> > uclibc snapshot dated June 6 on ppc running the 2.4.12 kernel (modified 
> > for our hardware).  I can use CTRL-C when connected through telnet, but 
> > not through the serial console.
> > 
> > I was not on the discussion list when the patch was sent, so I don't 
> > know what the fix is.  I do need to fix this problem.
> > 
> > By the way, busybox is a great piece of software.  It's working very 
> > well for my embedded project.
> > 
> > Thanks,
> > 
> > Doug
> > 
> > -- 
> > _____________________
> > 
> > Doug Edwards
> > 
> > Synergy Microsystems
> > 9605 Scranton Rd., Suite 700
> > San Diego, CA  92121-1773
> > dedwards at synergymicro.com
> > (858)452-0020
> > http://www.synergymicro.com
> > _____________________
> 
> 
> 




More information about the busybox mailing list