NameLast modifiedSizeLicense

Parent Directory Parent Directory
folder rpb -
folder rpb-wayland -


The Linaro Qualcomm Landing Team is pleased to announce the new release of the Linaro OpenEmbedded RPB release for Qualcomm™ Snapdragon® 845 processor. The Linaro OpenEmbedded RPB release 20.07 is based on OpenEmbedded and provides developers with a reference set of images including Xorg, Wayland/Weston as well as console only configurations.

What’s new in this release

  • Major system upgrade to dunfell.
  • Major kernel upgrade to Linux kernel 5.7.7.
  • MESA upgrade to 20.0.2.
  • Wireless 802.11 enablement using ATH10k.
  • HDMI Audio enablement.

Important note(s) about this release

A firmware/bootloader upgrade is required for this release, install with the fastboot images, latest bootloader package.

Known issues

For a list of all known issues, please check our Bugzilla

Features

The Linaro OpenEmbedde RPB version 20.07 for the Snapdragon 845C supports the following features:

  • It is based on the OpenEmbedded / Yocto Project release 3.1.0 (aka dunfell).
  • It is based on Linux kernel 5.7.7.
  • It is based on proprietary firmware released by the board manufacturer, Thundercomm. A copy of the firmware is available here.
  • The following reference images are released:
    • boot image that includes prebuilt kernel and initrd
    • rpb-console-image image that includes core packages as well as typical development packages (headless)
    • rpb-desktop-image image that includes a minimal desktop environment with Xorg and openbox
    • rpb-weston-image image that includes a minimal desktop environment with Wayland and weston
  • All images are configured with a password less root account.
  • All images exist in two variants. The regular image, and a -test image , which includes additional packages typically useful for test and validation.
  • The root file system should be flashed in the onboard UFS.
  • The following features are supported on the DragonBoard 845c:
    • SDA845 8x Kryo 385 CPU, up to 2.8 GHz
    • PSCI with support for cpuidle, SMP, hotplug and restart.
    • Adreno 630 GPU, powered by freedreno Mesa/Gallium GPU driver, version 20.0.2
      • Open GL ES 3.1 and Open GL 2.0
      • X11 -modesetting video driver
    • HDMI display
    • UART, SD, UFS
    • USB 3.0 (Mouse, Keyboard, Storage, Ethernet)
    • Hardware accelerated video codecs using dedicated Snapdragon coprocessor
    • Bluetooth using integrated WCN3990 chip.
    • WiFi 802.11 using ATH10k.
    • Analog audio using WCD934x.
    • HDMI audio using Lontium Lt9611.

Information about the DragonBoard 845c

For more information about the DragonBoard 845c, please check the following website and wiki:

How to install and use this release

To install this release please follow the instructions from the DragonBoard 845c installation guide.

Proprietary firmware

This release contains proprietary firmware. You can download the proprietary firmware separately, from here. All the required firmware files are pre-installed, and our images are bound to the Qualcomm Linux BSP license agreement. A copy of the LICENSE can be found in the image as /etc/QCOM-LINUX-BOARD-SUPPORT-LICENSE.

Linaro OpenEmbedded RPB

Linaro OpenEmbedded Reference Platform Build (RPB) is a reference implementation of an OpenEmbedded based distribution developed by Linaro. It provides examples and guidelines for users to create their own distribution based on OpenEmbedded. The reference images included in this release can be used to demonstrate and validate any of the use case that the Dragonboard 845c can support. The current release is based on the OpenEmbedded Core dunfell release branch.

The following reference distributions are provided by the Linaro OpenEmbedded RPB project:

  • rpb is a reference OE distro that is based on Xorg graphics stack
  • rpb-wayland is a reference OE distro that is based on Wayland graphics stack

For more information about Linaro OpenEmbedded RPB, please check this document.

Flashing the prebuilt images

The default partition scheme, flashed by the Linaro bootloader release, has created the following partitions:

  • boot for the boot image (which includes the kernel Image)
  • rootfs for the main root file system image

To flash the boot image, from the host PC, run the following command:

fastboot flash boot <boot image file>

To flash the root file system image, download the image file with the extension .img.gz and run:

gunzip <rpb-xxx--image.rootfs.img.gz>
fastboot flash rootfs <rpb-xxx--image.rootfs.img>
Running rpb-desktop-image

The desktop image is a minimal graphical image based on the Xorg server. When booting it will automatically start an instance of Xorg server, and launch the openbox window manager. It is recommended to use an HDMI monitor, as well as USB keyboard and mouse. A console login will also be started on the serial console.

Running the rpb-console-image

If you have flashed the console image, when booting the board you will end up in a login prompt on the serial console. If you have an HDMI monitor connected, you will also have login terminals on the display.

Running the rpb-weston-image

The Weston image is a sample image that will start the Weston compositor using Wayland automatically on boot. It is recommended to use an HDMI monitor, as well as USB keyboard and mouse. A console login will also be started on the serial console.

Building from sources

The boot image and the root file system are completely built from sources, using OpenEmbedded build system. It is recommended to setup the build environment using the following instructions. For more information about OpenEmbedded and the Yocto project please refer to the Yocto Project Documentation.

How to get and customize the kernel source code

To rebuild the kernel you can use the OpenEmbedded workflow and update the kernel recipe, located in the build environment in ./layers/meta-qcom/recipes-kernel/linux/linux-linaro-qcomlt_5.7.bb. To rebuild a boot image that includes your kernel changes, you can run the following bitbake command:

bitbake virtual/kernel

Assuming the build went fine, the new boot image will be located in the build folder, as tmp-rpb-glibc/deploy/images/dragonboard-845c/boot-dragonboard845c.img.You can run the following fastboot command to boot it on the board:

sudo fastboot boot boot-dragonboard845c.img

If you want to permanently use a custom kernel image, you can update the boot image and reflash it into the boot partition:

sudo fastboot flash boot boot-dragonboard845c.img

How to get and customize the bootloader

While the first stage bootloader is proprietary and released by the board manufacturer, Thundercom here, the second stage bootloader is ABL and is open source.

The source code which is used in this release can be found in the Linaro Qualcomm Landing Team git repository:

git: http://git.linaro.org/landing-teams/working/qualcomm/abl.git
tag: dragonboard845c-LE.UM.3.2.2.r1-02700-sdm845.0-linaro1
wget -qO- https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz | tar -xf -
export PATH=$(pwd)/../gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
git clone https://source.codeaurora.org/quic/la/platform/prebuilts/clang/host/linux-x86 -b LA.UM.7.9.r1-07300-sm6150.0 clang
git clone http://git.linaro.org/landing-teams/working/qualcomm/abl.git -b dragonboard845c-LE.UM.3.2.2.r1-02700-sdm845.0-linaro1
cd abl
mkdir -p out/edk2
make all \
     BOOTLOADER_OUT=out/edk2 \
     BUILD_SYSTEM_ROOT_IMAGE=0 \
     VERIFIED_BOOT=0 \
     VERIFIED_BOOT_2=0 \
     VERIFIED_BOOT_LE=0 \
     USER_BUILD_VARIANT=0 \
     DISABLE_PARALLEL_DOWNLOAD_FLASH=1 \
     ABL_USE_SDLLVM=false \
     ABL_SAFESTACK=false \
     CLANG_BIN=$(pwd)/../clang/clang-4691093/bin/ \
     CLANG_PREFIX="aarch64-linux-gnu-" \
     TARGET_ARCHITECTURE=AARCH64 \
     BOARD_BOOTLOADER_PRODUCT_NAME="SuperEDK2k"

Optimized video pipeline

In order to exercise a fully optimized video pipeline some specific settings need to be applied throughout the pipeline elements. With the fully optimized video use case there is no extra buffer copy, and the various drivers involved are sharing all video buffers using dmabuf.

To exercise the opimized video pipeline, you can use for example the following gstreamer command:

GST_GL_PLATFORM=egl gst-launch-1.0 filesrc location=<path to file> ! qtdemux name=m m.video_0 ! h264parse ! v4l2video0dec capture-io-mode=dmabuf ! glimagesink

FFmpeg support

As of FFmpeg 3.4, support for v4l2 hardware assisted codecs was added. As a consequence, FFmpeg can now use the Venus codecs, using the v4l2 APIs. The relevant patches have been backported and are included in this release. FFmpeg is included by default in the images. Here is a sample command line that would decode a video file using hardware acceleration on Dragonboard 845c:

ffplay -sync video -autoexit -vcodec h264_v4l2m2m -i <an h264 video clip>

Feedback and Support

For general question or support request, please go to 96boards.org Community forum.

For any bug related to this release, please submit issues to the 96Board.org Bug tracking system. To submit a bug, follow this link.

Bugs will be reviewed and prioritized by the team. For any bug report it is recommended to provide as much information as possible, and at the very list please include the name of the release you are using, the output of dpkg -l to list all packages installed, as well, as the boot log (output of dmesg).

How to contribute

We very much encourage developers to use and contribute to our releases, using the following instructions.


Qualcomm Snapdragon is product of Qualcomm Technologies, Inc.