Colibri Evaluation Board w/ Colibri IMX7D 1GB System on Module setup issues

Hello Toradex Community,

I am working on a project with the Colibri Evaluation Board v3.2B, equipped with a Colibri IMX7D 1GB System on Module, and facing some challenges during the setup. My goal is to run Debian OS on the ARM Cortex-A7 processor and an RTOS on the ARM Cortex-M4. I’m following the guidelines provided in the Toradex documentation:

After using the Toradex Easy Installer to set up Torizon OS with evaluation containers, my board now boots directly into the Portainer dashboard each time. While this is expected behavior for managing containers, I need to access the Debian OS for further setup and to work on the M4 core.

Here are the specifics of my setup:

  • Board: Colibri Evaluation Board v3.2B
  • SoM: Colibri IMX7D 1GB, serial number 15104252
  • Connections: Connected to a MacBook M2 laptop via Ethernet (connector X17) and USB-B (connector X29).
  • Issue: Unable to ssh into the board using ssh torizon@colibri-imx7-15104252.local.

I suspect there might be a network configuration or discovery issue preventing me from SSH’ing into the board. Here’s what I need assistance with:

  1. How can I access the Debian OS command line on the Colibri iMX7D when it boots directly into the Portainer dashboard?
  2. What steps should I follow to ensure network connectivity for SSH, given my current setup?
  3. Any specific considerations or tips for running Debian on the Cortex-A7 and an RTOS on the Cortex-M4 simultaneously?

Thank you for any guidance or resources you can provide to help me proceed with this project setup.

Best regards,
Mit

Greetings @mit,

Let me see if I can help clarify your questions here.

First of all before I go into your questions. I just want to make sure it’s clear that Torizon OS itself is not Debian. It is an embedded Yocto built OS of our design. You can run a Debian-based container on Torizon OS to give yourself a Debian-like environment to work with. But the OS itself is not Debian. I wanted to make that clear since your post here makes it sound like there may be some confusion on this point.

How can I access the Debian OS command line on the Colibri iMX7D when it boots directly into the Portainer dashboard?

To access the Torizon OS console command line, you have two options. SSH, as for your SSH issue it does sound like some networking related issue on your end. You could try to SSH via the IP address rather than the <hostname>.local that you’re trying to. The IP address is usually less problematic to access.

The other option is to hook up the serial debug port and use a serial console program for a direct connection to the board. More details on this here: Configuring Serial Port Debug Console (Linux/U-Boot) | Toradex Developer Center

What steps should I follow to ensure network connectivity for SSH, given my current setup?

As I suggested above you could try to ssh via the IP address. It’s hard to say why you’re having issues with SSH when targeting ssh torizon@colibri-imx7-15104252.local, as this is very dependent on your network setup.

Any specific considerations or tips for running Debian on the Cortex-A7 and an RTOS on the Cortex-M4 simultaneously?

As I said at the start you can run a Debian container on Torizon OS. You can find details about the Debian containers we provide here: Debian Containers for Torizon | Toradex Developer Center

That said we don’t provide a Debian OS itself. Would Debian containers satisfy your needs? It would also help if you could elaborate on your exact needs and why you’re looking for a “Debian OS” exactly.

As for RTOS on the M-core. The two articles you already linked are what we have currently for RTOS on the i.MX7. Were you looking for something else on this topic that is not in these articles?

Best Regards,
Jeremias

Greetings Jeremias,

Thank you for the clarification on Torizon OS and the options for accessing the Debian-based environment. I’ve successfully accessed the command line of my Colibri iMX7D following your advice and the provided resources.

Here’s what worked for me to connect to the board:

  1. I followed the instructions to set up a Serial Port via UART detailed here: Configuring Serial Port Debug Console (Linux/U-Boot).
  2. I found the USB serial port mapped on my host machine: ls -G /dev/tty*.
  3. I ran a screen session with the correct baud rate: screen /dev/tty.usbserial-A10MWGNJ 115200.

Now, I am facing a network connectivity issue that I need help with. I want to set up a Debian-based Docker container on the Colibri iMX7 target device but am unable to establish external internet connectivity. Despite successful local network communication (e.g., pinging the gateway), the device fails to access the internet (100% packet loss when pinging 8.8.8.8).

Problem Summary

  • The target device, a Colibri iMX7 on a v3.2B Colibri Evaluation board, is connected via an Ethernet cable to my MacBook and communicates over a UART Serial port.
  • Local network connectivity is established (can ping local gateway 192.168.2.1) on the target, but there’s no external internet access.
  • I aim to run docker pull torizon/debian on the target device to set up a Debian-based Docker container. However, due to network issues, I encounter errors like dial tcp: lookup registry-1.docker.io on 8.8.8.8:53: i/o timeout.

Network Configuration Details

  • Target Device ip add: Shows 192.168.2.4/24 on ethernet0.
  • MacBook ifconfig: Indicates bridge100 with IP 192.168.2.1, assumed to share internet with the target device.
  • NAT Configuration on MacBook: Configured in /etc/pf.conf, aiming to facilitate network translation for the target device.

Given this setup, how should I proceed to troubleshoot and resolve the external network connectivity issue on the target device?

Best regards,
Mit

Additional information provided below:

Target Device (Board)

  • Model: Colibri iMX7 on a v3.2B Colibri Evaluation board
  • Connection: Connected to the MacBook via an Ethernet cable plugged into port X17, and communication is established over a UART Serial port.
  • IP Configuration (ip add output):
    • IP 192.168.2.4/24 on ethernet0.
    • Able to communicate with the local gateway 192.168.2.1.
  • Routing Configuration:
    • Default gateway is correctly set to 192.168.2.1.
  • Ping Tests:
    • Successfully pings local gateway 192.168.2.1.
    • Fails to ping external address 8.8.8.8 with 100% packet loss.

Host Machine (MacBook)

  • Network Configuration (ifconfig output):
    • en0 and bridge100 active, with bridge100 having IP 192.168.2.1.
  • Internet Sharing and NAT Configuration:
    • Internet sharing is enabled, providing network access to the target device.
    • NAT is set up in /etc/pf.conf to enable network translation, with the following file contents:
#
# com.apple anchor point
#
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"

nat on en0 from 172.18.0.0/16 to any -> (en0)
dummynet-anchor "com.apple/*"
anchor "com.apple/*"

# Custom NAT rules

load anchor "com.apple" from "/etc/pf.anchors/com.apple"

The target device, a Colibri iMX7 on a v3.2B Colibri Evaluation board, is connected via an Ethernet cable to my MacBook and communicates over a UART Serial port.

So you want your MacBook computer to provide internet connectivity to the Toradex system? I assume the MacBook is connected to the internet via WiFi or something right? Basically you want to do a sort of internet sharing setup then right?

I guess just plugging the Toradex system’s ethernet directly to the router is not an option?

First of all full disclosure, I’m not at all familiar with working on Mac systems. A quick Google search found me this page: Direct ethernet connection | The Raspberry Pi Guide

It’s for Raspberry Pi, but same idea. It looks like there’s a option for internet sharing in Mac, could you try that? Besides this I’m not really sure how this type of stuff works on Mac. The simplest way would be to just connect the module directly to your network’s router if possible.

Best Regards,
Jeremias

Hello Jeremias,

Thank you for your assistance. I was able to establish a connection between my MacBook and the Toradex system successfully. Here’s a summary of the process that worked for me:

How to connect to the board

Serial Port via UART (the preferred way)

  1. I followed the instructions on the Toradex site up to the “Setting up A Terminal” section (Configuring Serial Port Debug Console (Linux/U-Boot) | Toradex Developer Center).

  2. Ensured the UART jumpers were correctly positioned and connected the USB-B to USB-A cable to my laptop.

  3. Located the USB serial port on my host machine using ls -G /dev/tty*, which in my case was /dev/tty.usbserial-A10MWGNJ.

  4. Started a screen session with screen /dev/tty.usbserial-A10MWGNJ 115200 and logged in with the provided credentials.

SSH via IP (not the preferred way)

  1. I enabled internet sharing on my MacBook as described in the Apple support documentation (Share the internet connection on Mac with other network users - Apple Support (CA)).
  2. Identified the bridge interface’s IP address using ifconfig, which showed as 192.168.3.1.
  3. Converted this IP to 192.168.3.0/24 and used nmap -sn 192.168.3.0/24 to find the board’s SSHable IP.

Debugging Steps for Network Sharing

  • I performed a power cycle on the Colibri Evaluation Board.
  • Checked the Ethernet connections on both the MacBook and the board for active link lights.
  • Confirmed internet sharing was enabled in the Mac’s System Preferences.

These steps allowed me to connect and interact with the board successfully. I am able to connect to the target, Colibri Evaluation Board, and run the docker commands to pull in the torizon/debian container. After that, my goal is to enable FreeRTOS to run on the ARM-M processor.

Would it be better to close this thread and start a new one for questions related to the FreeRTOS setup? I appreciate your guidance on this.

Best regards,
Mit

Glad to hear you were able to setup the network connection on your device properly.

Would it be better to close this thread and start a new one for questions related to the FreeRTOS setup? I appreciate your guidance on this.

Yes please, that would be preferable if you don’t mind. It helps to keep the different topics separate for organization sake.

Best Regards,
Jeremias

1 Like