This README file contains information on building the meta-fri2 BSP layer and booting the images contained in the /binary directory. Please see the corresponding sections below for details. The Fish River Island II BSP supports the Kontron M2M Smart Services Developer Kit, as described here: http://us.kontron.com/products/systems+and+platforms/m2m/m2m+smart+services+developer+kit.html The 'Queens Bay' platform consists of the Intel Atom E640T processor plus the Intel EG20T Platform Controller Hub (Tunnel Creek + Topcliff). The Fish River Island II includes a variety of communications options and other machine-to-machine (m2m) capabilities. It also supports the E6xx embedded on-chip graphics via the Intel Embedded Media and Graphics Driver (EMGD). Information on all Intel embedded platforms can be found here: http://www.intel.com/p/en_US/embedded/hwsw/hardware Yocto Project Compatible ======================== This BSP is compatible with the Yocto Project as per the requirements listed here: https://www.yoctoproject.org/webform/yocto-project-compatible-registration Dependencies ============ This layer depends on: URI: git://git.openembedded.org/bitbake branch: master URI: git://git.openembedded.org/openembedded-core layers: meta branch: master URI: git://git.yoctoproject.org/meta-intel layers: intel branch: master Patches ======= Please submit any patches against this BSP to the Yocto mailing list (yocto@yoctoproject.org) and cc: the maintainer: Maintainer: Darren Hart Please see the meta-intel/MAINTAINERS file for more details. Table of Contents ================= I. Building the meta-fri2 BSP layer II. Booting the images in /binary III. Device Notes a. BIOS and Firmware b. Serial Port c. HDMI d. Power Reset e. Accelerometer f. GPIO g. MMC h. 802.11 i. 802.15.4 j. Audio k. Optional Devices IV. Known Issues a. EFI boot fails b. Client USB is disabled c. Audio over secondary HDMI port only V. Additional Resources I. Building the meta-fri2 BSP layer =================================== In order to build an image with BSP support for a given release, you need to download the corresponding BSP tarball from the 'Board Support Package (BSP) Downloads' page of the Yocto Project website. Having done that, and assuming you extracted the BSP tarball contents at the top-level of your yocto build tree, you can build an fri2 image by adding the location of the meta-intel and meta-fri2 layers to bblayers.conf, e.g.: yocto/meta-intel \ yocto/meta-intel/meta-fri2 \ The meta-fri2 layer contains support for two different machine configurations. These configurations are identical except for the fact that the one prefixed with 'fri2' makes use of the Intel-proprietary EMGD graphics driver, while the one prefixed with 'fri2-noemgd' does not. If you want to enable the layer that supports EMGD graphics add the following to the local.conf file: MACHINE ?= "fri2" The 'fri2' machine includes the emgd-driver-bin package, which has a proprietary license that must be whitelisted by adding the string "license_emgd-driver-bin" to the LICENSE_FLAGS_WHITELIST variable in your local.conf. For example: LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin" The emgd recipe depends on Xorg's dri and glx modules, which are built only when 'opengl' is listed in DISTRO_FEATURES. So if the distro doesn't list 'opengl' in the DISTRO_FEATURES you would need this additional line to your local.conf: DISTRO_FEATURES_append = " opengl" If you want to enable the layer that does not support EMGD graphics, add the following to the local.conf file: MACHINE ?= "fri2-noemgd" You should then be able to build an fri2 image as such: $ source oe-init-build-env $ bitbake core-image-sato At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). NOTE: The 'fri2' machine will include support for hardware video acceleration via gstreamer if and only if the "commercial" string is added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. For example: LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin commercial" The reason this is needed is to prevent the image from including anything that might violate the license terms of the packages used to implement the the video acceleration feature, such as gst-ffmpeg and ffmpeg. As always, please consult the licenses included in the specific packages for details if you use packages that require particular LICENSE_FLAGS. As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one corresponding to each major release starting with 'laverne' (0.90), in addition to the latest code which tracks the current master (note that not all BSPs are present in every release). Instead of extracting a BSP tarball at the top level of your yocto build tree, you can equivalently check out the appropriate branch from the meta-intel repository at the same location. II. Booting the images in /binary ================================= This BSP contains bootable live images, which can be used to directly boot Yocto off of a USB flash drive. Under Linux, insert a USB flash drive. Assuming the USB flash drive takes device /dev/sdf, use dd to copy the live image to it. For example: # dd if=core-image-sato-fri2.hddimg of=/dev/sdf # sync # eject /dev/sdf This should give you a bootable USB flash device. Insert the device into one of the USB host ports on the target, and power on. This should result in a system booted to the Sato graphical desktop. If you want a terminal, use the arrows at the top of the UI to move to different pages of available applications, one of which is named 'Terminal'. Clicking that should give you a root terminal. If you want to ssh into the system, you can use the root terminal to ifconfig the IP address and use that to ssh in. The root password is empty, so to log in type 'root' for the user name and hit 'Enter' at the Password prompt: and you should be in. If instead of a live image, you would like to prepare an EFI bootable partitioned image, use the mkefidisk.sh script provided in the scripts directory of this BSP. Future versions of the images have an EFI installer integrated into the live image. ---- If you find you're getting corrupt images on the USB (it doesn't show the syslinux boot: prompt, or the boot: prompt contains strange characters), try doing this first: # dd if=/dev/zero of=/dev/sdf bs=1M count=512 III. Device Notes ================================ a. BIOS and Firmware Units provided from the Yocto Project Fish River Island 2 Giveaway Program are preconfigured with the Intel provided Fast Boot EFI firmware. This firmware will search the available devices (USB, SD, and mSATA) for a valid EFI payload at "EFI\BOOT\BOOTIA32.EFI". If it fails to find one, it will launch the EFI shell and optionally execute a "startup.nsh" script if it finds the script on the available storage devices. It searches the devices in the following order: USB, SD, mSATA. Units acquired via other channels may have the Kontron supplied APTIO (AMI) BIOS. This is a PCBIOS and EFI firmware with a traditional BIOS configuration menu which can be used to define a variety of boot configurations. b. Serial Port -------------- The FRI2 has an optional serial daughter card providing a serial console via the micro-USB port on the top of the device adjacent the SIM card slot. The UART from the EG20T is connected to a TI UART-to-USB device (TUSB3410) which appears as a serial port on the host computer. From a Linux host, load the driver with the following options: # modprobe ti_usb_3410_5052 vendor_3410=0x0451 product_3410=0x5053 In future versions of the Linux kernel (3.4 and later), the vendor and product codes are detected automatically. When you power on your FRI2, your host will discover a serial device and name it /dev/ttyUSB0 (or similar). You can communicate with this device at 115200 8N1 using your preferred terminal emulator. If using the Intel provided Fast Boot EFI firmware, no additional configuration is required. If using the APTIO (AMI) BIOS, use the following settings to configure console redirection in the BIOS menu: Advanced Serial Port Console Redirection COM2 Console Redirection [Enabled] Console Redirection Settings Terminal Type [ANSI] Bits per second [115200] Data Bits [8] Parity [None] Stop Bits [1] Flow Control [None] Recorder Mode [Disabled] Resolution 100x31 [Disabled] Legacy OS Redirection [80x24] c. HDMI ------- The FRI2 has two micro HDMI ports. For the Intel provided Fast Boot EFI firmware, the one closest to the bottom of the device is the primary display. For the APTIO (AMI) BIOS, the jack nearest the 1/8" audio jacks is the primary display. d. Power Reset -------------- The recessed button adjacent the LEDs on the top of the device is a power reset button. e. Accelerometer ---------------- The LIS331DLH accelerometer is connected to the I2C bus on the CPLD on the compute module. The driver for this chip is under active development and will be included in the BSP once completed. f. GPIO ------- The FRI2 has two I2C PCA555x GPIO devices used for internal control signals. These have not been exposed in the current release of the BSP, but may be in the future. Regardless, these would not provide general purpose IO with which to read or drive additional signals. g. MMC ------ The FRI2 provides two microSD card MMC devices. One is located adjacent the 1/8" audio jacks, another is located on the board inside the chassis. These devices can be used to boot the device, or as secondary storage. h. 802.11 --------- The Intel Corporation Centrino Advanced-N 6205 that ships with the FRI2 is supported. You can use connman-gnome to configures the interface. i. 802.15.4 ----------- The TI CC2531 802.15.4 radio is a USB ACM modem. The MAC is enabled by issuing the following command: # echo J > /dev/ttyACM0 The bank of 3 LEDs nearest the power reset button will change if this command is executed successfully. If you have a 3G modem installed, the 802.15.4 device may appear as /dev/ttyACM3 instead. No further testing or integration has been done. j. Audio -------------------- The FRI2 has an 1/8" analog output (nearest the antennae), a line-in input below that, as well as SPDIF over HDMI. These can be tested using the alsa-utils package. The aplay -l command will list both playback devices: # aplay -l **** List of PLAYBACK Hardware Devices **** card 0: MID [HDA Intel MID], device 0: ALC262 Analog [ALC262 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: MID [HDA Intel MID], device 3: ALC262 Digital [ALC262 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 Using a sample WAV file, you can use aplay to play to either device: Over analog: # aplay -D plughw:0,0 sample.wav Over HDMI: # aplay -D plughw:0,3 sample.wav k. Optional Devices ------------------- The FRI2 has two mini-PCIe slots internally. The device ships with a half-length wireless card installed. This can be replaced with a wireless + bluetooth card. The other slot is available for use with cellular cards or mSATA SSDs. The Ericsson F5521gw 3G modem has been verifed with the FRI2 images. Note that the connman-gnome UI does not allow for configuring the cellular interface. The ofono-tests package can be used to configure the modem and bring up an interface. IV. Known Issues ---------------- a. EFI ------ The APTIO (AMI) BIOS does not yet boot the EFI payload provided on the FRI2 live image. This is a known issue under investigation. If using this firmware, boot using PCBIOS mode, rather than EFI. The Intel provided Fast Boot EFI firmware will boot the EFI payload. b. Client USB is disabled ------------------------- The micro-USB port adjacent the primary HDMI port is intended for Client USB functionality, but is not supported on current revisions of the device. c. Audio over secondary HDMI port only -------------------------------------- While audio over HDMI has been shown to work, it seems to only work over the secondary (bottom-most) HDMI port. There does not appear to be a deterministic way of getting the device to output the signal (video and audio) over the secondary port. V. Additional Resources ----------------------- In addition to this README, please see the following wiki page for tips on using the FRI2 with the Yocto Project: https://wiki.yoctoproject.org/wiki/BSPs/FRI2