automating bios settings for HP servers!

3,148 views
Skip to first unread message

Corey Osman

unread,
Aug 16, 2011, 2:04:53 PM8/16/11
to forema...@googlegroups.com
Hi,

I was at the PDXdevops meeting last night and I was asked a question on whether or not I had been able to automate bios settings since I had previously given a speech on automating HP ilo settings.  Turns out I didn't know the answer but felt very optimistic this level of automation could be done.  After about an hour of research I found a solution.


HP Smart start script toolkit for linux and windows.

In this toolkit there is a tool called conrep which gets/sets the bios settings.  At first I was afraid the settings were saved in a binary file format but to my surprise its all based in XML.  With this level of abstraction it would be very simple to query bios settings and additionally automate the deployment of settings from within puppet or foreman (smart proxy).  One of the first tasks that come to mind are PXE boot order setting.  Below are the steps to get and set the bios.  Further below is the output from my HP DL380 G4 bios config as outputted by conrep.  Furthermore, there is also a tool called bootorder which changes just the boot order for HP systems.  If your using non-HP hardware your out of luck but I am sure that IBM, Dell and others have similar deployment toolkits that can set bios settings from a script.





ftp://ftp.hp.com/pub/c-products/servers/management/smartstart/LinuxUserGuide(415597-401).pdf

Page 9, step 8


  1. Capture the system BIOS configuration using the CONREP utility:
    cd /mnt/toolkit_share/utilities
    ./conrep -s -f/mnt/toolkit_share/data_files/conrep.dat



  1. Apply the system BIOS configuration using the CONREP utility:
    cd /mnt/toolkit_share/utilities
    ./conrep -l -f/mnt/toolkit_share/data_files/conrep.dat




Toolkit download for linux:





<?xml version="1.0" encoding="UTF-8"?>
<!--generated by conrep version 3.30-->
<Conrep version="3.30" originating_platform="ProLiant DL380 G4" originating_family="P51" originating_romdate="10/10/2005" originating_processor_manufacturer="Intel">
  <Section name="IPL_Order" helptext="Current Initial ProgramLoad device boot order.">
    <Index0>00 </Index0>
    <Index1>01 </Index1>
    <Index2>03 </Index2>
    <Index3>02 </Index3>
    <Index4>04 </Index4>
    <Index5>ff </Index5>
    <Index6>ff </Index6>
    <Index7>ff </Index7>
  </Section>
  <Section name="PCI_Devices" helptext="Lists of PCI devices and their interrupts - not displayed if default values are set.">EMPTY_DELETE</Section>
  <Section name="Controller_Order" helptext="Lists the current boot controller ordering.">
    <Id0>0e 11 40 91 </Id0>
    <Slot0>00 </Slot0>
    <BusDev0>04 18 </BusDev0>
    <Rest0>41 </Rest0>
  </Section>
  <Section name="Language" helptext="Defines current language identifier">ENGUSAus  </Section>
  <Section name="System_WOL" helptext="System Wake On Lan Capabilities.">Enabled</Section>
  <Section name="System_APIC" helptext="System APIC Settings(MPS Table Mode).">Full Table</Section>
  <Section name="System_Mouse" helptext="Enable or Disable the onboard mouse port.">Enabled</Section>
  <Section name="System_CPU_Serial_Number" helptext="Enables or disabled CPU serial numbers on systems that support it.">Disabled</Section>
  <Section name="System_COMA" helptext="Settings for UART 1 on systems that support it.">COM1</Section>
  <Section name="System_COMA_IRQ" helptext="Settings for UART 1 on systems that support it.">IRQ4</Section>
  <Section name="System_COMB" helptext="Settings for UART 2 on systems that support it.">Disabled</Section>
  <Section name="System_COMB_IRQ" helptext="Settings for UART 2 on systems that support it.">Undefined</Section>
  <Section name="System_Virtual_Serial_Port" helptext="Virtual Serial Port Settings for systems that support it.">COM2</Section>
  <Section name="System_Virtual_Serial_Port_IRQ" helptext="Virtual Serial Port IRQ Settings for systems that support it.">IRQ3</Section>
  <Section name="System_LPT" helptext="System parallel port settings for systems that support it.">Disabled</Section>
  <Section name="System_LPT_IRQ" helptext="System parallel port settings for systems that support it.">Undefined</Section>
  <Section name="System_LPT_Mode" helptext="System parallel port settings for systems that support it.">SPP</Section>
  <Section name="System_USB_Control" helptext="Systemwide USB settings.">Enabled</Section>
  <Section name="System_USB_EHCI_Controller" helptext="Enables or disabled EHCI mode(USB 2.0) of the system USB controller.">Enabled</Section>
  <Section name="Diskette_Write_Control" helptext="Toggles write control of integrated floppy.">Writes_Enabled</Section>
  <Section name="POST_F1_Prompt" helptext="Controls display of the F1 POST prompt.">Disabled</Section>
  <Section name="Hyperthreading" helptext="Toggles hyperthreading on systems that support it.  This setting is supported on G5 and earlier systems.  For newer systems, use the Intel_Hyperthreading setting.">Enabled</Section>
  <Section name="NMI_Debug_Button" helptext="Allows generating NMI(non-maskable interrupt) via NMI button/jumper for hardware debugging.">Enabled</Section>
  <Section name="ACPI_Power_Button" helptext="Switches power button to operate in APCI mode.  Enabling permits enhanced power button handling(push and hold to shut off, and single push to shutdown) instead of on/off operation.">Enabled</Section>
  <Section name="CPU_Performance" helptext="Allows tuning of system performance goals">Memory</Section>
  <Section name="ASR" helptext="Allows enabling/disabling of the Automatic Server Recovery feature.">Disabled</Section>
  <Section name="ASR_Timeout" helptext="User Configuration Timeout for Automatic Server Recovery">10 Minutes</Section>
  <Section name="Thermal_Shutdown" helptext="Enables shutdown when thermal events occur">Enabled</Section>
  <Section name="RBSU_Language" helptext="Language to use for the RBSU menus">01</Section>
  <Section name="PXE_NIC1" helptext="Enable or disable PXE boot on the given NIC">Enabled</Section>
  <Section name="PXE_NIC2" helptext="Enable or disable PXE boot on the given NIC">Disabled</Section>
  <Section name="PXE_NIC3" helptext="Enable or disable PXE boot on the given NIC">Disabled</Section>
  <Section name="PXE_NIC4" helptext="Enable or disable PXE boot on the given NIC">Disabled</Section>
  <Section name="PXE_NIC5" helptext="Enable or disable PXE boot on the given NIC">Disabled</Section>
  <Section name="BIOS_Console" helptext="Used to select the port for the BIOS console">Auto</Section>
  <Section name="BIOS_Baud_Rate" helptext="BIOS console communications settings">9600</Section>
  <Section name="BIOS_Type" helptext="BIOS console communications settings">VT100</Section>
  <Section name="EMS_Console" helptext="Used to select the port for the EMS console">Disabled</Section>
  <Section name="BIOS_Interface_Mode" helptext="BIOS console communications settings">Auto Mode</Section>
  <Section name="System_Embedded_IDE" helptext="Settings for the embedded IDE controller on systems that support it">Enabled</Section>
  <Section name="Embedded_Virtual_Disk" helptext="Enables or disable the Virtual Disk when available.">Enabled</Section>
  <Section name="No_Execute_Memory_Protection" helptext="Enables No Execute mode if the system CPU supports it">Disabled</Section>
  <Section name="Legacy_SERR">Enabled</Section>
  <Section name="CPU_Virtualization" helptext="When enabled, a Virtual Machine Manager supporting this feature can utilize hardware capabilities provided by the server.">Disabled</Section>
  <Section name="Diskette_Boot">Enabled</Section>
  <Section name="NumLock">Off</Section>
  <Section name="POST_Speed_Up">Enabled</Section>
  <Section name="Integrated_Diskette_Controller">Enabled</Section>
  <Section name="PCI_Bus_Reset">Enabled</Section>
  <Section name="Hot_Plug_Reservation">Auto Set</Section>
  <Section name="Memory_Protection" helptext="Sets the type of memory protection used on the server.  Not all modes are supported on all servers.">Advanced_ECC_Support</Section>
  <Section name="Automatic_Poweron" helptext="Configures server to automatically power on when A/C power is applied to the system. This setting is not support by blade servers.">Enabled</Section>
  <Section name="Power-On_Delay" helptext="Sets the delay for the system to be begin the boot up process">No_Delay</Section>
  <Section name="USB_Capability">USB_1.1</Section>
  <Section name="PCI_Enumeration_Method" helptext="Controls the PCI enumeration method on G6 or higher servers.">Standard</Section>
  <Section name="Option_ROM_Loading_Sequence" helptext="Choses whether Option ROMs for embedded devices or expansion cards are loaded first.">Option_Card_First</Section>
  <Section name="Intel_Processor_Core_Disable" helptext="Allows disabling of processor cores using Intel's Core Multi-Processing(CMP) technology.">All_Cores_Enabled</Section>
  <Section name="Intel_QPI_Link_Power_Management" helptext="Places the Quick Path Interconnect (QPI) links into a low power state to save power.">Enabled</Section>
  <Section name="Memory_Interleaving" helptext="Modifies the level of interleaving for which the memory system will be configured.  Typically, higher levels of memory interleaving result in maximum performance, but reducing interleaving level may result in power savings.">Channel_Only_Interleaving</Section>
  <Section name="Intel_PCI_Express_Generation_20_Support" helptext="Allows disabling PCI-E Gen 2.0 support on Intel based servers. If disabled, all PCI-Express devices will run at PCI-E 1.0 speeds (2.5 Gb/s) even if a PCI-E device is 2.0 capable (5.0 Gb/s).">Auto</Section>
</conrep>
Reply all
Reply to author
Forward
0 new messages