Browse code

Merge "Log early boot of Ironic VMs to serial with sgabios" into stable/juno

Jenkins authored on 2014/12/05 09:11:12
Showing 5 changed files
... ...
@@ -12,6 +12,7 @@ python-libvirt
12 12
 qemu
13 13
 qemu-kvm
14 14
 qemu-utils
15
+sgabios
15 16
 syslinux
16 17
 tftpd-hpa
17 18
 xinetd
... ...
@@ -9,6 +9,7 @@ net-tools
9 9
 openssh-clients
10 10
 openvswitch
11 11
 python-libguestfs
12
+sgabios
12 13
 syslinux
13 14
 tftp-server
14 15
 xinetd
... ...
@@ -56,6 +56,13 @@ function install_nova_hypervisor {
56 56
         die $LINENO "Neutron should be enabled for usage of the Ironic Nova driver."
57 57
     fi
58 58
     install_libvirt
59
+    if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] && is_ubuntu; then
60
+        # Ubuntu packaging+apparmor issue prevents libvirt from loading
61
+        # the ROM from /usr/share/misc.  Workaround by installing it directly
62
+        # to a directory that it can read from. (LP: #1393548)
63
+        sudo rm -rf /usr/share/qemu/sgabios.bin
64
+        sudo cp /usr/share/misc/sgabios.bin /usr/share/qemu/sgabios.bin
65
+    fi
59 66
 }
60 67
 
61 68
 # start_nova_hypervisor - Start any required external services
... ...
@@ -78,8 +78,10 @@ def main():
78 78
             params['emulator'] = "/usr/bin/qemu-kvm"
79 79
 
80 80
     if args.console_log:
81
+        params['bios_serial'] = "<bios useserial='yes'/>"
81 82
         params['console_log'] = CONSOLE_LOG % {'console_log': args.console_log}
82 83
     else:
84
+        params['bios_serial'] = ''
83 85
         params['console_log'] = ''
84 86
     libvirt_template = source_template % params
85 87
     conn = libvirt.open("qemu:///system")
... ...
@@ -6,6 +6,7 @@
6 6
     <type arch='%(arch)s' machine='pc-1.0'>hvm</type>
7 7
     <boot dev='%(bootdev)s'/>
8 8
     <bootmenu enable='no'/>
9
+    %(bios_serial)s
9 10
   </os>
10 11
   <features>
11 12
     <acpi/>