Quantcast
Channel: Boundary Devices
Viewing all 391 articles
Browse latest View live

Update Factory for i.MX platforms

$
0
0

Our partner Kynetics released an OTA update solution for IoT platforms named Update Factory.

Update Factory

This solution leverages SWUpdate, which we talked about in a previous post, using its Suricatta feature to connect to a nice and easy-to-use web interface to manage all your devices.

For the impatient

If you want to test a pre-built image for our Nitrogen platforms, you simply need to register to the following website:

You will then receive a Yocto-based image file as well as some credentials to login to the management website.

The only setting required is to update /etc/swupdate/swupdate.cfg to match your website tenant ID.

Update Factory architecture

For those interested in details about the architecture, we invite you to watch Diego Rondini’s presentation during last Embedded Linux Conference Europe:

Note that the slides associated to this presentation are also freely accessible:

Although the video includes a nice demo towards the end, the next section will cover a simple update use-case.

Update Factory demo

This section will show the different steps required to apply an update on your platform using the pre-built image provided by Kynetics.

First, when you log in the Update Factory website, you will see a list of devices that are up and running.

uf-demo-1

You can see above that each platform is distinguished based on its MAC address since it is a unique number.

Also, in the Distributions tab, there is one Test distro update package which was uploaded beforehand.

If you drag & drop that package onto the device listed, a pop-up will appear which allows you to assign that update to the device (notice the Forced parameter).

uf-demo-2

Once the assignment is done, the package is uploaded to the platform and the update process starts.

Note that the pre-built image is based on Yocto and is using a Single-Copy scheme but the same mechanism can also apply to a Double-Copy scheme.

Also, in order for Forced updates to be automatically applied, you need to export a variable in /etc/swupdate/update.env as it isn’t the default setting:

export UPDATE_FORCED=true

Just like the rest of the update process, it is all explained in the documentation.

uf-demo-3

At this point, the website is waiting for the platform to be done with the update process, whether it worked or failed, to show its final status.

uf-demo-4

In the above, you can see that the device was properly updated and is now running the Test distro v1.0.

For those who prefer to see that same mechanism in video, Kynetics also prepared one for you:

The above is the simplest example provided by this solution, but the tool offers:

  • Target filtering, to separate platforms from different countries for instance
  • Planned updates, to have updates happen during the night or week-end for instance
  • Rollout groups, to have updates happening in a known order

The next section will give pointers for you to explore those different features.

Going Further

We recommend reading the nicely written documentation:

It includes, for instance, a section on how to create an update manually.

Also, a set of videos are available to help understanding and mastering the web interface:

If you want to dig into the source code, Kynetics shares their Yocto layer on Github:

Finally, the above article is oriented towards Yocto, but Update Factory can also be used with Android and can surely be adapted to other OSes.

 

As usual, feel free to share your experience/remarks in the comment section below.

The post Update Factory for i.MX platforms appeared first on Boundary Devices.


Join Us at the Connected Devices Expo 2017

$
0
0

Join us at the Connected Devices Expo 2017

 

 

Boundary Devices will be at the Connected Devices Expo in Costa Mesa,CA on Wednesday December 6th. Arrow Electronics, Inc is hosting over 50 of the top IoT manufacturers and service providers who will show you how to incorporate IoT technology into your business strategy to gain a competitive advantage. Boundry Devices is proud to be a sponsor of this event, and will be on-site to demo products and answer any technical questions you might have.

The event will end with a Happy Hour/Arrow Solutions and Supplier Showcase where you can see live demos and win prizes. Food will be available and there will be a raffle with prizes such as Apple Watch, Garman Vivofit, Fitbit, Headphones, and much more!

Registration for the event is FREE and provides you access to over 30 classes and lunch.  You can view the agenda and register by clicking the button below. We hope to see you there.

Register Here

The post Join Us at the Connected Devices Expo 2017 appeared first on Boundary Devices.

i.MX Linux kernel 4.9 for Nitrogen platforms

$
0
0

We’re glad to release a new i.MX Linux kernel 4.9.x based on imx_4.9.11_1.0.0_ga branch for all our platforms:

Tux Linux

What’s new?

This Linux kernel 4.9.x contains the same features as the previous 4.1.15 kernel, the rest of the new features can be found on NXP Release Notes:

  • GPU driver upgraded to Vivante v6.2.2.p0
  • Updated drivers (connectivity + multimedia)

Each kernel update implies that it takes advantage of the latest drivers, frameworks and security updates listed here:

Most importantly, following the lead of the community-base linux-fslc, we will now merge all the stable security updates to the tree.

Why? Well it is the best way to provide the most secure and safe kernel to customers.

For those unfamiliar with the kernel stable releases, we strongly recommend looking at this presentation:

That is why our branch is called 4.9.x, as of this writing the branch includes the security patches from kernel 4.9.74.

Finally, this release has gone under a lot of testing in order to make sure all our patches from 4.1.15_2.0.0 branch have been ported successfully.

Build instructions

Here is a summary of the commands to build the kernel and its modules:

~/$ git clone https://github.com/boundarydevices/linux-imx6.git
~/$ cd linux-imx6
~/linux-imx6$ export ARCH=arm
~/linux-imx6$ export CROSS_COMPILE=arm-linux-gnueabihf-
~/linux-imx6$ git checkout boundary-imx_4.9.x_1.0.0_ga
~/linux-imx6$ make boundary_defconfig
~/linux-imx6$ make zImage modules dtbs -j8
If you wish to use this build of the kernel on Ubuntu/Debian images, please make sure to read the following article:

OS releases

Yocto

The meta-freescale-3rdparty layer master and rocko branches will be updated soon.

Our patch to add the support can be found here if you are impatient to try it out:

New rocko images will be created when the patch is merged upstream.

Debian

Latest Stretch release has new images that includes this new kernel and all the latest NXP packages:

Ubuntu

Only next release of Ubuntu (18.04, next spring) will include this 4.9 kernel. 

Buildroot

Our Nitrogen configurations have been updated on Buildroot and will be included in the 2018.02 release.

Also note that our Buildroot external layer is also ready to build 4.9 images with latest graphics:

New pre-built images will be created when 2018.02 version is officially released.

 

As always, let us know your experiences (both good and bad) when you test out this kernel.

The post i.MX Linux kernel 4.9 for Nitrogen platforms appeared first on Boundary Devices.

Android Tools Windows Support for Nitrogen Platforms

$
0
0

Android DeveloperMany topics in our Android Getting Started Guide rely on Android Tools such as ADB for application debugging or Fastboot for image flashing.

Unfortunately, the guide assumed that the user was using a Linux distribution for all the commands involving Android Tools.

This post is to assist all of our customers who are using Windows but still want to utilize those tools.

Android Tools installation

There are 2 steps required to be able to use the Android Tools in Windows:

  1. Download and install the Google Platform Tools
  2. Download and install a modified Google USB driver

Google Platform Tools

First you need to download the latest Platform Tools that Google provides:

Once downloaded, you can extract the archive to the path of your choosing, for this blog it will be located inside C:\android\platform-tools.

At this point, you should be able launch the commands already:

C:\android\platform-tools> adb devices
List of devices attached
 

You can see above that no device is attached and/or recognized by the tool, that is because Windows now needs a driver to recognize the Nitrogen platform as an Android device.

One last note before installing that driver, if you don’t want to enter the full path of each tool in command line, you should add their path to the PATH system variable:

Google USB Driver

This part is the most complicated due to the fact that our platform doesn’t expose itself with a Google PID over USB.

Instead we are using the following IDs; 0x0525:0xA4A5. What it means is that the default Google USB will not recognize our Nitrogen platform as an Android one.

To overcome that issue, we had to modify the driver android_winusb.inf file, which therefore breaks the signature of the driver.

The original and up-to-date Google USB driver can be found here:

The above driver requires the modified inf file is available on our server:

To ease the process, we also provide a driver archive which already includes the modified inf file.

Once you have downloaded the driver, you simply need to extract it.

Then you can connect your board (either when it is in Fastboot or ADB mode), the system should be unable to find a proper driver for it.

At this point you need to go to the Windows Device Manager, click on the unrecognized device and select “Update Driver Software…” followed by “Browse my computer for driver software“.

Select the extracted folder as the driver path which will give you a warning due to the fact our modified inf file breaks the driver signature. Please discard that warning

Then you should have the device properly recognized as an “Android Device“.

             

Using the Android Tools

Fastboot

If not already done, start Fastboot mode from U-Boot by issuing:

=> fastboot 0

Then in Windows you flash any image you want as specified in our Android guide.

We even recently added a flash_fastboot.bat Windows script to ease the flashing process.

ADB

Same goes for ADB, all the commands used in our Android guide still apply here. You can check all the commands available:

As always, let us know your experiences (both good and bad) when you test this out.

The post Android Tools Windows Support for Nitrogen Platforms appeared first on Boundary Devices.

Hydrogen 7″ Power over Ethernet POE Touch Computer For Digital Signage and Access Control

$
0
0

The Hydrogen 7″ Power over Ethernet Touch Computer is an ideal device for digital signage and access control.By utilizing a single CAT5 cable, the Hydrogen 7″ will receive both data and power saving a bundle on installation costs. In this video, you will see the “in-wall” mounting option, but many others are available. With the combination of the touch screen, RFID reader or other input device, the Hydrogen becomes a powerful access control device.

The post Hydrogen 7″ Power over Ethernet POE Touch Computer For Digital Signage and Access Control appeared first on Boundary Devices.

IMX53 Board running QT in Linux on a 15″ AUO Panel – Power over Ethernet

Nitrogen6X running Power over Ethernet POE i.mx6 demo

$
0
0

This is a demo of the Nitrogen6X board driving a 7″ 1024×600 display with capacitive touch all powered by a POE injector. Power over Ethernet capability can be very advantageous in many digital signage applications. The Nitrogen6X board is based on the i.mx6 processor from Freescale and has a wide variety of functionality. This demo is running TimeSys Linux, but the board also supports QNX and Android 4.0 ICS. This is a demo of Boundary Devices Nitrogen6X_SOM module which is based on the multi-core ARM Cortex A9 i.mx6 processor from Freescale. The board is running a QNX demo with QT and Storyboard Suite from Crank Software. The display is a 7″ 800×480 TTL display.

The post Nitrogen6X running Power over Ethernet POE i.mx6 demo appeared first on Boundary Devices.

i.MX6 based Nitrogen6X_SOM running QNX

$
0
0

This is a demo of Boundary Devices Nitrogen6X_SOM module which is based on the multi-core ARM Cortex A9 i.mx6 processor from Freescale. The board is running a QNX demo with QT and Storyboard Suite from Crank Software. The display is a 7″ 800×480 TTL display.

The post i.MX6 based Nitrogen6X_SOM running QNX appeared first on Boundary Devices.


i.MX6 board running Android 4.0 ICS – Nitrogen6X

$
0
0

This is a demo of the Nitrogen6X running Android 4.0 Ice Cream Sandwich on an HDMI monitor. The Nitrogen6X features a multi-core ARM Cortex A9 i.MX6 processor from Freescale. The demo has a 5MP OV5642 camera integrated. The Nitrogen6X is a single board computer that can be used for development systems, or can be taken to market and used as a stand alone board.

The post i.MX6 board running Android 4.0 ICS – Nitrogen6X appeared first on Boundary Devices.

Debian Stretch 9.2 for i.MX6/7 boards – October 2017 (kernel 4.1.15/4.9.x)

$
0
0

 

Debian Stretch 9.2 – XFCE4 Desktop

As it happens every other year, Debian released a new version of its distribution named Stretch. We are glad to offer new images for i.MX6/7 boards with the current 4.1.15 kernel.

As earlier, we used XFCE4 desktop since it offers the best trade-off speed/size for Debian GUI desktop environment. As usual, a console image is also available for those who don’t need a GUI desktop.

This time we also created an other GUI desktop image without the demo applications.

These systems contain NXP/Freescale licensed content, so you will need to register on our web-site and log in before you can accept the license agreement and download the images from here:

Update#1 :

Important !

Before installing this image please check your U-Boot version. The 4.1.15/4.9.x kernel requires U-Boot version 2015.07 or higher, U-Boot version 2017.07 is recommended. You can find the bootscript in the /boot subdirectory now, its named boot.scr . The partition labels are set if you use dd or ddrescue to create the disk. If you use your own method please check the boot partition labels, because the fstab boots by label (LABEL=sys-16h for example) now. You can use ext2label to modify partition label.

Programming the image

The image is a slightly-less-than-4GiB image file containing the partition table.  Inspired by ubuntu-mate.org, I changed over from dd to another disk copy program called ddrescue. It is a much more talkative program, although dd does do it’s job honestly. I don’t like mute programs, you never know whats happening in a given moment. For example, if you want to create an SD card for a console image, you need to do the following :

$ sudo apt-get install gddrescue xz-utils util-linux
$ gunzip 20171018-nitrogen-4.1.15_2.0.0_ga-stretch-en_US-devcon_armhf.img.gz
$ sudo ddrescue -D --force 20171018-nitrogen-4.1.15_2.0.0_ga-stretch-en_US-devcon_armhf.img /dev/sdX

You have to replace sdX with your actual SDHC reader/writer device. Use the lsblk command to check it.

Type lsblk with unplugged SDHC reader, then insert the device, and type lsblk again. A new node will be added , that is your SDHC reader/writer device.

Usernames and passwords

Two users are defined for use on the system: debian and root. The password for each is Boundary (capital B).

An ssh server is configured on the system, though it does not allow password-based authentication for user root.

User debian has sudo privileges, so you can place your ssh public key (normally $HOME/.ssh/id_rsa.pub) to the system like so :

debian@nitrogen:~$ sudo mkdir /root/.ssh
[sudo] password for debian:
debian@nitrogen:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/auth*
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/

What’s supported

Since the images above include our stable 4.1.15 kernel, essentially everything is supported including :

  • Vivante GPU accelerations
  • C&M VPU accelerations
  • Wi-Fi and Bluetooth modules for Tiwi-BLE, BD_BCOM, BD-SDMAC
  • All kind of storage devices , SDHC card, eMMC, SATA hdd, USB pen sticks, cell modems
  • All of our supported touch panels
  • IMX Capture devices including OV56xx parallel and mipi cameras, Toshiba BD-HDMI-MIPI converter, UVC cameras
  • It supports i.MX6Q/DL/SX and i.MX7D board’s BSP

The packaging (inluding kernel) is done in the normal debian way, so apt-get update/dist-upgrade will keep your image up and running the latest as patches come out.

What’s new in this release

  • The Linux kernel was upgraded to 4.1.15 ( meta-package name: linux-boundary-12s )
  • GPU driver was upgraded to Vivante 6.2.2p0 ( meta-package name: imx-gpu-viv-s13-… ).
  • The module galcore (CONFIG_MXC_GPU_VIV) was removed from the kernel, and it’s an externally built module. This change makes the graphics system modular, and more upgradeable, at the price of longer kernel upgrading time. Upgrading kernel takes about 3-4 minutes now, instead of 30 seconds, because every kernel upgrade rebuilds the galcore driver from sources, because its a DKMS module.
  • The package gstreamer-imx was upgraded to 0.12.3-5
  • The new NXP/Vivante GPU SDK was added : imx-gpu-sdk 4.0.2 . You can get the source with the usual apt-get source command. This is a brand new SDK with many new demos, for example OpenCL, OpenVG,G2D, and for OpenVX and Vulkan, but those demos will be supported only by the i.MX8 SoC.
  • The distribution was upgraded to Stretch 9.2 . Here are some main component versions :
    • Xorg server 1.19.2
    • gstreamer1.0 1.10.4
    • bluez 5.43
    • Qt5 5.7.1
    • apt 1.4.8
    • chromium 59.0.3071.86-1
    • dpkg 1.18.24
    • gcc/g++ 6.3.0
    • firefox-esr 52.2.0esr
    • libwayland 1.12.0
    • weston 1.11.0-1
    • XFCE Desktop Environment 4.12.3
  • The desktop icon structure is similar to Ubuntu now, the demo icons are grouped in the same way.
  • Silex WiFi / Bluetooth is now supported in Stretch also, not only in Xenial and Jessie.

 


Let’s see some interesting new demos,  this is a screen of the imx-gpu-sdk OpenGLESv2 Blur demo, a spinning bubble with environment mapping:

IMX GPU SDK 2.2.2 Gaussian Blur demo

IMX GPU SDK 4.0.2 Gaussian Blur demo

You can find many other interesting samples and framework in the SDK, including GLESv2, GLESv3, OpenCL, OpenVG.


This Qt5  Qml demo below shows how to apply various effects on a running video stream, using GPU shaders :

Qt 5.7.1 Cinematic Experience demo

Qt 5.7.1 Cinematic Experience demo

You can apply various effects on a playing video and/or recording camera screen . Source is available.


Chromium browser now supports WebGL. This is an example from the web:

Chromium WebGL demo

Chromium WebGL demo

 

GPU development libraries

The package imx-gpu-viv-s13-dev ( development headers and libraries for OpenGL / ESv2 / ESv3 / Khronos / OpenVG / OpenCL /G2D ) is installed by default. You have to set the headers path, before any other headers, or you might include the mesa headers first, and you don’t want to do that. For example :

export CFLAGS="-I/usr/include/vivante ${CFLAGS}"

and you have to set the library path as well :

export LDFLAGS="-L/usr/lib/arm-linux-gnueabihf/vivante ${LDFLAGS}"

Alternatively you can use the much more precise pkg-config way, in the makefile. Setting the flags in case of X11 system :

PKG_CONFIG_PATH = /usr/lib/arm-linux-gnueabihf/vivante/pkgconfig

EGL :

CFLAGS += $(shell pkg-config --cflags egl_x11)

LDFLAGS += $(shell pkg-config --libs egl_x11)

GLESv1 :

CFLAGS += $(shell pkg-config --cflags glesv1_cm_x11)

LDFLAGS += $(shell pkg-config --libs glesv1_cm_x11)

GLESv2 :

CFLAGS += $(shell pkg-config --cflags glesv2_x11)

LDFLAGS += $(shell pkg-config --libs glesv2_x11)

OpenVG :

CFLAGS += $(shell pkg-config --cflags vg_x11)

LDFLAGS += $(shell pkg-config --libs vg_x11)

In case of FB backend change the _x11 postfix above to _fb, thats all.

OpenCL is the same at both fb and x11 :

CFLAGS += $(shell pkg-config --cflags opencl)

LDFLAGS += $(shell pkg-config --libs opencl)

Check the directory /usr/lib/arm-linux-gnueabihf/vivante/pkgconfig for more information


 

As always, please give us some feedback and let us know how things work for you.

The post Debian Stretch 9.2 for i.MX6/7 boards – October 2017 (kernel 4.1.15/4.9.x) appeared first on Boundary Devices.

Update Factory for i.MX platforms

$
0
0

Our partner Kynetics released an OTA update solution for IoT platforms named Update Factory.

Update Factory

This solution leverages SWUpdate, which we talked about in a previous post, using its Suricatta feature to connect to a nice and easy-to-use web interface to manage all your devices.

For the impatient

If you want to test a pre-built image for our Nitrogen platforms, you simply need to register to the following website:

You will then receive a Yocto-based image file as well as some credentials to login to the management website.

The only setting required is to update /etc/swupdate/swupdate.cfg to match your website tenant ID.

Update Factory architecture

For those interested in details about the architecture, we invite you to watch Diego Rondini’s presentation during last Embedded Linux Conference Europe:

Note that the slides associated to this presentation are also freely accessible:

Although the video includes a nice demo towards the end, the next section will cover a simple update use-case.

Update Factory demo

This section will show the different steps required to apply an update on your platform using the pre-built image provided by Kynetics.

First, when you log in the Update Factory website, you will see a list of devices that are up and running.

uf-demo-1

You can see above that each platform is distinguished based on its MAC address since it is a unique number.

Also, in the Distributions tab, there is one Test distro update package which was uploaded beforehand.

If you drag & drop that package onto the device listed, a pop-up will appear which allows you to assign that update to the device (notice the Forced parameter).

uf-demo-2

Once the assignment is done, the package is uploaded to the platform and the update process starts.

Note that the pre-built image is based on Yocto and is using a Single-Copy scheme but the same mechanism can also apply to a Double-Copy scheme.

Also, in order for Forced updates to be automatically applied, you need to export a variable in /etc/swupdate/update.env as it isn’t the default setting:

export UPDATE_FORCED=true

Just like the rest of the update process, it is all explained in the documentation.

uf-demo-3

At this point, the website is waiting for the platform to be done with the update process, whether it worked or failed, to show its final status.

uf-demo-4

In the above, you can see that the device was properly updated and is now running the Test distro v1.0.

For those who prefer to see that same mechanism in video, Kynetics also prepared one for you:

The above is the simplest example provided by this solution, but the tool offers:

  • Target filtering, to separate platforms from different countries for instance
  • Planned updates, to have updates happen during the night or week-end for instance
  • Rollout groups, to have updates happening in a known order

The next section will give pointers for you to explore those different features.

Going Further

We recommend reading the nicely written documentation:

It includes, for instance, a section on how to create an update manually.

Also, a set of videos are available to help understanding and mastering the web interface:

If you want to dig into the source code, Kynetics shares their Yocto layer on Github:

Finally, the above article is oriented towards Yocto, but Update Factory can also be used with Android and can surely be adapted to other OSes.

 

As usual, feel free to share your experience/remarks in the comment section below.

The post Update Factory for i.MX platforms appeared first on Boundary Devices.

Join Us at the Connected Devices Expo 2017

$
0
0

Join us at the Connected Devices Expo 2017

 

 

Boundary Devices will be at the Connected Devices Expo in Costa Mesa,CA on Wednesday December 6th. Arrow Electronics, Inc is hosting over 50 of the top IoT manufacturers and service providers who will show you how to incorporate IoT technology into your business strategy to gain a competitive advantage. Boundry Devices is proud to be a sponsor of this event, and will be on-site to demo products and answer any technical questions you might have.

The event will end with a Happy Hour/Arrow Solutions and Supplier Showcase where you can see live demos and win prizes. Food will be available and there will be a raffle with prizes such as Apple Watch, Garman Vivofit, Fitbit, Headphones, and much more!

Registration for the event is FREE and provides you access to over 30 classes and lunch.  You can view the agenda and register by clicking the button below. We hope to see you there.

Register Here

The post Join Us at the Connected Devices Expo 2017 appeared first on Boundary Devices.

i.MX Linux kernel 4.9 for Nitrogen platforms

$
0
0

We’re glad to release a new i.MX Linux kernel 4.9.x based on imx_4.9.11_1.0.0_ga branch for all our platforms:

Tux Linux

What’s new?

This Linux kernel 4.9.x contains the same features as the previous 4.1.15 kernel, the rest of the new features can be found on NXP Release Notes:

  • GPU driver upgraded to Vivante v6.2.2.p0
  • Updated drivers (connectivity + multimedia)

Each kernel update implies that it takes advantage of the latest drivers, frameworks and security updates listed here:

Most importantly, following the lead of the community-base linux-fslc, we will now merge all the stable security updates to the tree.

Why? Well it is the best way to provide the most secure and safe kernel to customers.

For those unfamiliar with the kernel stable releases, we strongly recommend looking at this presentation:

That is why our branch is called 4.9.x, as of this writing the branch includes the security patches from kernel 4.9.74.

Finally, this release has gone under a lot of testing in order to make sure all our patches from 4.1.15_2.0.0 branch have been ported successfully.

Build instructions

Here is a summary of the commands to build the kernel and its modules:

~/$ git clone https://github.com/boundarydevices/linux-imx6.git
~/$ cd linux-imx6
~/linux-imx6$ export ARCH=arm
~/linux-imx6$ export CROSS_COMPILE=arm-linux-gnueabihf-
~/linux-imx6$ git checkout boundary-imx_4.9.x_1.0.0_ga
~/linux-imx6$ make boundary_defconfig
~/linux-imx6$ make zImage modules dtbs -j8
If you wish to use this build of the kernel on Ubuntu/Debian images, please make sure to read the following article:

OS releases

Yocto

The meta-freescale-3rdparty layer master branch has been updated.

The new 4.9 kernel and graphics v6.x are intended to be released in next Yocto Sumo release (April 2018).

Debian

Latest Stretch release has new images that includes this new kernel and all the latest NXP packages:

Ubuntu

Only next release of Ubuntu (18.04, next spring) will include this 4.9 kernel. 

Buildroot

Our Nitrogen configurations have been updated on Buildroot and will be included in the 2018.02 release.

Also note that our Buildroot external layer is also ready to build 4.9 images with latest graphics:

New pre-built images will be created when 2018.02 version is officially released.

 

As always, let us know your experiences (both good and bad) when you test out this kernel.

The post i.MX Linux kernel 4.9 for Nitrogen platforms appeared first on Boundary Devices.

Android Tools Windows Support for Nitrogen Platforms

$
0
0

Android DeveloperMany topics in our Android Getting Started Guide rely on Android Tools such as ADB for application debugging or Fastboot for image flashing.

Unfortunately, the guide assumed that the user was using a Linux distribution for all the commands involving Android Tools.

This post is to assist all of our customers who are using Windows but still want to utilize those tools.

Android Tools installation

There are 2 steps required to be able to use the Android Tools in Windows:

  1. Download and install the Google Platform Tools
  2. Download and install a modified Google USB driver

Google Platform Tools

First you need to download the latest Platform Tools that Google provides:

Once downloaded, you can extract the archive to the path of your choosing, for this blog it will be located inside C:\android\platform-tools.

At this point, you should be able launch the commands already:

C:\android\platform-tools> adb devices
List of devices attached
 

You can see above that no device is attached and/or recognized by the tool, that is because Windows now needs a driver to recognize the Nitrogen platform as an Android device.

One last note before installing that driver, if you don’t want to enter the full path of each tool in command line, you should add their path to the PATH system variable:

Google USB Driver

This part is the most complicated due to the fact that our platform doesn’t expose itself with a Google PID over USB.

Instead we are using the following IDs; 0x0525:0xA4A5. What it means is that the default Google USB will not recognize our Nitrogen platform as an Android one.

To overcome that issue, we had to modify the driver android_winusb.inf file, which therefore breaks the signature of the driver.

The original and up-to-date Google USB driver can be found here:

The above driver requires the modified inf file is available on our server:

To ease the process, we also provide a driver archive which already includes the modified inf file.

Once you have downloaded the driver, you simply need to extract it.

Then you can connect your board (either when it is in Fastboot or ADB mode), the system should be unable to find a proper driver for it.

At this point you need to go to the Windows Device Manager, click on the unrecognized device and select “Update Driver Software…” followed by “Browse my computer for driver software“.

Select the extracted folder as the driver path which will give you a warning due to the fact our modified inf file breaks the driver signature. Please discard that warning

Then you should have the device properly recognized as an “Android Device“.

             

Using the Android Tools

Fastboot

If not already done, start Fastboot mode from U-Boot by issuing:

=> fastboot 0

Then in Windows you flash any image you want as specified in our Android guide.

We even recently added a flash_fastboot.bat Windows script to ease the flashing process.

ADB

Same goes for ADB, all the commands used in our Android guide still apply here. You can check all the commands available:

As always, let us know your experiences (both good and bad) when you test this out.

The post Android Tools Windows Support for Nitrogen Platforms appeared first on Boundary Devices.

Hydrogen 7″ Power over Ethernet POE Touch Computer For Digital Signage and Access Control

$
0
0

The Hydrogen 7″ Power over Ethernet Touch Computer is an ideal device for digital signage and access control.By utilizing a single CAT5 cable, the Hydrogen 7″ will receive both data and power saving a bundle on installation costs. In this video, you will see the “in-wall” mounting option, but many others are available. With the combination of the touch screen, RFID reader or other input device, the Hydrogen becomes a powerful access control device.

The post Hydrogen 7″ Power over Ethernet POE Touch Computer For Digital Signage and Access Control appeared first on Boundary Devices.


IMX53 Board running QT in Linux on a 15″ AUO Panel – Power over Ethernet

Nitrogen6X running Power over Ethernet POE i.mx6 demo

$
0
0

This is a demo of the Nitrogen6X board driving a 7″ 1024×600 display with capacitive touch all powered by a POE injector. Power over Ethernet capability can be very advantageous in many digital signage applications. The Nitrogen6X board is based on the i.mx6 processor from Freescale and has a wide variety of functionality. This demo is running TimeSys Linux, but the board also supports QNX and Android 4.0 ICS. This is a demo of Boundary Devices Nitrogen6X_SOM module which is based on the multi-core ARM Cortex A9 i.mx6 processor from Freescale. The board is running a QNX demo with QT and Storyboard Suite from Crank Software. The display is a 7″ 800×480 TTL display.

The post Nitrogen6X running Power over Ethernet POE i.mx6 demo appeared first on Boundary Devices.

i.MX6 based Nitrogen6X_SOM running QNX

$
0
0

This is a demo of Boundary Devices Nitrogen6X_SOM module which is based on the multi-core ARM Cortex A9 i.mx6 processor from Freescale. The board is running a QNX demo with QT and Storyboard Suite from Crank Software. The display is a 7″ 800×480 TTL display.

The post i.MX6 based Nitrogen6X_SOM running QNX appeared first on Boundary Devices.

i.MX6 board running Android 4.0 ICS – Nitrogen6X

$
0
0

This is a demo of the Nitrogen6X running Android 4.0 Ice Cream Sandwich on an HDMI monitor. The Nitrogen6X features a multi-core ARM Cortex A9 i.MX6 processor from Freescale. The demo has a 5MP OV5642 camera integrated. The Nitrogen6X is a single board computer that can be used for development systems, or can be taken to market and used as a stand alone board.

The post i.MX6 board running Android 4.0 ICS – Nitrogen6X appeared first on Boundary Devices.

Debian Stretch 9.2 for i.MX6/7 boards – October 2017 (kernel 4.1.15/4.9.x)

$
0
0

 

Debian Stretch 9.2 – XFCE4 Desktop

As it happens every other year, Debian released a new version of its distribution named Stretch. We are glad to offer new images for i.MX6/7 boards with the current 4.1.15 kernel.

As earlier, we used XFCE4 desktop since it offers the best trade-off speed/size for Debian GUI desktop environment. As usual, a console image is also available for those who don’t need a GUI desktop.

This time we also created an other GUI desktop image without the demo applications.

These systems contain NXP/Freescale licensed content, so you will need to register on our web-site and log in before you can accept the license agreement and download the images from here:

Update#1 :

Important !

Before installing this image please check your U-Boot version. The 4.1.15/4.9.x kernel requires U-Boot version 2015.07 or higher, U-Boot version 2017.07 is recommended. You can find the bootscript in the /boot subdirectory now, its named boot.scr . The partition labels are set if you use dd or ddrescue to create the disk. If you use your own method please check the boot partition labels, because the fstab boots by label (LABEL=sys-16h for example) now. You can use ext2label to modify partition label.

Programming the image

The image is a slightly-less-than-4GiB image file containing the partition table.  Inspired by ubuntu-mate.org, I changed over from dd to another disk copy program called ddrescue. It is a much more talkative program, although dd does do it’s job honestly. I don’t like mute programs, you never know whats happening in a given moment. For example, if you want to create an SD card for a console image, you need to do the following :

$ sudo apt-get install gddrescue xz-utils util-linux
$ gunzip 20171018-nitrogen-4.1.15_2.0.0_ga-stretch-en_US-devcon_armhf.img.gz
$ sudo ddrescue -D --force 20171018-nitrogen-4.1.15_2.0.0_ga-stretch-en_US-devcon_armhf.img /dev/sdX

You have to replace sdX with your actual SDHC reader/writer device. Use the lsblk command to check it.

Type lsblk with unplugged SDHC reader, then insert the device, and type lsblk again. A new node will be added , that is your SDHC reader/writer device.

Usernames and passwords

Two users are defined for use on the system: debian and root. The password for each is Boundary (capital B).

An ssh server is configured on the system, though it does not allow password-based authentication for user root.

User debian has sudo privileges, so you can place your ssh public key (normally $HOME/.ssh/id_rsa.pub) to the system like so :

debian@nitrogen:~$ sudo mkdir /root/.ssh
[sudo] password for debian:
debian@nitrogen:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/auth*
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/

What’s supported

Since the images above include our stable 4.1.15 kernel, essentially everything is supported including :

  • Vivante GPU accelerations
  • C&M VPU accelerations
  • Wi-Fi and Bluetooth modules for Tiwi-BLE, BD_BCOM, BD-SDMAC
  • All kind of storage devices , SDHC card, eMMC, SATA hdd, USB pen sticks, cell modems
  • All of our supported touch panels
  • IMX Capture devices including OV56xx parallel and mipi cameras, Toshiba BD-HDMI-MIPI converter, UVC cameras
  • It supports i.MX6Q/DL/SX and i.MX7D board’s BSP

The packaging (inluding kernel) is done in the normal debian way, so apt-get update/dist-upgrade will keep your image up and running the latest as patches come out.

What’s new in this release

  • The Linux kernel was upgraded to 4.1.15 ( meta-package name: linux-boundary-12s )
  • GPU driver was upgraded to Vivante 6.2.2p0 ( meta-package name: imx-gpu-viv-s13-… ).
  • The module galcore (CONFIG_MXC_GPU_VIV) was removed from the kernel, and it’s an externally built module. This change makes the graphics system modular, and more upgradeable, at the price of longer kernel upgrading time. Upgrading kernel takes about 3-4 minutes now, instead of 30 seconds, because every kernel upgrade rebuilds the galcore driver from sources, because its a DKMS module.
  • The package gstreamer-imx was upgraded to 0.12.3-5
  • The new NXP/Vivante GPU SDK was added : imx-gpu-sdk 4.0.2 . You can get the source with the usual apt-get source command. This is a brand new SDK with many new demos, for example OpenCL, OpenVG,G2D, and for OpenVX and Vulkan, but those demos will be supported only by the i.MX8 SoC.
  • The distribution was upgraded to Stretch 9.2 . Here are some main component versions :
    • Xorg server 1.19.2
    • gstreamer1.0 1.10.4
    • bluez 5.43
    • Qt5 5.7.1
    • apt 1.4.8
    • chromium 59.0.3071.86-1
    • dpkg 1.18.24
    • gcc/g++ 6.3.0
    • firefox-esr 52.2.0esr
    • libwayland 1.12.0
    • weston 1.11.0-1
    • XFCE Desktop Environment 4.12.3
  • The desktop icon structure is similar to Ubuntu now, the demo icons are grouped in the same way.
  • Silex WiFi / Bluetooth is now supported in Stretch also, not only in Xenial and Jessie.

 


Let’s see some interesting new demos,  this is a screen of the imx-gpu-sdk OpenGLESv2 Blur demo, a spinning bubble with environment mapping:

IMX GPU SDK 2.2.2 Gaussian Blur demo

IMX GPU SDK 4.0.2 Gaussian Blur demo

You can find many other interesting samples and framework in the SDK, including GLESv2, GLESv3, OpenCL, OpenVG.


This Qt5  Qml demo below shows how to apply various effects on a running video stream, using GPU shaders :

Qt 5.7.1 Cinematic Experience demo

Qt 5.7.1 Cinematic Experience demo

You can apply various effects on a playing video and/or recording camera screen . Source is available.


Chromium browser now supports WebGL. This is an example from the web:

Chromium WebGL demo

Chromium WebGL demo

 

GPU development libraries

The package imx-gpu-viv-s13-dev ( development headers and libraries for OpenGL / ESv2 / ESv3 / Khronos / OpenVG / OpenCL /G2D ) is installed by default. You have to set the headers path, before any other headers, or you might include the mesa headers first, and you don’t want to do that. For example :

export CFLAGS="-I/usr/include/vivante ${CFLAGS}"

and you have to set the library path as well :

export LDFLAGS="-L/usr/lib/arm-linux-gnueabihf/vivante ${LDFLAGS}"

Alternatively you can use the much more precise pkg-config way, in the makefile. Setting the flags in case of X11 system :

PKG_CONFIG_PATH = /usr/lib/arm-linux-gnueabihf/vivante/pkgconfig

EGL :

CFLAGS += $(shell pkg-config --cflags egl_x11)

LDFLAGS += $(shell pkg-config --libs egl_x11)

GLESv1 :

CFLAGS += $(shell pkg-config --cflags glesv1_cm_x11)

LDFLAGS += $(shell pkg-config --libs glesv1_cm_x11)

GLESv2 :

CFLAGS += $(shell pkg-config --cflags glesv2_x11)

LDFLAGS += $(shell pkg-config --libs glesv2_x11)

OpenVG :

CFLAGS += $(shell pkg-config --cflags vg_x11)

LDFLAGS += $(shell pkg-config --libs vg_x11)

In case of FB backend change the _x11 postfix above to _fb, thats all.

OpenCL is the same at both fb and x11 :

CFLAGS += $(shell pkg-config --cflags opencl)

LDFLAGS += $(shell pkg-config --libs opencl)

Check the directory /usr/lib/arm-linux-gnueabihf/vivante/pkgconfig for more information


 

As always, please give us some feedback and let us know how things work for you.

The post Debian Stretch 9.2 for i.MX6/7 boards – October 2017 (kernel 4.1.15/4.9.x) appeared first on Boundary Devices.

Viewing all 391 articles
Browse latest View live