IOT-DIN-IMX8PLUS: Yocto Linux: How-To Guide
Contents
Overview
The example run-time Yocto Linux image for the CompuLab IOT-GATE-IMX8PLUS and SBC-IOT-IMX8PLUS was generated with Kirkstone Yocto build. The image includes the needed drivers and utilities to operate the hardware components of the IOT-GATE-IMX8PLUS/SBC-IOT-IMX8PLUS.
The default Kirkstone Yocto image includes many software packages. Among them:
- Core system
- SSH server and client
- ConnMan
- ModemManager
- Bluez5 Bluetooth tools and daemons
- SocketCAN
- Minicom
Serial Console
IOT-DIN-IMX8PLUS provides a serial console on the front panel micro-USB DBG connector.
Connecting to a host PC
- Use a micro-USB cable to connect the Console connector to a USB port on your host PC.
- Make sure the CP2104 driver is available with your operating system, otherwise install CP2104 driver onto the host PC from https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers_with_Serial_Enumeration.zip
- Identify the host PC interface and port number that will be used for communication with the device:
- In most Linux PCs, the serial port will be denoted as one of the following (where n is a positive integer): /dev/ttyUSB0, /dev/ttyUSB1 ... /dev/ttyUSBn
- In Windows PCs, the serial port usually will be denoted as one of the following (where n is a positive integer): COM1, COM2 ... COMn
- Start a terminal emulation program (such as PuTTY on Windows or minicom on Linux).
- In the port configuration section of the terminal emulation program select the port identified in previous step and set the following serial port parameters:
Baud Rate Data Bits Stop Bits Parity Flow Control 115200 8 1 none none
Connection and Login
This Yocto rootfs comes with an empty root password. No password is required for login.
To login into the Linux system, you may use a terminal emulator as described here, or connect through the network (ssh).
The following examples assume root user. |
Connectivity
IOT-DIN-IMX8PLUS Yocto Linux Image includes ConnMan is a command-line network manager designed for use with embedded devices and fast resolve times. It can be used for managing all type of network interfaces:
- Wired
- Wireless
- Cellular
- Start ConnMan service prior to accessing network interfaces
root@iot-gate-imx8plus:~# systemctl start connman
- Display supported technologies
root@iot-gate-imx8plus:~# connmanctl technologies /net/connman/technology/cellular Name = Cellular Type = cellular Powered = True Connected = True Tethering = False TetheringFreq = 2412 /net/connman/technology/ethernet Name = Wired Type = ethernet Powered = False Connected = False Tethering = False TetheringFreq = 2412 /net/connman/technology/wifi Name = WiFi Type = wifi Powered = True Connected = False Tethering = False TetheringFreq = 2412 /net/connman/technology/bluetooth Name = Bluetooth Type = bluetooth Powered = False Connected = False Tethering = False TetheringFreq = 0
Ethernet
Enable/Disable Ethernet Interfaces
- To enable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl enable ethernet
- To disable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl disable ethernet
Enable/Disable Ethernet Connections
- To display Ethernet Connections:
root@iot-gate-imx8plus:~# connmanctl services | grep ethernet
- Example (both Ethernet ports are connected to a LAN):
root@iot-gate-imx8plus:~# connmanctl services | grep ethernet
*AR Wired ethernet_0001c030d7c3_cable
*AR Wired ethernet_0001c031ffe2_cable
- To enable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl connect <ethernet service name>
- To disable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl disconnect <ethernet service name>
- Example:
root@iot-gate-imx8plus:~# connmanctl disconnect ethernet_0001c031ffe2_cable
Disconnected ethernet_0001c031ffe2_cable
root@iot-gate-imx8plus:~# connmanctl services | grep ethernet
*AR Wired ethernet_0001c030d7c3_cable
*A Wired ethernet_0001c031ffe2_cable
root@iot-gate-imx8plus:~# connmanctl connect ethernet_0001c031ffe2_cable
Connected ethernet_0001c031ffe2_cable
Cellular Modem
Wvdial
Recommended method |
WvDial is a Point-to-Point Protocol dialer that automatically detects modem, and can log into almost any Internet Service Provider without a complicated configuration.
Loading kernel modules
Load Point-to-Point protocol (PPP) driver modules prior to dialing:
root@cl-som-imx7-sid:~# modprobe ppp_generic root@cl-som-imx7-sid:~# modprobe ppp_async root@cl-som-imx7-sid:~# modprobe ppp_synctty root@cl-som-imx7-sid:~# modprobe bsd_comp root@cl-som-imx7-sid:~# modprobe ppp_deflate
Dialing
- Example configuration file /etc/wvdial.conf:
cat << eof > /etc/wvdial.conf [Dialer cellular] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem ISDN = 0 Phone = *99# Modem = /dev/ttyUSB3 Username = dummy Password = dummy Baud = 9600 eof
- Connect cellular network
wvdial cellular &
- Verify the connection by pinging to google:
sudo ping -c 5 dns.google
- Expected result:
5 packets transmitted, 5 received, 0% packet loss, time 10ms
- Disconnect cellular network
killall wvdial
ConnMan
Enable/Disable Cellular Interface
- To enable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl enable cellular
- To disable Ethernet interfaces:
root@iot-gate-imx8plus:~# connmanctl disable cellular
Enable/Disable Cellular Connections
- To display Cellular Connections:
root@iot-gate-imx8plus:~# connmanctl services | grep cellular
- Example:
root@iot-gate-imx8plus:~# connmanctl services | grep cellular
*AR 425007 cellular_425071043611161_context1
- To connect Cellular network:
root@iot-gate-imx8plus:~# connmanctl connect <cellular service name>
- To disconnect Cellular network:
root@iot-gate-imx8plus:~# connmanctl disconnect <cellular service name>
WiFi
Enable/Disable WiFi Interface
- To enable WiFi interface:
root@iot-gate-imx8plus:~# connmanctl enable wifi
- To disable WiFi interface:
root@iot-gate-imx8plus:~# connmanctl disable wifi
Network Scanning
- Sample WiFi scanning:
root@iot-gate-imx8plus:~# connmanctl scan wifi
- Display list of Access Points and Ad-Hoc cells in range
root@iot-gate-imx8plus:~# connmanctl services | grep wifi
- Example:
Compulab-Guest wifi_8c1d96f18740_436f6d70756c61622d4775657374_managed_psk
...
AP-Free wifi_8c1d96f18740_6b77696b2d6d6f62_managed_none
- Where a service name pattern is as shown below:
wifi_<hashlocal>_<hashremote>_managed_<encrption>
Connecting to Open Access Point
In the following example replace <hashlocal> and <hashremote> with the actual service parameters.
- Connect wireless network:
root@iot-gate-imx8plus:~# connmanctl connect wifi_<hashlocal>_<hashremote>_managed_none
- Disconnect wireless network:
root@iot-gate-imx8plus:~# connmanctl disconnect wifi_<hashlocal>_<hashremote>_managed_none
Connecting to Protected Access Point
For protected access points some information (like password) has to be provided to the ConnMan daemon.
The commands in this section show how to run connmanctl in interactive mode, it is required for running the agent command.
- Start interactive mode:
root@iot-gate-imx8plus:~# connmanctl
- Sample WiFi scanning (wait for scan completed):
connmanctl> scan wifi
- Display a list of services:
connmanctl> services
Compulab-Guest wifi_8c1d96f18740_436f6d70756c61622d4775657374_managed_psk
...
AP-Free wifi_8c1d96f18740_6b77696b2d6d6f62_managed_none
- Register the agent to handle user requests:
connmanctl> agent on
- Connect to one of the protected services. Replace <hashlocal> and <hashremote> with the actual service parameters:
connmanctl> connect wifi_<hashlocal>_<hashremote>_managed_psk
Agent RequestInput wifi_<hashlocal>_<hashremote>_managed_psk
Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase?
- Provide any information required by the daemon to complete the connection. The information requested may vary depending on the type of network.
- Quit:
connmanctl> quit
- Disconnect wireless network:
root@iot-gate-imx8plus:~# connmanctl disconnect wifi_<hashlocal>_<hashremote>_managed_psk
- Connect wireless network again:
root@iot-gate-imx8plus:~# connmanctl connect wifi_<hashlocal>_<hashremote>_managed_psk
GPS
IOT-GATE-IMX8PLUS features an optional GPS interface implemented with the cellular modem module.
GPS antenna
A GPS antenna is required for GPS operation. GPS antenna is not included with IOT-GATE-IMX8PLUS. Any active GPS antenna with a male SMA connector can be used with IOT-GATE-IMX8PLUS.
GPS antenna should be attached to the AUX SMA connector on the gateway.
GPS antenna should be positioned at least 1m away from the gateway |
Using GPS
The cgps client can be used to display the GPS information.
The ModemManager can be used to check the modem status.
For example, the following command shows the presence of the modem and the ID of its interfaces.
root@iot-gate-imx8plus:~# mmcli -m 0
The cgps client utility depends on the gpsd daemon (starts automatically after the initialization command is performed).
- Initialization of the GPS interface:
root@iot-gate-imx8plus:~# sed -i "/^DEVICES=.*/c\DEVICES=\"/dev/ttyUSB1\"" /etc/default/gpsd
- Enable the GPS with the following AT commands:
root@iot-gate-imx8plus:~# echo AT+QGPS= 1 | socat - /dev/ttyUSB2,crnl
- A full power cycle is required before using GPS. Shut down the gateway, remove the main DC power for at least 20 sec, and restart.
- Start the cgps client to display GPS information.
The synchronization process might take a few minutes.
root@iot-gate-imx8plus:~# cgps ┌───────────────────────────────────────────┐┌─────────────────────────────────┐ │ Time: 2022-05-04T14:13:30.000Z ││PRN: Elev: Azim: SNR: Used: │ │ Latitude: 32.65985123 N ││ 71 29 123 22 Y │ │ Longitude: 35.10027205 E ││ 85 27 047 22 Y │ │ Altitude: 102.700 m ││ │ │ Speed: 0.00 kph ││ │ │ Heading: 128.7 deg (true) ││ │ │ Climb: 6.00 m/min ││ │ │ Status: 3D FIX (53 secs) ││ │ │ Longitude Err: n/a ││ │ │ Latitude Err: n/a ││ │ │ Altitude Err: +/- 18 m ││ │ │ Course Err: n/a ││ │ │ Speed Err: n/a ││ │ │ Time offset: -3.682 ││ │ │ Grid Square: KM72np ││ │ └───────────────────────────────────────────┘└─────────────────────────────────┘
- Disable the GPS with the following AT commands:
root@iot-gate-imx8plus:~# echo AT+QGPSEND | socat - /dev/ttyUSB2,crnl
CAN
IOT-DIN-IMX8PLUS features one CAN 2.0B port implemented with i.MX8M Plus CAN controller.
CAN bus signals are routed to industrial I/O connector.
CAN interface configuration
- Configure the CAN interface bit-rate to 1 Mbits/sec:
root@iot-gate-imx8plus:~# ip link set can0 type can bitrate 1000000
- Enable the CAN interface:
root@iot-gate-imx8plus:~# ip link set can0 up
Send/Receive packets
Use cansend and candump utilities to send and receive packets via CAN interface.
- Send standard CAN frame (on the first device):
root@iot-gate-imx8plus:~# cansend can0 111#1122334455667788
- Send extended CAN frame (on the first device):
root@iot-gate-imx8plus:~# cansend can0 11111111#1122334455667788
- CAN frames (extended mode) generator, random payload, interval between two successive flames 50 msec:
root@iot-gate-imx8plus:~# cangen -g 50 -e -D r -v can0 ... ...
- Dump all received data frames as well as error frames:
root@iot-gate-imx8plus:~# candump any,0:0,#FFFFFFFF ... ...
Industrial Interfaces
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS implements industrial interfaces with four I/O slots (IE) that can be fitted with up-to four different I/O modules. Slots are referred to as A, B, C and D.
Available I/O modules types:
- RS232 (2-wire)
- RS485 (half duplex)
- Digital I/O (4x DI + 4x DO)
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS industrial I/O signals are routed to Industrial I/O Connector (P8) |
Please refer to Industrial I/O Connector pin-out for more details.
So far industrial I/O modules do not require any special configuration.
RS232
RS232 function is implemented with MAX3221 (or compatible) transceiver interfaced with i.MX8M Plus UART ports.
RS232 modules can be installed into I/O slots A, B and C. Up to three RS232 modules can be installed simultaneously.
Configuration and Access
Once properly installed on a specific I/O slot, RS232 interface can be accessed in Linux via ttyRS232_X tty device, where X is a slot name: A, B, C.
RS485
RS485 function is implemented with MAX13488 (or compatible) transceiver interfaced with i.MX8M Plus UART ports.
RS485 modules can be installed in I/O slots A, B and C. Up to three RS485 modules can be installed simultaneously.
Configuration and Access
Once properly installed on a specific I/O slot, RS485 interface can be accessed in Linux via ttyRS485_X tty device, where X is a slot name: A, B, C.
Modbus RS485
The following example demonstrates how to use RS485 module installed into industrial I/O slot A in a Modbus RS485 Network. IOTG-IMX8PLUS performs as a Master device and queries XY-MD02 temperature and humidity sensor.
Software installation
Download and install modpoll - a command line based Modbus master simulator and test utility.
root@iot-gate-imx8plus:~# wget https://www.modbusdriver.com/downloads/modpoll.tgz -P /tmp/ ... root@iot-gate-imx8plus:~# tar -xvf /tmp/modpoll.tgz -C /opt/ ...
Device connection
- Connect XY-MD02 sensor to appropriate Industrial I/O connector pins as below:
- A+: XY-MD02 A+ to IOT-GATE-iMX8PLUS / SBC-IOT-IMX8PLUS P8-01
- B-: XY-MD02 B- to IOT-GATE-iMX8PLUS / SBC-IOT-IMX8PLUS P8-03
-------------------- ------------------------- | | | | | *--(+)---< <------------- 5V-30V | IOTG-IMX8PLUS | | | | (SBC-IOT-IMX8PLUS) | | *--(-)---< <-------------- GND |------ ------------ | | XY-MD02 (RS485) | | |==| IE-RS485 | | | *--(A+)--< <---...---> >---(1)---*-| | ------------ | | | | P8 | Slot A | | *--(B-)--< <---...---> >---(3)---*-| | | | | |------ | -------------------- -------------------------
Read data
- Read temperature once:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 1 -r 2 -1 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 2, count = 1 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... [2]: 250
- Poll temperature:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 1 -r 2 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 2, count = 1 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... (Ctrl-C to stop) [2]: 254 -- Polling slave... (Ctrl-C to stop) [2]: 254 -- Polling slave... (Ctrl-C to stop) [2]: 254 ...
- Read humidity once:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 1 -r 3 -1 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 3, count = 1 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... [3]: 515
- Poll humidity:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 1 -r 3 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 3, count = 1 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... (Ctrl-C to stop) [3]: 894 -- Polling slave... (Ctrl-C to stop) [3]: 895 -- Polling slave... (Ctrl-C to stop) [3]: 896 ...
- Read temperature & humidity once:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 2 -r 2 -1 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 2, count = 2 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... [2]: 263 [3]: 606
- Poll temperature & humidity:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 3 -c 2 -r 2 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC4 Slave configuration...: address = 1, start reference = 2, count = 2 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, input register table -- Polling slave... (Ctrl-C to stop) [2]: 263 [3]: 545 -- Polling slave... (Ctrl-C to stop) [2]: 263 [3]: 543 -- Polling slave... (Ctrl-C to stop) [2]: 263 [3]: 542 ...
- Read slave address, baudrate, temperature & humidity corrections:
root@iot-gate-imx8plus:~# /opt/modpoll/arm-linux-gnueabihf/modpoll -b 9600 -p none -t 4 -c 4 -r 258 -1 /dev/ttyRS485_A modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2021 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: Modbus RTU, FC3 Slave configuration...: address = 1, start reference = 258, count = 4 Communication.........: /dev/ttyRS485_A, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave... [258]: 1 [259]: 9600 [260]: 0 [261]: 0
Digital I/O
Digital I/O module features 4 digital inputs and 4 digital outputs and can be installed into slot D.
Four digital inputs are implemented with the CLT3-4B digital termination following EN 61131-2.
Four digital outputs are implemented with the VNI4140K solid-state relay following EN 61131-2.
Digital I/O module requires an external voltage supply up to 24V to be properly connected. Please refer to Industrial I/O Connector pin-out for more details. |
Configuration and Access
Use iotg-imx8plus-dio utility to access digital inputs and outputs.
The example below shows how to access Digital inputs and outputs.
- Drive OUT2 pin HI:
root@iot-gate-imx8plus:~# iotg-imx8plus-dio -o 2 1
- Read IN3 pin state (LO):
root@iot-gate-imx8plus:~# iotg-imx8plus-dio -i 3 0
RTC
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS RTC is implemented with the AM1805 real-time clock (RTC) chip.
Back-up battery keeps the RTC running to maintain clock and time information whenever the main power supply is not present.
Accessing and setting the RTC
- To access the RTC time and date run:
compulab@iot-gate-imx8plus:~$ sudo hwclock 2022-08-04 12:38:10.577874+00:00
- To set the date and write it into the RTC do the following:
compulab@iot-gate-imx8plus:~$ sudo date -s "31 Dec 2021 10:00:00" Fri Dec 31 10:00:00 IST 2021 compulab@iot-gate-imx8plus:~$ sudo hwclock -w compulab@iot-gate-imx8plus:~$ sudo hwclock 2021-12-31 10:00:08.317403+02:00
Watchdog
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS watchdog function is implemented with the i.MX8M Plus watchdog.
By default, the watchdog is not configured.
compulab@iot-gate-imx8plus:~$ systemctl show | grep RuntimeWatchdog
RuntimeWatchdogUSec=0
The value RuntimeWatchdogUSec=0 means watchdog logic is disabled: no watchdog device is opened, configured, or pinged
Watchdog configuration
- Edit /etc/systemd/system.conf file to configure watchdog related parameters, in particular RuntimeWatchdogSec and ShutdownWatchdogSec.
- RuntimeWatchdogSec - specifies the watchdog timeout for runtime services, meaning services that are actively running during normal system operation. The value is in seconds and should be set to a positive integer.
- ShutdownWatchdogSec - specifies the watchdog timeout for the shutdown process, insuring the system doesn't hang indefinitely during the shutdown. The value is in seconds and should be set to a positive integer.
- Reboot the device
- Verify watchdog configuration
compulab@iot-gate-imx8plus:~$ systemctl show | grep RuntimeWatchdog
RuntimeWatchdogUSec=10s
Watchdog testing
- Run the following command to simulate kernel panic:
compulab@iot-gate-imx8plus:~$ sudo su
root@iot-gate-imx8plus:~# echo "c" > /proc/sysrq-trigger
- As a result, the watchdog is not fed and the system reboots after 10 sec.
LEDs
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS features two user Bi-Color (Red + Green) LEDs found on front panel.
LEDs are controlled via GPIO pins and can be accessed via sysfs interface.
- LEDs are referred to as Green_1, Red_1, Green_2 and Red_2
- Choose a LED (LED2 Red in this example):
root@iot-gate-imx8plus:~# LED=Red_2
- Turn the LED ON
root@iot-gate-imx8plus:~# echo "1" | tee -a /sys/class/leds/${LED}/brightness
- Turn the LED OFF
root@iot-gate-imx8plus:~# echo "0" | tee -a /sys/class/leds/${LED}/brightness
- Set LED's trigger
root@iot-gate-imx8plus:~# echo "heartbeat" | tee -a /sys/class/leds/${LED}/trigger
TPM
IOT-GATE-IMX8PLUS / SBC-IOT-IMX8PLUS can be optionally (configuration option FXTPM) assembled with a TPM 2.0 add-on board implemented with Infineon SLB9670.
- Install TPM add-on board into M.2 Socket (P19) if required
- Boot Linux kernel with iot-gate-imx8plus-m2tpm.dtb device tree
- Verify that the TPM device was created:
compulab@iot-gate-imx8plus:~$ ls -lh /dev/tpm*
- Otherwise load TPM kernel object:
compulab@iot-gate-imx8plus:~$ modprobe tpm_tis_spi
- Make sure that the tpm package is installed:
compulab@iot-gate-imx8plus:~$ dpkg -l eltt2 &>/dev/null && echo "Installed" || echo "Not installed"
- If Installed, then goto the next step.
- Validate basic functionality
compulab@iot-gate-imx8plus:~$ eltt2 -t full && eltt2 -T
Video Playback
The operation below requires root access. |
IOT-GATE-IMX8PLUS and SBC-IOT-IMX8PLUS are built around UCM-iMX8M-Plus SoC that features 1080p60 H.264, VP8 video decoding capabilities. Before starting video playback, please, ensure that the display is connected to the board.
The following commands can be used to start video playback (1.mov is a media file):
- gst-play
root@iot-gate-imx8plus:~# gst-play /path/to/1.mov
- gplay-1.0
root@iot-gate-imx8plus:~# gplay-1.0 /path/to/1.mov
- gst-launch
This method is for advanced users. Please study this document before the start: i.MX8GStreamerUserGuide.pdf
root@iot-gate-imx8plus:~# gst-launch-1.0 -v filesrc location=/path/to/1.mov ! qtdemux name=d.video_0 ! h264parse ! avdec_h264 ! autovideosink