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