From 2a46ded22475e1531a3298ee89b52bd0cc2e0964 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Sun, 17 Apr 2016 18:05:24 +0200 Subject: target Ubuntu: Blacklist rtc-efi if not supported. Older ThunderX and possibly other UEFI-enabled targets do not support rtc-efi properly, so they end up filling dmesg with useless complaints about not being able to read system time. This adds a simple test for rtc-efi and blacklists it in target OS (Ubuntu) if not supported. While we're at it, rename a patch file I missed in a previous rebase and update TODO. Change-Id: Ia86b27ad50aca9b0fde50522f2bd15d329726f34 (cherry picked from commit 6bef7de313b6bb33f7a716d1d70ec4eb4aae9a3f) --- TODO.md | 1 - .../fuel-agent/0005-Add-esp-partition-flag.patch | 48 ++++++++++++++++++++ .../fuel-agent/0006-Add-esp-partition-flag.patch | 48 -------------------- ...Ubuntu-Blacklist-rtc-efi-if-not-supported.patch | 51 ++++++++++++++++++++++ 4 files changed, 99 insertions(+), 49 deletions(-) create mode 100644 patches/fuel-agent/0005-Add-esp-partition-flag.patch delete mode 100644 patches/fuel-agent/0006-Add-esp-partition-flag.patch create mode 100644 patches/fuel-library/0012-target-Ubuntu-Blacklist-rtc-efi-if-not-supported.patch diff --git a/TODO.md b/TODO.md index d5dcac5c..6c4b8a2b 100644 --- a/TODO.md +++ b/TODO.md @@ -4,7 +4,6 @@ List of missing features and things to do Nice to have, should be fixed before rel ========================================= * [fuel?] Disabling rx-vlan-filter from Fuel WebUI is not applied during netcheck -* [thunderx] rtc-efi disable (bootstrap handled, target image remaining) Cleanup tasks ========================================= diff --git a/patches/fuel-agent/0005-Add-esp-partition-flag.patch b/patches/fuel-agent/0005-Add-esp-partition-flag.patch new file mode 100644 index 00000000..a1990565 --- /dev/null +++ b/patches/fuel-agent/0005-Add-esp-partition-flag.patch @@ -0,0 +1,48 @@ +From: Alexandru Avadanii +Date: Tue, 8 Mar 2016 16:29:39 +0100 +Subject: [PATCH] Add partition flag. + +Parted flag (see [1]) will mark EFI system partition, allowing us +to properly format and mount it during do_partitioning deployment phase. + +[1] https://www.gnu.org/software/parted/manual/html_node/set.html +--- + fuel_agent/drivers/nailgun.py | 2 +- + fuel_agent/utils/partition.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py +index 3807ca7..bc532b4 100644 +--- a/fuel_agent/drivers/nailgun.py ++++ b/fuel_agent/drivers/nailgun.py +@@ -324,7 +324,7 @@ class Nailgun(BaseDataDriver): + # uefi partition (for future use) + LOG.debug('Adding UEFI partition on disk %s: size=200' % + disk['name']) +- parted.add_partition(size=200) ++ parted.add_partition(size=200, flags=['esp']) + + LOG.debug('Looping over all volumes on disk %s' % disk['name']) + for volume in disk['volumes']: +diff --git a/fuel_agent/utils/partition.py b/fuel_agent/utils/partition.py +index acdd0b3..86349d2 100644 +--- a/fuel_agent/utils/partition.py ++++ b/fuel_agent/utils/partition.py +@@ -93,7 +93,7 @@ def set_partition_flag(dev, num, flag, state='on'): + :param dev: A device file, e.g. /dev/sda. + :param num: Partition number + :param flag: Flag name. Must be one of 'bios_grub', 'legacy_boot', +- 'boot', 'raid', 'lvm' ++ 'boot', 'raid', 'lvm', 'esp' + :param state: Desiable flag state. 'on' or 'off'. Default is 'on'. + + :returns: None +@@ -103,7 +103,7 @@ def set_partition_flag(dev, num, flag, state='on'): + # parted supports more flags but we are interested in + # setting only this subset of them. + # not all of these flags are compatible with one another. +- if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm'): ++ if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm', 'esp'): + raise errors.WrongPartitionSchemeError( + 'Unsupported partition flag: %s' % flag) + if state not in ('on', 'off'): diff --git a/patches/fuel-agent/0006-Add-esp-partition-flag.patch b/patches/fuel-agent/0006-Add-esp-partition-flag.patch deleted file mode 100644 index a1990565..00000000 --- a/patches/fuel-agent/0006-Add-esp-partition-flag.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: Alexandru Avadanii -Date: Tue, 8 Mar 2016 16:29:39 +0100 -Subject: [PATCH] Add partition flag. - -Parted flag (see [1]) will mark EFI system partition, allowing us -to properly format and mount it during do_partitioning deployment phase. - -[1] https://www.gnu.org/software/parted/manual/html_node/set.html ---- - fuel_agent/drivers/nailgun.py | 2 +- - fuel_agent/utils/partition.py | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py -index 3807ca7..bc532b4 100644 ---- a/fuel_agent/drivers/nailgun.py -+++ b/fuel_agent/drivers/nailgun.py -@@ -324,7 +324,7 @@ class Nailgun(BaseDataDriver): - # uefi partition (for future use) - LOG.debug('Adding UEFI partition on disk %s: size=200' % - disk['name']) -- parted.add_partition(size=200) -+ parted.add_partition(size=200, flags=['esp']) - - LOG.debug('Looping over all volumes on disk %s' % disk['name']) - for volume in disk['volumes']: -diff --git a/fuel_agent/utils/partition.py b/fuel_agent/utils/partition.py -index acdd0b3..86349d2 100644 ---- a/fuel_agent/utils/partition.py -+++ b/fuel_agent/utils/partition.py -@@ -93,7 +93,7 @@ def set_partition_flag(dev, num, flag, state='on'): - :param dev: A device file, e.g. /dev/sda. - :param num: Partition number - :param flag: Flag name. Must be one of 'bios_grub', 'legacy_boot', -- 'boot', 'raid', 'lvm' -+ 'boot', 'raid', 'lvm', 'esp' - :param state: Desiable flag state. 'on' or 'off'. Default is 'on'. - - :returns: None -@@ -103,7 +103,7 @@ def set_partition_flag(dev, num, flag, state='on'): - # parted supports more flags but we are interested in - # setting only this subset of them. - # not all of these flags are compatible with one another. -- if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm'): -+ if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm', 'esp'): - raise errors.WrongPartitionSchemeError( - 'Unsupported partition flag: %s' % flag) - if state not in ('on', 'off'): diff --git a/patches/fuel-library/0012-target-Ubuntu-Blacklist-rtc-efi-if-not-supported.patch b/patches/fuel-library/0012-target-Ubuntu-Blacklist-rtc-efi-if-not-supported.patch new file mode 100644 index 00000000..cfc1f6cb --- /dev/null +++ b/patches/fuel-library/0012-target-Ubuntu-Blacklist-rtc-efi-if-not-supported.patch @@ -0,0 +1,51 @@ +From: Alexandru Avadanii +Date: Sun, 17 Apr 2016 17:53:46 +0200 +Subject: [PATCH] target Ubuntu: Blacklist rtc-efi if not supported. + +Older ThunderX and possibly other UEFI-enabled targets do not support +rtc-efi properly, so they end up filling dmesg with useless +complaints about not being able to read system time. + +Target OS (Ubuntu) deployment already has a snippet that blacklists +i2c_piix4 in certain scenarios, so provide a similar test for rtc_efi. + +update-initramfs is already invoked from i2c_piix4 snippet, so ommit +explicitly calling it in rtc_efi fragment. +--- + deployment/puppet/cobbler/manifests/snippets.pp | 1 + + deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb | 1 + + .../puppet/cobbler/templates/snippets/ubuntu_blacklist_rtc_efi.erb | 1 + + 3 files changed, 3 insertions(+) + create mode 100644 deployment/puppet/cobbler/templates/snippets/ubuntu_blacklist_rtc_efi.erb + +diff --git a/deployment/puppet/cobbler/manifests/snippets.pp b/deployment/puppet/cobbler/manifests/snippets.pp +index 46c76d0..5ab9a17 100644 +--- a/deployment/puppet/cobbler/manifests/snippets.pp ++++ b/deployment/puppet/cobbler/manifests/snippets.pp +@@ -58,6 +58,7 @@ class cobbler::snippets { + cobbler_snippet {"centos_static_net":} + cobbler_snippet {"ofed_install_with_sriov":} + cobbler_snippet {"ubuntu_authorized_keys":} ++ cobbler_snippet {"ubuntu_blacklist_rtc_efi":} + cobbler_snippet {"ubuntu_blacklist_i2c_piix4":} + cobbler_snippet {"ubuntu_disable_pxe":} + cobbler_snippet {"ubuntu_puppet_config":} +diff --git a/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb b/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb +index 65c6c69..8e17a0e 100644 +--- a/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb ++++ b/deployment/puppet/cobbler/templates/preseed/ubuntu-1404.preseed.erb +@@ -177,6 +177,7 @@ echo target > /target/etc/nailgun_systemtype && \ + $SNIPPET('ubuntu_authorized_keys') + sed -i -e "/^\s*GSSAPICleanupCredentials yes/d" -e "/^\s*GSSAPIAuthentication yes/d" -e "s/.*PasswordAuthentication\ .*/PasswordAuthentication\ no/g" -e "/UseDNS/d" /target/etc/ssh/sshd_config && \ + echo "UseDNS no" >> /target/etc/ssh/sshd_config && \ ++$SNIPPET('ubuntu_blacklist_rtc_efi') + $SNIPPET('ubuntu_blacklist_i2c_piix4') + $SNIPPET('ubuntu_static_net') + $SNIPPET('ofed_install_with_sriov') +diff --git a/deployment/puppet/cobbler/templates/snippets/ubuntu_blacklist_rtc_efi.erb b/deployment/puppet/cobbler/templates/snippets/ubuntu_blacklist_rtc_efi.erb +new file mode 100644 +index 0000000..902f142 +--- /dev/null ++++ b/deployment/puppet/cobbler/templates/snippets/ubuntu_blacklist_rtc_efi.erb +@@ -0,0 +1 @@ ++( /bin/cat /sys/class/rtc/rtc0/time > /dev/null 2>&1 || echo "blacklist rtc_efi" >> /target/etc/modprobe.d/blacklist-rtc_efi.conf ) && \ -- cgit 1.2.3-korg