NameLast modifiedSizeLicense

Parent Directory Parent Directory
text MD5SUMS.txt 07-Mar-2018 13:09 1.4K open
text README.txt 07-Mar-2018 13:09 221 open
other boot-qcom-apq8064-cm-qs600-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 8.2M open
other boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 8.2M open
other boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 8.2M open
other bootimg.cfg 07-Mar-2018 13:09 290 open
other firmware-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 64.0K open
other initrd.img-4.2.4-linaro-lt-qcom 07-Mar-2018 13:09 2.6M open
other kernel.config 07-Mar-2018 13:09 110.2K open
other linaro-vivid-alip-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 426.8M open
other linaro-vivid-developer-qcom-snapdragon-20151026-139.img.gz 07-Mar-2018 13:09 210.4M open
other linux-firmware-image-4.2.4-linaro-lt-qcom_4.2.4-linaro-lt-qcom-1_armhf.deb 07-Mar-2018 13:09 51.4K open
other linux-headers-4.2.4-linaro-lt-qcom_4.2.4-linaro-lt-qcom-1_armhf.deb 07-Mar-2018 13:09 6.7M open
other linux-image-4.2.4-linaro-lt-qcom-dbg_4.2.4-linaro-lt-qcom-1_armhf.deb 07-Mar-2018 13:09 40.6M open
other linux-image-4.2.4-linaro-lt-qcom_4.2.4-linaro-lt-qcom-1_armhf.deb 07-Mar-2018 13:09 7.4M open
other linux-libc-dev_4.2.4-linaro-lt-qcom-1_armhf.deb 07-Mar-2018 13:09 767.5K open
other qcom-apq8064-cm-qs600.dtb 07-Mar-2018 13:09 24.6K open
other qcom-apq8064-eI_ERAGON600.dtb 07-Mar-2018 13:09 27.8K open
other qcom-apq8064-ifc6410.dtb 07-Mar-2018 13:09 27.6K open
other zImage 07-Mar-2018 13:09 5.6M open


The Linaro Qualcomm Landing Team is pleased to announce the new release of the Linaro Linux release for Qualcomm™ Snapdragon® 600 processor. The Linaro Linux release 15.10 is an Ubuntu-based Linaro Member Build that provides developers with a desktop like environment using Ubuntu and the LXDE desktop, as well as a console-only image.

What’s new in this release

  • Migrate to Linux kernel v4.2.4 (stable)
  • Add support for Inforce IFC6410PLUS SBC

The current Linaro member monthly builds for Snapdragon 600 processor provides a kernel based on Linux kernel version 4.2.4. The goals of the Linaro Linux releases for Snapdragon 600 processor are to align with the latest Linux Kernel (www.kernel.org), close the gaps in features provided and migrate from the existing 3.4 vendor kernel. Developers can continue to use the Linaro Linux release 14.10 for Snapdragon 600 processor, which is based on Linux kernel v3.4 and Ubuntu 14.04 if needed.

Features

The Linaro Linux version 15.10 for the Snapdragon 600 supports the following features:

  • Provides a working Ubuntu environment with access to Ubuntu repositories (apt-get) and updates. It is based on Ubuntu 15.04 (aka vivid).
  • It is based on proprietary firmware from Inforce IFC6410 Android BSP Rel v1.5 for IFC6410 (or IFC6410PLUS) and eInfochips-ERAGON600-Ubuntu-Linux-BSP-Relv1.0 for ERAGON600.
  • The following prebuilt images are released:
    • boot image that includes prebuilt kernel and initrd
    • developer image that includes Ubuntu core packages as well as typical development packages
    • alip image that includes a desktop based on LXDE
  • All images have a pre-configured user called linaro, and the password for this user is set to linaro
  • The root file system can be installed on eMMC or any other external media such as USB, SD card, SATA.
  • Support for the following Snapdragon 600 based boards:
    • Inforce IFC6410 Rev P1 and A1
    • Inforce IFC6410PLUS
    • Compulab Utilite2 (CM-QS600)
    • eInfochips ERAGON600 Development Board (based on ERAGON600 SOM)
  • The following Snapdragon 600 features are supported:
    • Quad Core Krait 300 CPU (up to 1.7GHz)
    • Adreno 320 GPU, powered by freedreno Mesa/Gallium GPU driver
      • OpenGL 2.1, OpenGLES 2.0
      • xf86-video-freedreno driver v1.3.0, with XA support enabled
      • xf86-video-modesetting with GLAMOR support
    • Cpufreq, using ondemand governor by default
    • HDMI display
    • UART, Ethernet, SD, eMMC, SATA
    • USB2.0 (Mouse, Keyboard, Storage)
    • Wifi using on-board QCA6234x
    • Bluetooth using on-board QCA6234x
    • CPU thermal sensors

Information about the IFC6410 and IFC6410PLUS boards

For more information about Linaro Linux release for Snapdragon 600 processor and the Inforce IFC6410 board, please check the Linaro wiki. This wiki page provides additional information on board setup and getting started with Ubuntu on the IFC6410 (e.g. customize the kernel, rebuild the images, …).

The IFC6410 is no longer available for purchase and has been replaced by the Inforce IFC6410PLUS. For more information about this board, please check this website. The instructions in the release notes are the same for both the IFC6410 and the IFC6410PLUS.

Information about the Compulab Utilite2 Board

For more information about Compulab Utilite2 board, please check Compulab website.

Information about the eInfochips ERAGON600 Board

For more information about eInfochips ERAGON600 board, please check eInfochips website.

Download the release binaries

To install this release on a Snapdragon 600 based board, you need to download the following files:

firmware-qcom-snapdragon-20151026-139.img.gz
linaro-vivid-developer-qcom-snapdragon-20151026-139.img.gz
linaro-vivid-alip-qcom-snapdragon-20151026-139.img.gz

You also need to download the proper boot partition, based on the actual board you are using.

For the Inforce IFC6410 or IFC6410PLUS, please download:

boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img.gz

For the Compulab Utilite2, please download:

boot-qcom-apq8064-cm-qs600-qcom-snapdragon-20151026-139.img.gz

For the eInfochips ERAGON600, please download:

boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img.gz

The build id is in the form: TIMESTAMP-BUILD_NUMBER.

All images downloaded from Linaro are compressed files and need to be uncompressed first:

gunzip *.img.gz

Upgrading an already installed version of Linaro Linux release for Snapdragon 600 processor

If you are already running on your board a previous version of the Linaro Linux release for Snapdragon 600 processor, you can upgrade your current installation by following the instructions in this section.

In order to upgrade an existing release, you must ensure that you are running a previous release that is based on Ubuntu 15.04 (aka vivid), e.g. the same Ubuntu version that this release supports. If you are unsure about which version of Ubuntu you are running, you can check the corresponding Linaro Linux release notes, or you can run the following command on your board:

lsb_release -a

For now the Linaro Linux release do not support Ubuntu distro version upgrade, when that happens you need to re-install the release completely, using the instructions in the rest of these release notes. If you are running the proper version of Ubuntu, you can proceed with the upgrade.

To upgrade your current installation, three main components need to be updated:

  • the boot partition (e.g. kernel)
  • the root file system partition (e.g. user space)
  • the firmware partition

In this release (e.g. Linaro 15.10), there are no firmware changes. If you have already installed the firmware partition on your board (for example if you have flashed the image into the cache partition) then you do not have anything else to do. You can ignore the section below called Managing the proprietary firmware. We will simply reuse the cache partition as it is.

To upgrade the root file system, on the board running the Linaro Linux release, please run the following commands:

sudo apt-get update
sudo apt-get dist-upgrade

These commands will check for all possible updates, and install them all.

We now need to install the new kernel modules. You need to download on the board, the kernel debian package file from the release. This file is called:

linux-image-4.2.4-linaro-qcom_4.2.4-linaro-qcom-1_armhf.deb

On the board running the Linaro Linux release, you now need to install this debian package with:

sudo dpkg -i linux-image-4.2.4-linaro-qcom_4.2.4-linaro-qcom-1_armhf.deb

The final step until to complete the upgrade is to boot the new kernel. That requires to reboot the board into fastboot mode. You can use the standard instructions from next sections, which you have used when you installed the Linaro Linux release on your board. Of course you need to make sure to connect your board to the development host (USB for fastboot, UART for the serial console), and ensure that it is booted in fastboot mode, waiting for commands, then you can flash the images
on Inforce IFC6410 (or IFC6410PLUS) with:

sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img

on Compulab Utilite2 with:

sudo fastboot flash boot boot-qcom-apq8064-cm-qs600-qcom-snapdragon-20151026-139.img

on eInfochips ERAGON600 with:

sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img

Your system is now up-to-date, and you are running Linaro 15.10 on your development board. If you have followed all the instructions above, and you are getting any error, please report them as bugs (see Support section below).

Managing the proprietary firmware

To properly use this release, a set of proprietary firmware blobs must be acquired separately from respective board vendors. For IFC6410 (or IFC6410PLUS) firmware, use Inforce Techweb website and for eInfochips ERAGON600 firmware, use eInfochips support centre as Linaro is not redistributing them in this release.
These firmware blobs are needed for audio, power management, video and graphics support. While it is possible to boot the release without the firmware installed, it is not recommended, as various errors can occur.

The Linaro release does not contain any proprietary software and thus provides an empty firmware image. The provided firmware image is only a placeholder for users to install the firmware blobs downloaded from respective board vendor website. The empty firmware image can be flashed as per the instructions in the next sections; of course some functionality will not work without the proprietary firmware blobs. To install the firmware and get all the features of the release, you should extract the firmware from the respective BSP release, install them in the firmware image, and flash the updated firmware image as per the instructions in the next sections.

For Inforce IFC6410 (or IFC6410PLUS)

For bootloader, kernel and firmware, this release is based on Inforce IFC6410 Android BSP Rel v1.5, which you need to download from Inforce Techweb. The ZIP file Inforce-IFC6410_AndroidBSP_880160_Rel_Beta_V1.5.zip includes all the proprietary firmware blobs required to use this Ubuntu-based Linaro build.

To install the firmware blobs, first locate the file proprietary.tar.gz in the source folder after extracting the Inforce BSP release ZIP file. Then follow the next instructions on how to loop mount the empty firmware image included in the release and inject Inforce’s proprietary firmware blobs.

mkdir image
sudo mount -o loop firmware-qcom-snapdragon-20151026-139.img image
sudo tar xzf proprietary.tar.gz -C image/ --strip-components 8 proprietary/prebuilt/target/product/msm8960/system/etc/firmware/
sudo umount image
rmdir image

The firmware image firmware-ifc640-20151026-139 has been updated, and now contains all the relevant proprietary firmware blobs.

For eInfochips ERAGON600

For bootloader, kernel and firmware, this release is based on eInfochips-ERAGON600-Ubuntu-Linux-BSP-Relv1.0, which you need to download from eInfochips support centre (Coming Soon). The ZIP file firmware-eragon600-v1.0.img includes all the proprietary firmware blobs required to use this Ubuntu-based Linaro build.

To install the firmware blobs, first locate the file firmware-eragon600-v1.0.img.gz in the binaries folder after extracting the eInfochips ERAGON600 BSP release ZIP file. Then follow the next instructions to extract the firmware image.

gunzip  firmware-eragon600-v1.0.img.gz

The firmware image firmware-eragon600-v1.0.img contains all the relevant proprietary firmware blobs.

Installing the LXDE based image

Connect your board to the development host (USB for fastboot, UART for the serial console), and make sure that it is booted in fastboot mode, and waiting for commands, then you can flash the images:

for Inforce IFC6410 (or IFC6410PLUS)

sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-qcom-snapdragon-20151026-139.img

for Compulab Utilite2

sudo fastboot flash boot boot-qcom-apq8064-cm-qs600-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-qcom-snapdragon-20151026-139.img

for eInfochips ERAGON600

sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-eragon600-v1.0.img

then:

sudo fastboot flash -S 768M userdata linaro-vivid-alip-qcom-snapdragon-20151026-139.img

Note:

  • fastboot should be able to split large files automatically, but it does not work. As such, it is mandatory to add -S 768M, when flashing files larger than 768MB as a workaround.
  • the root file system must be flashed in the userdata partition, and the boot image must be flashed in the boot partition, otherwise the system will not boot.
  • the firmware image can be flashed in any partition larger than 64MB, it is recommended to use cache partition, but not strictly required.

Flashing the LXDE image takes several minutes. Be patient. You should see the following fastboot traces on the PC while flashing the image:

sudo fastboot flash -S 768M userdata linaro-vivid-alip-qcom-snapdragon-20151026-139.img
sending sparse 'userdata' (785202 KB)...
OKAY [ 55.368s]
writing 'userdata'...
OKAY [121.134s]
sending sparse 'userdata' (418516 KB)...
OKAY [ 36.508s]
writing 'userdata'...
OKAY [110.017s]
finished. total time: 323.027s

And you should see the following traces on the serial console in the meantime:

[34320] fastboot: getvar:partition-type:userdata
[34510] fastboot: download:2fecc8b4
[89870] fastboot: flash:userdata
[210990] Wrote 524288 blocks, expected to write 524288 blocks
[211020] fastboot: download:198b50a4
[247510] fastboot: flash:userdata
[357520] Wrote 524288 blocks, expected to write 524288 blocks

Do not power off the PC, or the board while flashing.

Running the LXDE based image

The LXDE based image is expected to provide a desktop-like experience, as such it is recommended to use an HDMI monitor, as well as USB keyboard and mouse.

The default bootargs embedded in the released boot image will intentionally prevent the graphical login manager (lightdm) to start, since trying to start graphical environment without the proprietary firmware installed will lead to various boot errors. To prevent lightdm from starting, the keyword systemd.unit=multi-user.target was added into the bootargs. If you have properly installed and flashed into eMMC the proprietary firmware blobs and want to use the graphical interface, you can either start the login manager from the serial console, or alternatively you can change the bootargs.

To boot to the serial console and get a root prompt, you can simply run:

sudo fastboot continue

Note: The default bootargs enable the kernel messages to be displayed on the serial console.

Once you have a root prompt on the serial console, you have a functional Ubuntu system. If you want to start the login manager to see the graphical interface on the HDMI monitor, from the serial console simply run

systemctl start ligthdm

The login manager window should appear within a few seconds, and you can log with the user linaro, using the password linaro. If you want to boot directly to the login manager, you can boot the image with different bootargs (e.g. remove the keyword systemd.unit=multi-user.target).

For Inforce IFC6410 (or IFC6410PLUS), you can run the following command:

sudo fastboot boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img -c "console=ttyMSM0,115200n8 root=/dev/disk/by-partlabel/userdata rootwait rw"

For eInfochips ERAGON600, you can run the following command:

sudo fastboot boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img -c "console=ttyMSM0,115200n8 root=/dev/disk/by-partlabel/userdata rootwait rw"

Finally, if you want to make the bootargs change persistent, you can modify the released boot image and reflash it into the boot partition:

for Infoce IFC6410 (or IFC6410PLUS)

abootimg -u boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img -c "cmdline=console=ttyMSM0,115200n8 root=/dev/disk/by-partlabel/userdata rootwait rw"
sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img

for eInfochips ERAGON600

abootimg -u boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img -c "cmdline=console=ttyMSM0,115200n8 root=/dev/disk/by-partlabel/userdata rootwait rw"
sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img

Note: abootimg is a tool to read/write/update Android boot partition, and is available in most standard Linux distribution; simply install the package using your Linux distribution methods. If you are using Ubuntu on your PC, simply run:

sudo apt-get install abootimg

Installing the Developer based image

Connect the board to the development host (USB for fastboot, UART for the serial console), and make sure that it is booted in fastboot mode, and waiting for commands, then you can flash the images:

for Inforce IFC6410 (or IFC6410PLUS)

sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-qcom-snapdragon-20151026-139.img

for Compulab Utilite2

sudo fastboot flash boot boot-qcom-apq8064-cm-qs600-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-qcom-snapdragon-20151026-139.img

for eInfochips ERAGON600

sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img
sudo fastboot flash cache firmware-eragon600-v1.0.img

then:

sudo fastboot flash -S 768M userdata linaro-vivid-developer-qcom-snapdragon-20151026-139.img

Note:

  • the root file system must be flashed in the userdata partition, and the boot image must be flashed in the boot partition, otherwise the system will not boot.
  • the firmware image can be flashed in any partition larger than 64MB, it is recommended to use cache partition, but not strictly required.

Running the Developer based image

To boot to the serial console and get a root prompt, you can simply run:

sudo fastboot continue

Note: The default bootargs enable the kernel messages to be displayed on the serial console.

Once you have a root prompt on the serial console, you have a functional Ubuntu system.

Configuring and using Bluetooth and WLAN

Firmware are required for Bluetooth and WLAN to work properly. If you have followed the instructions so far, the firmware have been installed. For both WLAN and Bluetooth appropriate mainline drivers are used, respectively ath6kl and ar3k.

WLAN should be up and running out of the box, using the releases images. If you are building your own kernel, please be aware that the WLAN driver and some mac802.11 drivers are compiled as modules, and need to be deployed into the root file system. WLAN can be configured either on the command line, or using the graphical desktop applet once the desktop is started.

For Bluetooth, it is for now not enabled by default in the image, and you need to run the following command on the root prompt to properly start and configure the Bluetooth chip:

hciattach -s 115200 /dev/ttyMSM1 ath3k 3000000

And this command will return, if everything is working properly:

Device setup complete

Finally to make sure the Bluetooth chip is configured correctly, you can run the hciconfig tool, which should return something along these lines:

hciconfig
hci0:   Type: BR/EDR  Bus: UART
BD Address: 00:3C:7F:F0:F0:0A  ACL MTU: 1021:8  SCO MTU: 124:0
UP RUNNING PSCAN
RX bytes:558 acl:0 sco:0 events:27 errors:0
TX bytes:866 acl:0 sco:0 commands:27 errors:0

You can also scan for Bluetooth devices nearby, from the command line, e.g.:

hcitool scan
Scanning ...
        BC:5F:BC:44:FB:AC       Nexus 5

If you configure the Bluetooth chip before starting the graphical desktop, then you should be able to use the Desktop Bluetooth application/applet to connect to any device and use Bluetooth functions.

Note that if you are using the developer image you might need to install the Bluez applications and librairies:

sudo apt-get update
sudo apt-get install bluez

How to get and customize the kernel source code

The Linux kernel used in this release is available via tags in the Linaro Qualcomm Landing Team git repository:

git: http://git.linaro.org/landing-teams/working/qualcomm/kernel.git
tag: ubuntu-qcom-snapdragon-15.10
defconfig: qcom_defconfig kernel/configs/distro.config

The kernel compresssed image (zImage) is located in the boot image and partition and the kernel modules are installed in the root file system. It is possible for a user to rebuild the kernel and run a custom kernel image instead of the released kernel. You can build the kernel using any recent GCC release using the git tree, tag and defconfig mentioned above. This release only supports booting with device tree, as such both the device tree blobs need to be built as well. DTBs files need to be appended to the kernel image when the booltloader do not support device tree protocol, such as on the IFC6410 (or IFC6410PLUS) and the Utilite2.

Even though it is possible to build natively, on the target board, It is recommended to build the Linux kernel on a PC development host. In which case you need to install a cross compiler for the ARM architecture. It is recommended to download the Linaro GCC cross compiler.

To build the Linux kernel, you can use the following instructions:

git clone -n http://git.linaro.org/landing-teams/working/qualcomm/kernel.git
cd kernel
git checkout -b kernel-15.10 ubuntu-qcom-snapdragon-15.10
export ARCH=arm
export CROSS_COMPILE=<path to your GCC cross compiler>/arm-linux-gnueabihf-
make qcom_defconfig distro.config
make -j4 zImage dtbs

The DTB file needs to be appended to the zImage, as such, you can run the following command to prepare an image

for the IFC6410 (or IFC6410PLUS):

cat arch/arm/boot/zImage arch/arm/boot/dts/qcom-apq8064-ifc6410.dtb  > zImage-dtb

for Compulab Utilite2:

cat arch/arm/boot/zImage arch/arm/boot/dts/qcom-apq8064-cm-qs600.dtb  > zImage-dtb

for eInfochips ERAGON600:

cat arch/arm/boot/zImage arch/arm/boot/dts/qcom-apq8064-eI_ERAGON600.dtb  > zImage-dtb

To boot a custom kernel image, you can run the following fastboot command:

sudo fastboot boot -c "console=ttyMSM0,115200,n8 root=/dev/disk/by-partlabel/userdata rootwait rw systemd.unit=multi-user.target" -b 0x80200000 zImage-dtb

If you have followed these instructions, the root file system was flashed into the userdata partition. The -c arguments represent the bootargs that will be passed to the kernel during the boot.

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

for IFC6410 (or IFC6410PLUS):

abootimg -u boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img -k zImage
sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img

for ERAGON600:

abootimg -u boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img -k zImage
sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img

How to get and customize Ubuntu packages source code

This release is based on Ubuntu 15.04 (aka vivid), and it is not possible to use a different Ubuntu release (e.g. it is not possible to downgrade to an older Ubuntu release, nor is it possible to use a newer release, such as the one being currently developed).

For more information, please refer to the Linaro wiki.

How to install the root filesystem on external storage

The root file system can be installed on SD card, external USB drive or external (m)SATA drive instead of being flashed to the eMMC. The method is to extract the content of the root file system image from the release, and copy it onto a proper partition on an SD card or USB drive, then boot the target platform with the proper root= argument in the bootargs. The root file system image file is using an Android sparse image format to optimize the file size. To convert a sparse image into a mountable raw image file, and mount it on your host, run:

simg2img linaro-vivid-alip-qcom-snapdragon-20151026-139.img linaro-vivid-alip-qcom-snapdragon-20151026-139.img.raw
mkdir rootfs
sudo mount -o loop linaro-vivid-alip-qcom-snapdragon-20151026-139.img.raw rootfs

Note that simg2img is available in most standard Linux distribution; simply install the package using your Linux distribution methods. If you are using Ubuntu on your PC, simply run sudo apt-get install android-tools-fsutils. Assuming the SD card or USB drive that should contain the root file system is properly formatted as ext4 partition and mounted on your host as /mnt/disk, you can copy the content of the image with:

cd rootfs
sudo cp -a * /mnt/disk
cd ..
sudo umount rootfs

It is very important to run the copy with admin privileges and with -a in order to preserve files ownership and permission.

The SD card or USB drive is now ready to be plugged and used on the target. For USB drive it is recommended to use externally powered USB drive or through an externally powered USB HUB. When booting with the root file system on USB drive or SD card, the boot partition from the eMMC is still being used for the kernel and initrd. As such you need to update the boot image with the new bootargs, and reflash it. If using a USB or (m)SATA drive or SD card with a single partition, the device to boot from will be either /dev/sda1 for USB drive or /dev/mmcblk1p1 for SD card. For example, for USB drive, run:

for Inforce IFC6410 (or IFC6410PLUS)

abootimg -u boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img -c "cmdline=console=ttyMSM0,115200n8 root=/dev/sda1 rootwait rw systemd.unit=multi-user.target"
sudo fastboot flash boot boot-qcom-apq8064-ifc6410-qcom-snapdragon-20151026-139.img

for eInfochips ERAGON600

abootimg -u boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img -c "cmdline=console=ttyMSM0,115200n8 root=/dev/sda1 rootwait rw systemd.unit=multi-user.target"
sudo fastboot flash boot boot-qcom-apq8064-eI_ERAGON600-qcom-snapdragon-20151026-139.img

Using X11 with modesetting video driver and GLAMOR

While not enabled by default, it is possible use evaluate X11/GLAMOR. In order to start X server with the modesetting driver, with GLAMOR support, your first need to make sure that X server is not running:

sudo systemctl stop lightdm

Then you can run the following commands to switch from freedreno video driver, to modesetting, and restart the LXDE desktop:

sudo sed -i 's/freedreno/modesetting/' /usr/share/X11/xorg.conf.d/42-freedreno.conf
sudo systemctl start lightdm

To switch back to freedreno video driver, please run:

sudo systemctl stop lightdm
sudo sed -i 's/modesetting/freedreno/' /usr/share/X11/xorg.conf.d/42-freedreno.conf
sudo systemctl start lightdm

Gstreamer video playback technology preview

An initial version of Gstreamer video decoder plugin is now available. It is not included in the image by default, and this section provides detailed information to build and use the Gstreamer plugin.

This plugin can decode MPEG4 and H264 videos, and it generates raw video using a custom NV12 tiled format. The support for this non standard raw video format has been added to upstream Gstreamer v1.4. This raw video format is depicted in details here. To render the video frames when Xorg is used, it is recommended to use the Gstreamer plugin glimagesink which uses the GPU for scaling and color conversion, instead of the CPU.

In order to install all the required Gstreamer dependencies on your board, please run the following commands:

sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad

If you are running the developer image, you need to install the following additional packages:

sudo apt-get install xserver-xorg xserver-xorg-video-freedreno gstreamer1.0-plugins-good

Also, to use video acceleration, a specific kernel must be used for now. Hence you need to download, install and boot the kernel from the Linaro 14.10 release:

On the board running the current release, you need to run the following commands:

cd /tmp
wget http://releases.linaro.org/14.10/ubuntu/ifc6410/linux-image-3.4.0-linaro-ifc6410_3.4.0-linaro-ifc6410-1_armhf.deb
dpkg -x linux-image-3.4.0-linaro-ifc6410_3.4.0-linaro-ifc6410-1_armhf.deb linaro_14.10
cp -a linaro_14.10/lib/modules/3.4.0-linaro-ifc6410/ /lib/modules

On your PC, download the following file:

wget http://releases.linaro.org/14.10/ubuntu/ifc6410/boot-ifc6410-20141024-37.img.gz
gunzip boot-ifc6410-20141024-37.img.gz

Finally, you need to reboot the board, and boot with the Linaro 14.10 kernel, you just downloaded, e.g. on your PC:

sudo fastboot boot boot-ifc6410-20141024-37.img

You now need to rebuild the plugin from source, you can fetch the source code, and rebuild on your board directly:

sudo apt-get install build-essential git autotools-dev autoconf libtool libdrm-dev libgstreamer-plugins-base1.0-dev
git clone http://git.linaro.org/landing-teams/working/qualcomm/gst-plugin-qcvideo.git
cd gst-plugin-qcvideo/
./autogen.sh
make
sudo make install

Once the plugin is installed and the board booted with the 3.4 kernel from Linaro 14.10, you can use the plugin:

export DISPLAY=:0
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0/
X&
gst-launch-1.0 playbin uri=http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi

Note that depending on your network bandwidth, it is probably better to download the video file and play it locally.

If you are running the desktop image, you can also login with the linaro user, and from the terminal console, you can run:

gst-launch-1.0 playbin uri=http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi

To print the plugin debug messages you can use the standard Gstreamer debug infrastructure:

export GST_DEBUG=qcvideodec:5
gst-launch-1.0 playbin uri=http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi

If you want to generate a test pattern using the custom NV12 tiled format, and render it, you can run:

gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12_64Z32,width=1280,height=720 ! videoconvert ! glimagesink

Firefox is using Gstreamer as its main media framework, as a consequence, if you try to open a web page with HTML video, such as Video.js:“http://www.videojs.com/”, then the video will be decoded using hardware acceleration. If GST_DEBUG is set before you start Firefox, you will be able to see the plugin debug messages in the terminal.

Known issues and limitations

  • WLAN might not work properly. There is a race condition during the boot, and wlan might not work properly, there are 2 workarounds for now:
    • at boot, before starting the desktop interface, run: modprobe -r ath6kl_sdio, then modprobe ath6kl_sdio. That needs to be done at each boot
    • for a more permanent workaround, run the following commands:
sudo mkdir /mnt
sudo mount /dev/disk/by-partlabel/userdata /mnt
sudo cp -a /lib/firmware/* /mnt/lib/firmware/
sudo umount /mnt
reboot
  • Some software codecs might not be installed by default; you might install additional codecs such as gstreamer1.0-plugins-ugly.
  • Once you have flashed the boot partition with a valid boot image, the board will automatically boot that image when powered on. To avoid automatically booting you can jumper the board as explained in this page for IFC6410 (or IFC6410PLUS). To boot the ERAGON600 board in fastboot mode, please refer section 7.4.2 Fastboot mode on Software Reference Manual at eInfochips support centre. If you cannot use this method and still needs to reboot into fastboot mode, you can erase the boot partition on a running target using the following command sudo cat /dev/zero > /dev/disk/by-partlabel/boot

Feedback and Support

For general question or support request, please use:

For any bug related to the Linaro Member Build, please submit issues to the Linaro bug tracking system. To submit a bug, select “File a Bug”, then Product: “Qualcomm LT”, or simply 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).


Qualcomm Snapdragon is product of Qualcomm Technologies, Inc.