From 05bba4cbbdacd83781cb7ccf7aa454be5b117335 Mon Sep 17 00:00:00 2001 From: John Chittum Date: Thu, 27 Aug 2020 15:40:49 -0500 Subject: [PATCH] ubuntu-cpc:Vagrant Serial to Null (LP: #1874453) Original fix proposed by Stanislav German-Evtushenko (giner) CPC Ubuntu cloud images default to enabling a serial console connection via the kernel commandline option `console=ttyS0`. Many clouds support the serial connection, and utilize it for debugging purposes. Virtualbox supports the serial connection as well. In Bionic and earlier images, Vagrant boxes created a serial log file in the directory of the Vagrantfile by default. However this is not standard behaviour for Vagrant images, and so it was removed in Eoan onwards. Starting in Eoan, there were reports of image booting slowdown (1874453 is a single example). After testing, it was determined that the serial connection starting, without a device attached, was the cause of the slow down. However, we did not want to revert to the old functionality of creating a file. Much thanks to for providing the Ruby syntax for sending to File::NULL. This option will not create a local file, however, the default Vagrantfile configuration is overwritable via a users Vagrantfile. The original syntax for creating a file local to the users Vagrantfile has been included as an example. --- live-build/ubuntu-cpc/hooks.d/base/vagrant.binary | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/live-build/ubuntu-cpc/hooks.d/base/vagrant.binary b/live-build/ubuntu-cpc/hooks.d/base/vagrant.binary index f9b21d38..504c667e 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/vagrant.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/vagrant.binary @@ -153,9 +153,17 @@ Vagrant.configure("2") do |config| config.vm.base_mac = "${macaddr}" config.vm.provider "virtualbox" do |vb| - vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ] -# Creating a console log file is not an expected behavior for vagrant boxes. LP #1777827 -# vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "${prefix}-console.log") ] + vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ] + # Create a NULL serial port to skip console logging by default + vb.customize [ "modifyvm", :id, "--uartmode1", "file", File::NULL ] + # If console logging is desired, uncomment this line and remove prior + # vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "${prefix}-console.log") ] + # Ubuntu cloud images, by default, enable console=ttyS0. This enables serial consoles to + # connect to the images. With the change related to LP #1777827, removing a serial + # file logger, Vagrant image boot times increased and now run greater than 5 minutes + # Creating a console log file is not an expected default behavior for vagrant boxes. + # As a workaround, we create a console connection to File:NULL. LP #1874453 + # This is overrideable in user files to write to a local file end end EOF