kern/147082: [uart] Serial ports unusable

Mayo Jordanov mayo at oyam.ca
Thu May 27 05:36:19 UTC 2010


On 2010-05-26, at 21:46 , Garrett Cooper wrote:

> On Wed, May 26, 2010 at 8:01 PM, Mayo Jordanov <mayo at oyam.ca> wrote:
>> 
>> On 2010-05-26, at 19:34 , Garrett Cooper wrote:
>> 
>>> On Wed, May 26, 2010 at 6:42 PM, Mayo Jordanov <mayo at oyam.ca> wrote:
>>>> 
>>>> On 2010-05-26, at 12:42 , remko at FreeBSD.org wrote:
>>>> 
>>>>> Synopsis: [uart] Serial ports unusable
>>>>> 
>>>>> State-Changed-From-To: open->feedback
>>>>> State-Changed-By: remko
>>>>> State-Changed-When: Wed May 26 19:42:36 UTC 2010
>>>>> State-Changed-Why:
>>>>> I send my working serial line to Mayo, set status to feedback
>>>>> 
>>>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=147082
>>>> 
>>>> I'm gona re-reply here, to preserve the history.
>>>> 
>>>>>>> How-To-Repeat:
>>>>>> 1) Edit /etc/ttys, do the ttyu0 line reads:
>>>>>> ttyu0        "/usr/libexec/getty std.9600"   vt100   on secure
>>>>>> 2) kill -HUP 1
>>>>>> 3) Try connecting to it with terminal application
>>>>> 
>>>>> 
>>>>> /etc/ttys
>>>>> console    "/usr/libexec/getty Pc"         cons25  on  secure
>>>>> 
>>>>> /boot/loader.conf
>>>>> console="comconsole"
>>>>> 
>>>>> That enabled serial access to my Soekris device running on FreeBSD8(PFsense), it also works for several remote machines I have.
>>>>> 
>>>>> Can you confirm that you have these settings in loader.conf and rebooted?!
>>>>> 
>>>>> --
>>>>> /"\   Best regards,                        | remko at FreeBSD.org
>>>>> \ /   Remko Lodder                      | remko at EFnet
>>>>> X    http://www.evilcoder.org/    |
>>>>> / \   ASCII Ribbon Campaign    | Against HTML Mail and News
>>>> 
>>>> test# cat /boot/loader.conf
>>>> console="comconsole"
>>>> 
>>>> looking at the /etc/ttys entry you pasted above, will that enable serial console? That looks like a regular console on the machine itself.
>>>> 
>>>> I have rebooted numerous times, and I do get the kernel messages during boot on serial up to the point where getty starts (presumably... I see portion of the messages as nics are getting setup and then nothing).
>>>> 
>>>> I have some machines where serial works fine, but I have some machines where it doesn't and behaves the same way as described above. If necessary, I can provide access to a troublesome machine.
>>> 
>>>    All of this is described in more grusome detail at
>>> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/serialconsole-setup.html
>> 
>> Unfortunately, the handbook does not help in this case. If there is a solution to the problem I describe in the PR description in the handbook, please be so kind and point it out to me, because I must be blind.
>> 
>> Also, why do the gettys get stuck and I have to kill them manually (or reboot because they can't be killed) to reflect changes to /etc/ttys instead of simple `kill -HUP 1`? I've never ever had to do it manually in previous FreeBSD installations/versions. Why are they stuck in ttydtd and not in ttyin as they are supposed to be?
> 
>    The comconsole bit is in the section of /etc/ttys in the
> beforementioned page.
>    Details about debugging your connection is available here:
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/term.html .
> What's the baud rate for your serial connection?
>    The part about kill -HUP 1 not working sounds like a possible
> syscons/tty bug. Can you try killing init, then provide us with the
> wait state in ps/top for the relevant getty instance?
> Thanks!
> -Garrett

Sorry, I wasn't clear in my problem description above. I just said I modified loader.conf, intending that I added console="comconsole".

I'm using 9600 baud. I've tried both 3wire and std connections, I don't get prompt with either, I'm sticking to 3wire for the time being.

After boot -- after I see interface configuration, daemons start, etc, right when I expect the "login:" prompt -- I get no login prompt and it takes about 3 minutes for it to show up. (This delay does not exist when I disable ttyd0.) SSHing in during those 3 minutes of delay, there are no gettys running. Once they do start, the states are:
    0  1220     1   0  45  0  6892  1300 ttyin  Is+   u0    0:00.01 /usr/libexec/getty 3wire.9600 ttyu0

(which seems right, but the terminal still misbehaves as described before)
Changing the ttyu0 line in /etc/ttys and `kill -HUP 1`:
    0  1252     1   0  44  0  6892  1300 ttyout SEs+  u0-   0:00.00 /usr/libexec/getty 3wire.9600 ttyu0

The reason I was mentioning uart is that I can't even get communication going between two ports (kermit to kermit, cu to cu, etc).

It is also worth noting, messages on console generated by kernel (plugging usb devices in/out, for eg.) _do_ make it over the serial console immediately as on normal console, but nothing else does work.

Thanks,
mayo



More information about the freebsd-bugs mailing list