Possible Bug, or Possibly don't know what I'm doing.
Andy Kennedy
akennedy at techmoninc.com
Fri Feb 9 19:45:33 UTC 2007
Andy Kennedy wrote:
> To restate my problem (in case some kind developer decides to help me):
>
> When I have the kernel command line parameter "console=ttyS0,115200n8"
> I get nice neat output on the serial line up until the init runs. As
> soon as init runs, I get missing chars. So, I replace the BusyBox
> init with minit, compiled from source and using the uCLibC gcc that I
> let buildroot make for me. Same problem. For some reason, when the
> system initializes -- after the kernel has reported all of its output,
> my serial console goes splat. When I initialize the console using
> BusyBox (/sbin/getty -L ttyS0 115200 vt100) I get "X n", where X is
> {'i', 'g', 's', 'o', 'l', 'm'}, but I cannot find a pattern in it.
> One of these letters will appear each time I send enter.
>
> I have tried everything I can think of. There is no script setting
> any of the line speeds -- in fact, I have even attempted to remove the
> scripts and still get the same thing. Removing the
> console=ttyS0,115200n8 (or attempting any variant of it) has no
> affect, except without the console= I get no good output on the line.
> The only thing I haven't attempted yet is to replace the getty with an
> equivalent to see if that makes a difference. I have also tried 9600,
> 38400, 19200, with E8, O8, 2 stop bits, and 1 stop bit in just about
> every combination, but I still cannot get a serial console.
>
> Can anyone offer a suggestion as to how I might fix this -- or some
> other place to start?
>
> Thanks in advance for any help you can offer,
> Andy
Okay, now I'm really confused. Here is what I have done so far:
Made my laptop boot with a console on ttyS0 and put a login shell on it
(to verify that I can do it -- I was beginning to think maybe I needed
to remove Linux from my computer and get rid of all of it being to
stupid to own a computer, much less program an embedded system) and I
had no problems. So, I took my syslinux disk and booted from it (the
SAME DISK THAT I'M USING TO BOOT THE EMBEDDED SYSTEM). Not a problem,
everything comes up as you would expect.
Given that this test worked there is one of about three possibilities:
1) Cable issue. Tested my serial cable on another embedded system (an
Arcom Viper), checks out. Replaced the break-out cable from the
embedded system -- failed. Tried a known good cable -- failed. Tested
a different VersaLogic board -- failed. Now, here is the part that
really yanked me around:
The last time I booted the machine I didn't have the keyboard connected
to the break-out cable. The boot went as it normally does except the
keyboard driver never reported a keyboard -- duh, it wasn't plugged in.
BusyBox init takes over the console and prints all kind of whack. I
plug in the keyboard and the keyboard driver prints a perfect string
onto the serial console.
I've looked through the code to see what type of initialization init is
doing to the console, but it doesn't look like it is re-initializing the
sucker at all. The only thing that I can think is that BusyBox is doing
something that Linux doesn't do to interact with the ttyS0 so I'm not
getting what I expect.
Perhaps this will click something in your head and you can help me fix this.
Thanks again for any help you can provide,
Andy Kennedy
More information about the busybox
mailing list