Intel is moving to Yocto for its future distribution of the ManyCore Platform Software Stack (Intel(R) MPSS). A production version of this distribution will be available in the fall (estimated ~late September).
This is a preliminary announcement / notice to all of our customers so that you are aware of the changes, which affect installation, administrative tasks, and possibly your applications.
The key reasons for Intel's move to Yocto are the following
- It improves Intel's ability to provide enhancements and bug fixes to the Intel(R) MPSS
- Yocto’s key feature is the ability to deliver a complete package, from which you will be able to install the software required to EXACTLY reproduce the Intel® MPSS build system with the exact same output that Intel generates internally, thus meeting the obligation of the GPL, under which much of Intel® MPSS is released
- By moving to Yocto, you will have the ability to make modifications to the Intel® MPSS to suit your needs
- Yocto is built and maintained with the awareness of the location of all of the known community maintained projects, libraries, and critical components. It has the ability to pull all of these projects into Intel’s local build servers automatically, and provide customers with the latest versions of these components.
The following is a list of questions and answers to help you understand the transition. We also encourage you to look at the attached Appendices, as they have specific information about what is changing. We realize there is some information missing in this specific FAQ (e.g. another appendix), and will update this post during the month of September 2013
If you have follow-up questions on this topic, we invite you to submit them to our Community Forum
· Yocto is a Linux* community project which provides tools to facilitate building, maintaining, and reproducing builds – and the build environment - of General Public License (GPL) source code distributions. In this particular context, it provides the ability to access the community repositories directly for Intel® MPSS, and provides methods for staying up to date on the various trees for our distribution. It features a recipe approach to describe the build processes for each component of Intel® MPSS. Yocto also provides the ability to customize your build environment to include features not supported by Intel® MPSS.
· The previous build system used by the Intel® MPSS development team had reached the limits of its scalability, in terms of supporting future Intel® MPSS enhancements and bug fixes.
· Yocto’s key feature is the ability to deliver a complete package, from which all customers will be able to install the software required to EXACTLY reproduce the Intel® MPSS build system with the exact same output that Intel generates internally. Thus unequivocally meeting the obligation of the GPL, under which much of Intel® MPSS is released.
· Yocto is built and maintained with the awareness of the location of all of the known community maintained projects, libraries, and critical components. It has the ability to provide customers with the latest versions of these components.
· Intel is transitioning to a Yocto-based release now, in order to deliver future enhancements and bug fixes to the Intel® MPSS for customers.
Q: How will this impact the delivery of my favorite feature, bug fix, security fix, or schedules for other previously communicated features/OS support?
· Schedules for enhancements and bug fixes have been adjusted to allow for the quick development, validation, and deployment of the Yocto build system.
· No. However, Yocto provides customers the option to take a snapshot of the Intel® MPSS and make customizations/changes to the stack to suit their unique needs.
Q: What security concerns are there with pulling updates from public repositories? How are they being addressed?
· Intel takes security very seriously, and will work to address any security concerns that may come up. You can view the Intel® MPSS security policy here. Furthermore, the only parties we must trust implicitly are the Yocto Project developers who have commit access; without their collusion, any attempt to tamper with the software pulled from public repos will be made evident by a mismatch in the cryptographic hash calculated over the downloaded content.
· On Linux*, the Installation process will be the same as it was in the past, documented in the Intel® MPSS Gold Update 3 for Linux*. The uninstall process will change slightly: a script is now provided to perform the uninstallation of Intel® MPSS.
· On Windows*, the installation of Intel® MPSS Beta for Windows* changes slightly for binutils, where the binary to run will be a .msi instead of a .bat file. The uninstallation process will remain the same.
· Yes: following the uninstall process for the Yocto-based release will leave the system prepared to re-install a previous Intel® MPSS release.
Q: How does this transition to Yocto affect the Documentation for Intel® MPSS and Cluster Configuration?
· The README that typically is shipped with Intel® MPSS has been simplified to only include the installation, flash instructions and a small set of directions regarding how to use the included debug script (Linux* only) to gather debug information.
· The remainder of the documentation will be provided in an Intel® MPSS User’s Guide; this guide will also include information previously in the Intel® MPSS Boot Config Guide and the Intel® MPSS Cluster Setup Guide.
· Yocto changes will be integrated into the Systems Administration Guide once the release is production
· The Case Study on Configuring Intel Xeon Phi Coprocessors inside a cluster will not change for the version of Intel® MPSS identified in that document. The current version of this document refers to the Beta release of Intel® MPSS for Linux*, and there are changes required to make this document up-to-date with the Gold releases of Intel® MPSS for Linux*. There will be additional changes required to make this document consistent with the upcoming Yocto-based Intel® MPSS. The extent of these changes and the timeline for updating these documents is TBD.
· Intel® MPSS’s first Yocto-based release will be called version 3.0, which can be interpreted as follows:
Major version: 3
Minor version: 0
· The Intel® MPSS team plans periodic releases to provide new functionality and resolve known issues. These planned periodic releases will increment the Minor version number. The next planned release after 3.0 will be 3.1.
· When showstopper issues are discovered and need to be resolved out of cycle, the Intel® MPSS team will release an interim release, which can be identified by a “dot number” appended to the version number, e.g., 3.0.1, which indicates the first interim update release to the 3.0 release.
· All RPMs/zip files associated with a particular release will include the release number in the name. Tools will respond to the “--version” query flag with this release number as well.
· For Linux*, Intel will discontinue support for SuSE SLES11 SP1. The remainder of the supported releases remains the same.
· The Windows* versions supported do not change with this release.
· Yes. In all releases up to and including the Gold Update 3 release, BusyBox provided a familiar Linux*-like set of utilities on the coprocessor file system. Some of the functions are changing to /bin/tinylogin (which might change behavior or outcome of your scripts); some capabilities go away; and some new capabilities are added. Please see the table in Appendix 3 for a complete list of changes.
Q: How do these changes affect the process of building native versions of GCC, the GNU tools, native kernels, Lustre, etc for the Intel® Xeon Phi™ coprocessor?
· Intel-authored source code is organized and packaged differently: instead of one big tarball, each individual component has its own. Additionally, GCC and other GNU tools have been modified to use ‘k1om-linux’ as their canonical system tuple instead of ‘x86_64-k1om-linux’. Beyond those differences, changing existing, custom build processes should not be necessary; however, they can also be replaced with the equivalent Yocto-driven process at one’s own discretion.
· One now has the option of using Yocto tooling to do it. Otherwise, it doesn’t (except for the aforementioned change in the canonical system tuple used).
· No, recompilation of the kernel will not be affected by the move to a Yocto-based release.
· Not really. If these drivers are being compiled as a kernel module, you’ll need to modify the (now separate) initramfs cpio archive to contain them. You also have the option of migrating your build process to leverage Yocto tooling.
· The locations of Intel® MPSS libraries have changed. The mapping of library locations in previous releases and in the upcoming release are documented in Appendix 1. Applications which interact with or modify operating system configuration files (e.g., those in /etc) may need to be adapted to the Yocto distribution on the device.
· The locations of Intel® MPSS libraries in previous releases and in the upcoming release are documented in Appendix 1. Native applications which fork/exec other Linux* programs which are provided by MPSS may need to be adapted if a different (e.g., non-busybox) implementation of those programs is used by Yocto (see Appendix 3).
· The locations of Intel® MPSS libraries in previous releases and in the upcoming release are documented in Appendix 1.
Q: How does Yocto affect how I use any of the Intel® MPSS tools, such as MicFlash, MICINFO, MICCTRL, MICCHECK etc.?
· The locations of the Intel® MPSS utilities in previous releases and in the upcoming release are documented in Appendix 2.
· Most of the existing functions defined will not change (exceptions noted below:
- File locations (see Appendix 4)
- The following changes and enhancements apply to Linux* installations:
- The files in CommonDir and MicDir are now “tacked” onto the end of the init ram disk cpio image instead of a single cpio image being created for BaseDir
- New parameter “Base” replaces old “Basedir” and must currently have a first argument of “CPIO”; can be set with micctrl --base command
- The “--server” argument to “micctrl --rootdev” has been removed; if a server other than the host is requested use the new syntax “--target=<server>:<dir>”. This extracts the compressed cpio image instead of copying the old base directory – Linux* Use the new “--addnfs=<server>:<dir>” to specify an NFS server other than the host
- The “micctrl --passwd” command now works
- The “micctrl --network” command includes a new “--gw” option to specify a gateway
- New “micctrl --pm” option
- “micctrl --pm=default”: uses sysfs to determine coprocessor type and set appropriately (uses C-stepping if not available in sysfs)
- “micctrl --pm=defaultb”: defaults to B-step
- “micctrl --pm=set”: uses options “--cpufreq”, “--corec6”, “--pc3”, and “--pc6” to change the values from the previous value
- The overlay parameter types will now include “RPM”, which will specify a single RPM or directory of RPMs to be placed in the /RPMs-to-install directory on the coprocessor’s file system. These RPMs will automatically be installed by booting the coprocessor’s OS
- The “cgroups” parameter is being added
- The following changes and enhancements affect Windows* installations:
- File system transfer now transferred directly to coprocessor memory before bootstrap execution
- There is a new “--resetdefaults” command for micctrl.exe
- Enhanced SSH key capabilities: micctrl.exe now accepts PuTTY or OpenSSH style public/private key pairs
· File location and name changes documented throughout this FAQ imply that you are likely to need to make changes in your administrative scripting.
· Locations for libraries (Appendix 1), include files (Appendix to be published soon!), and utilities (Appendix 2) will change. In addition,
- The coprocessor-side binary for the provided tutorials will not be pre-compiled; it will be left to the user to compile these binaries.
- binutils will be changing. However, none of the changes affect how it functions.
- Tutorial folder locations change (Appendix to be published soon!)
· Changes to the file systems on both host and coprocessor are documented in other sections of this FAQ (i.e., the appendices).
· No, aside from the changes to the location of the library files (See Appendix 1).
· No. This change does not provide for relocatable installation of the Intel MPSS.
· No performance delta from the previous release is expected. Any performance issues that are identified and reported by you will be treated as regressions and the Intel® MPSS team will work to resolve them.
· Everything is the same: The Yocto-based release does not change the existing support model for Intel® MPSS. Intel will continue to provide support for Intel® MPSS installations based on the binaries shipped by Intel.
· The Intel® MPSS version mpss_gold_update_3-2.1.6720-16 (released: August 1 2013) will be supported through end of March 2014.
· If you encounter problems on a release that you modified, we will ask that you reproduce the issue on an unmodified Intel® MPSS version.
- The Yocto Project web site: This web site is a good place to get detailed documentation on what Yocto does and does not provide. Here’s a snapshot of the documentation available on this site (5/29/13).
- Yocto Project Wiki
- Complete Documentation Set -- This is an aggregated document comprised of all existing Yocto Project manuals and guides. The manual simply includes each manual or guide with no additional text.
- Yocto Project Quick Start -- This short document lets you get started with the Yocto Project quickly and start building an image
- Application Development Toolkit (ADT) User's Guide -- This manual provides information that enables you to get going with the ADT to develop projects using the Yocto Project.
- Board Support Package (BSP) Developer's Guide -- This brief document defines a structure for BSP components. Having a commonly understood layout encourages standardization.
- Build Appliance Manual -- The Build Appliance allows you to build and boot a custom embedded Linux* image with the Yocto Project using a non-Linux* development system. You can download the Build Appliance at the download page
- Development Manual -- This Manual provides an overview of the development process for images and user-space applications.
- Hob Manual -- Hob is a graphical user interface for BitBake. Its primary goal is to enable a user to perform common tasks more easily.
- Linux* Kernel Development Manual -- This document describes the architecture of the Yocto Project kernel and provides some workflow examples.
- Profiling and Tracing Manual -- This manual presents a set of common and generally useful tracing and profiling schemes along with their application (as appropriate) to each tool
- Reference Manual -- This manual is the complete reference guide to the Yocto Project, including the Poky reference system.
Please do not forget to consult the Appendices attached to this article, as they provide detail on binary and library location changes, and potential changes in behavior as a result of this transition.