[CentOS] CentOS7 - Serial Console and Flow Control

Thu Oct 22 19:28:38 UTC 2015
Mike - st257 <silvertip257 at gmail.com>

Huge thanks to those who chimed in.
An issue of PEBKAC on my part (but I was soooo close!).

Once I got serial over LAN functioning I took the time pre-production to
figure out exactly what options are necessary. Here's a recap of what I
discovered.


On Thu, Oct 15, 2015 at 3:54 PM, Lamar Owen <lowen at pari.edu> wrote:

> On 10/15/2015 03:05 PM, Mike - st257 wrote:
>
>> Would anyone be so kind as to share their experience?
>> What has worked for your BMC/SoL configurations?
>>
> I have a C7 server with a physical RS-232 console, but the config should
> be similar.  I did not have to generate


I'm using COM2 (ttyS1) and leaving the physical COM1 (ttyS0) alone so it
could be used with null modem or Cisco console cables. Slight difference,
nothing that makes them wildly different.


> a systemd service for this; systemd saw the console line and automatically
> started the getty without me having to generate a .service file (as far as
> I recall all I had to do was generate the proper /etc/default/grub, and
> then run 'grub2-mkconfig -o /boot/grub2/grub.cfg' and it Just Worked).
>
> Now, I have the system set for console on both the VGA and on ttyS0, and I
> am not using flow-control.  Here's what I have that works (again with a
> physical ttyS0):
>
> [root at backup670 ~]# cat /etc/default/grub
> GRUB_TIMEOUT=5
> GRUB_DEFAULT=saved
> GRUB_DISABLE_SUBMENU=true
> GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --word=8 --parity=no
> --stop=1"
>

I didn't need GRUB_SERIAL_COMMAND, but...
I have "Redirection After Boot" enabled in my BIOS for the serial console,
which is how I'm still able to see the GRUB prompt. And likely why I can
omit the GRUB_SERIAL_COMMAND line.

I also read about but did not need GRUB_TERMINAL=serial


> GRUB_TERMINAL_OUTPUT="console serial"
>

I got away with keeping the default of:
GRUB_TERMINAL_OUTPUT="console"


> GRUB_CMDLINE_LINUX="rd.md.uuid=long-uuid-string crashkernel=auto rd.lvm.lv=vg/swap
> rd.lvm.lv=vg/root rd.md.uuid=another-long-uuid console=tty0
> console=ttyS0,9600 rd_NO_PLYMOUTH"
>

I found things functioned fine _with_ "quiet" and without rd_NO_PLYMOUTH
*hangs head* My PEBKAC was on the serial device ... I had /dev/ttyS1
instead of just _ttyS1_ ... my bad.

GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-1ad0ae71-75fa-46cf-aa5b-70e63c51a485
rd.lvm.lv=storage0/rootfs rd.lvm.lv=storage0/swap crashkernel=auto quiet
console=tty0 console=ttyS1,57600n8r"


> GRUB_DISABLE_RECOVERY="true"
>
>
> Also see: http://0pointer.de/blog/projects/serial-console.html
>
> There should be no need to modify any .service files; simply editing
> /etc/default/grub and regenerating grub2's config should be enough; it was
> in my case (I verified by looking through root's .bash_history and finding
> the lines around editing /etc/default/grub and not finding any edits of any
> .service files....)
>

You are absolutely right, no need to modify service files (just like was
the case with Upstart in EL6).


~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-1ad0ae71-75fa-46cf-aa5b-70e63c51a485
rd.lvm.lv=storage0/rootfs rd.lvm.lv=storage0/swap crashkernel=auto quiet
console=tty0 console=ttyS1,57600n8r"
GRUB_DISABLE_RECOVERY="true"


-- 
---~~.~~---
Mike
//  SilverTip257  //