OpenCompute

Launchpad

Project page for keeping track of feature requests, development, and bug reports.

Disposable Operating System (OCP DOS)

The OCP DOS is a cloud-init based bootable operating system that includes OCP specific

TODO. Links to download OCP DOS. (usb, iso, pxe)

TODO. Instructions for creating the OCP DOS. (may go on the OCP Wiki). To do this under Ubuntu consider using the small cloud image (small and has cloud-init) w/ the kernel/initrd from the maas image (has bare metal drivers).

Running the Open Compute Ready Self Testing Scripts (Draft)

The Open Compute testing tool is comprised of modules that are run by "checkbox". Checkbox has the ability to run a list of tests, collect data from those tests, and submit those tests for review. OCP has two levels of testing: "Ready" and "Certified". Ready testing is designed to be "self-testing" with little stress testing, little interoperability testing, and requiring limited infastructure for testing. Ready testing should be easy to do single unit testing. Certified testing will be done by a certified lab and include more rigerous and manual testing. When testing for either Ready and Certified status you will run checkbox on the local machine (SUT) via the Disposable Operating System and on a remote machine to test the SUT.

Overview/Comparison of Ubuntu Checkbox and OCP Checkbox test: http://www.opencompute.org/wiki/index.php/Compliance_and_Interoperability/CheckboxWhitelists

High Level Overview (Draft)

You will need the following before you begin:

  1. System under test (the OCP system being tested)
    1. Running a Disposable Operating System compliant OS
  2. Remote system capable of running checkbox
  3. Ready self testing documentation
  4. Misc. hardware for testing connectivity and perephrials
    1. All NICs cabled
    2. USB storage plugged in

The high level procedure is:

  1. Fill out the OCP Ready self testing documentation
  2. Install a Disposable Operating System to the SUT
  3. Boot the SUT and execute the "ocp-ready-local" tests with checkbox
    1. this will collect system data and run local tests
  4. After the local testing has completed, run the "ocp-ready-remote" tests from a remote system
  5. Submit the OCP Ready self testing application with results from local and remote testing to the OCP

Running the self testing tool (Draft)

TODO. Possible content:

  • Running it from getting the repo on an existing OS
  • Running it from cloud-init
  • Running it from the DOS

Developing Additional OCP Tests

Checkbox is fully open source and anyone can create branches and propose merge requests. Additional tests can be written and included to checkbox. Metadata is created that describe the test and any dependencies the test has. "Whitelists" can be created for running different sets of test. For example, two whitelists were created for the OCP Ready to run local or remote tests. In the future new whitelists may be created for "Certified" level of testing or different types of functional testing beyound compute testing. (For example, a sub set of tests for a storage box, motherboard, memory, flash, etc.).

Example of developing a new test for ipmi: Writing a new IPMI test for checkbox

Example of using cloud-init to run checkbox: Testing with Checkbox in Cloud-init

Development Quick Start video: quick_start_video

Development Quick Start presentation: presentation

SoL (Serial over LAN)

This document shows how to configure Ubuntu 12.04.2 Server on Open Compute v2 (Windmill) platform to support IPMI SoL. This procedure was developed using the Serial Console HOWTO (see "External links" below), and adapted to apply specifically to Ubuntu 12.04.2 Server and Open Compute v2 platform. If you find any issues, please file bug reports on the Ubuntu OpenCompute Launchpad page.

Ubuntu 12.04.2 System Setup

  1. Identify the serial port for the BMC from dmesg
     $ dmesg |grep tty
     [    0.000000] console [tty0] enabled
     [    1.073325] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
     [    1.094732] 00:03: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
     [    1.115064] 0000:00:16.3: ttyS4 at I/O 0x9080 (irq = 17) is a 16550A

    ttyS4 is for the BMC.

  2. Find out the console port speed from the BIOS. For the particular platform, the port speed is 57600.

  3. Configuring the console login process
    1. Create a file called /etc/init/ttyS4.conf containing the following:
        # ttyS4 - getty
        #
        # This service maintains a getty on ttyS4 from the point the system is
        # started until it is shut down again.
      
        start on stopped rc or RUNLEVEL=[2345]
        stop on runlevel [!2345]
      
        respawn
        exec /sbin/getty -L 57600 ttyS4 vt102
    2. Ask upstart to start the getty
        sudo start ttyS4
    3. Restart init
        sudo /sbin/telinit q
    4. Check: On another system that supports IPMI v2, run
        # ipmitool -I lanplus -H <System's BMC IP address> -U <userid> -P <password> sol activate
      The console login prompt should appear.
  4. Configuring grub
    1. Edit /etc/default/grub
        # If you change this file, run 'update-grub' afterwards to update
        # /boot/grub/grub.cfg.
      
        GRUB_DEFAULT=0
        GRUB_TIMEOUT=1
        GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
        GRUB_CMDLINE_LINUX="console=tty0 console=ttyS4,57600n8"
      
        # Uncomment to disable graphical terminal (grub-pc only)
        GRUB_TERMINAL=serial
        GRUB_SERIAL_COMMAND="serial --speed=57600 --unit=1 --word=8 --parity=no --stop=1"
      
        # The resolution used on graphical terminal
        # note that you can use only modes which your graphic card supports via VBE
        # you can see them in real GRUB with the command `vbeinfo'
        #GRUB_GFXMODE=640x480
      
        # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
        #GRUB_DISABLE_LINUX_UUID=true
      Note: Comment GRUB_HIDDEN_TIMEOUT=0 and GRUB_HIDDEN_TIMEOUT_QUIET=true if they are in the original grub.cfg.
    2. update grub
        update-grub
    3. Check: On another system that supports IPMI v2, run
        # ipmitool -I lanplus -H <System's BMC IP address> -U <userid> -P <password> sol activate
      Reboot the Ubuntu 12.04.2 system. The output of the grub should appear on the remote system when pressing the shift key during the boot process.
  5. Configuring BIOS
    1. Go to BIOS setup to enable serial console redirection.
    2. Check: On another system that supports IPMI v2, run
        # ipmitool -I lanplus -H <System's BMC IP address> -U <userid> -P <password> sol activate
      Reboot the Ubuntu 12.04.2 system. The BIOS menu should appear on the remote system and BIOS setup should be accessed successfully.

Out-of-Band Management

Out-of-band management for Open Compute v2 (Windmill) platform

It's not a problem to use ipmitool to do remote out-of-band management. Note: Add -C3 to the ipmitool command when v1.8.12 is used. Bug 1176202.

In-band management for Open Compute v2 (Windmill) platform

A particular set of kernel modules and user space application are required to get in-band access working on this platform:

  • kernel module dcmi v 2.1.6.28.MEI
  • kernel module mei v7.1.21.4.S
  • user space app dcmitool that has idc-hi plugin. This plugin is required to support in-band.

Follow the directions on the Open Compute Developer's PPA to install dcmi-dkms, mei-dkms, and dcmitool.

Manual Installation of DCMI drivers and tools

If you have used the OCP Developers PPA you should not need to do the following steps.

Download dcmi and mei source and dcmitool, use 'quanta' to unzip, For details, see bug 1156667.

Compile and load dcmi and mei modules

  1. Make sure all ipmi modules are not loaded. 'sudo modprobe -r'
  2. Run 'sudo make install' to compile and install mei.
  3. For dcmi, edit Makefile (see Makefile.diff) then 'sudo make install'.

  4. Run 'sudo depmod', 'sudo modprobe dcmi', 'sudo modprobe mei'.

dcmitool

  1. Make the dcmitool file executable, 'sudo chmod 755 dcmitool'.
  2. Running dcmitool gives 'error while loading shared libraries: libreadline.so.5'. Install libreadline5 'sudo apt-get install libreadline5'.
  3. Running dcmitool again gives 'error while loading shared libraries: libcypto.so.6'. Install libssl-dev 'sudo apt-get install libssl-dev'.
  4. Locate libcrypto.so and rename it to libcrypto.so.6
    • rorke@ocpr0s11l:/$ sudo find | grep libcrypto.so
      ./usr/lib/x86_64-linux-gnu/libcrypto.so
      ./lib/x86_64-linux-gnu/libcrypto.so.1.0.0
      rorke@ocpr0s11l:/$ ls -al /usr/lib/x86_64-linux-gnu/ |grep libcrypto
      -rw-r--r-- 1 root root 4050576 Mar 19 14:25 libcrypto.a
      lrwxrwxrwx 1 root root 40 Mar 19 14:25 libcrypto.so -> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
      rorke@ocpr0s11l:/$
      rorke@ocpr0s11l:/$ sudo mv /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libcrypto.so.6
  5. Run dcmitool
    • rorke@ocpr0s11l:~/dcmi-mei-from-quanta$ sudo ./dcmitool power status
      Chassis Power is on

  1. Serial Console Howto

  2. Running IPMI on Linux

  3. Checkbox documentation

OpenCompute (last edited 2014-01-10 18:23:09 by david-duffey)