Bug 1055089

Summary: agetty not started for /dev/hvc0 on latest F20 kernels
Product: Red Hat Enterprise Linux 7 Reporter: Cole Robinson <crobinso>
Component: kernelAssignee: Amit Shah <amit.shah>
Status: CLOSED WONTFIX QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: amit.shah, crobinso, hhuang, johannbg, lnykryn, msekleta, plautrba, systemd-maint-list, systemd-maint, vpavlin, zbyszek
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Known Issue
Doc Text:
The systemd service does not spawn a getty on the /dev/hvc0/ virtio console if the virtio console driver is not found before loading kernel modules at system startup. As a consequence, a TTY terminal does not start automatically after the system boot when the system is runnning as a KVM guest. To work around this problem, start a getty on /dev/hvc0/ after the system boot. The ISA serial device, which is used more commonly, works as expected.
Story Points: ---
Clone Of: 1039742 Environment:
Last Closed: 2014-06-10 12:21:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1039742    
Bug Blocks:    

Description Cole Robinson 2014-01-18 18:12:28 UTC
Seems to affect RHEL7 as well.


+++ This bug was initially created as a clone of Bug #1039742 +++



Recent F20 kernels now distribute virtio-console as a module:

https://bugzilla.redhat.com/show_bug.cgi?id=1019569

However this change has the side effect that a getty is no longer autostarted on /dev/hvc0, so 'virsh console' doesn't automagically work like it used to.

Not sure if this is something systemd can fix, or if we should consider reverting the kernel change. (there have also been reports that console=hvc0 on the kernel command line no longer works for showing boot output, so there's two regressions that stem from that kernel change)

--- Additional comment from Amit Shah on 2013-12-10 03:01:20 EST ---

(In reply to Cole Robinson from comment #0)
> 
> Recent F20 kernels now distribute virtio-console as a module:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1019569
> 
> However this change has the side effect that a getty is no longer
> autostarted on /dev/hvc0, so 'virsh console' doesn't automagically work like
> it used to.

It can be made to a udev trigger instead of just assuming a vc exists if /dev/hvc0 is present.

Comment 2 Lukáš Nykrýn 2014-01-31 12:46:20 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=1039742#c2 -> reassigning to kernel

Comment 3 Cole Robinson 2014-02-25 17:55:54 UTC
(In reply to Amit Shah from comment #4)
> It's just a console [#], but:
> 
> * it pulls in virtio* dependencies (including virtio-pci on x86, and
> virtio-mmio on arm, s390)
> * those virtio* drivers need to be compiled in even on non-guest
> configurations (which means all hosts)
> 
> If the complexity this might introduce in systemd/udev outweighs the
> additional RAM required for compiling in these drivers for all
> configurations, we would want to flip it back to compiled in.
> 
> 
> [#]: Also, it's not just a console: the virtio-console driver also drives
> the virtio-serial (i.e. a non-tty guest-host communication channel)
> functionality.

Who is going to make this distinction?

For end users the most compelling thing about virtio console is the agetty auto spawning. We lived with virtio console compiled in for this long, can we just revert the change until systemd is extended or it's decided to leave it compiled in for good?

Comment 4 Amit Shah 2014-02-27 07:00:02 UTC
(In reply to Cole Robinson from comment #3)
> (In reply to Amit Shah from comment #4)
> > It's just a console [#], but:
> > 
> > * it pulls in virtio* dependencies (including virtio-pci on x86, and
> > virtio-mmio on arm, s390)
> > * those virtio* drivers need to be compiled in even on non-guest
> > configurations (which means all hosts)
> > 
> > If the complexity this might introduce in systemd/udev outweighs the
> > additional RAM required for compiling in these drivers for all
> > configurations, we would want to flip it back to compiled in.
> > 
> > 
> > [#]: Also, it's not just a console: the virtio-console driver also drives
> > the virtio-serial (i.e. a non-tty guest-host communication channel)
> > functionality.
> 
> Who is going to make this distinction?
> 
> For end users the most compelling thing about virtio console is the agetty
> auto spawning. We lived with virtio console compiled in for this long, can
> we just revert the change until systemd is extended or it's decided to leave
> it compiled in for good?

RHEL6 didn't have it compiled in.

For end-users, the serial functionality of the virtio-console module is more useful (e.g. for the guest agent).

AFAIK x86 users don't use the console on virtio-console.  The standard ISA serial device is more used.

Comment 5 Cole Robinson 2014-02-27 14:18:21 UTC
> RHEL6 didn't have it compiled in.
> 

Fedora did, and RHEL7 did until recently, right?

Also, even if it was compiled in in RHEL6 it wasn't interesting because systemd wasn't there to autosetup the console on hvc0.

> For end-users, the serial functionality of the virtio-console module is more
> useful (e.g. for the guest agent).
> 

Right, if you consider it from the kernel level, I was thinking more of -device virtconsole, but maybe I'm confusing things

> AFAIK x86 users don't use the console on virtio-console.  The standard ISA
> serial device is more used.

virt-manager defaults to it in F20+ precisely because 'virsh console $vmname' just works with modern distros. Prior to that we've had fedora test day test cases for enabling -device virtconsole manually and verifying that 'virsh console' just works. Really outside that that automagic behavior there doesn't seem to be much benefit to -device virtconsole over traditional serial.