# Technexion PICO-PI-IMX7

**URL:** <https://hub.mender.io/t/technexion-pico-pi-imx7/136>\
**Category:** Yocto Project\
**Tags:** yocto, sumo, imx7, nxp, pico-imx7, technexion, thud, dunfell\
**Created:** [November 24, 2018, 12:59pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136 "2018-11-24T12:59:44Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![texierp](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/texierp/32/45_2.png) [@texierp](https://hub.mender.io/u/texierp)\
**Post date:** [June 27, 2021, 9:15pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/48 "2021-06-27T21:15:01Z")

</div>

Yes @neuberfran, as I wrote, the PR is still open.

You need to use [pico-pi-imx7d: bump to dunfell by texierp · Pull Request #232 · mendersoftware/meta-mender-community · GitHub](https://github.com/mendersoftware/meta-mender-community/pull/232)

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [June 27, 2021, 9:22pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/49 "2021-06-27T21:22:28Z")

</div>

@texierp Please, What I need to change in tutorial ?

> <https://gist.github.com/neuberfran/89caf04e82a2607cd05cb3fd18a7c082#file-local-confdunfellissue>

This is my local.conf

---

<div class="post-metadata">

**Author:** ![texierp](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/texierp/32/45_2.png) [@texierp](https://hub.mender.io/u/texierp)\
**Post date:** [June 28, 2021, 6:55am UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/50 "2021-06-28T06:55:18Z")

</div>

You need to use my fork instead of the official repo of `meta-mender-community`.

See [mender dunfell pico - Pastebin.com](https://pastebin.com/dyTFtEFA)

Then, you’ll need also this commit [u-boot-mender: Ignore case when checking variables in mender\_Kconfig\_… by texierp · Pull Request #1398 · mendersoftware/meta-mender · GitHub](https://github.com/mendersoftware/meta-mender/pull/1398)

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [June 30, 2021, 9:44pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/51 "2021-06-30T21:44:28Z")

</div>

@texierp What about libgpiod v1.6 (not 1.4) in Yocto Zeus/Dunfell/Hardknott?

> <https://github.com/openembedded/meta-openembedded/issues/372#issuecomment-859985177>
>
> Hi,
> 
> I have a great knowledge of this tutorial: https://hub.mender.io/t/techne…xion-pico-pi-imx7/136
> As can be seen it goes to Zeus (libgpiod version = 1.4)
> 
> I need libgpiod v1.6 in my project to configure pull-up/pull-down
> 
> I did the copy procedures, etc... and got the issue ERROR: Layer openembedded-layer is not compatible with the core layer which only supports these series: zeus (layer is compatible with hardknott)
> 
> How to solve (psl)
> 
> !\[Captura de tela de 2021-06-11 22-02-26\](https://user-images.githubusercontent.com/38701397/121760354-b7dbb580-cb00-11eb-90a0-e8998ccef645.png)
> 
> :

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [July 13, 2021, 2:19pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/53 "2021-07-13T14:19:15Z")

</div>

@texierp @drewmoseley @mirzak @jorisoffouga hi, I stay trying put dunfell and I have issue in boot: **Error: ethernet@30be0000 address not set.**  
**No ethernet found.**

my printenv result:

> <https://gist.github.com/neuberfran/e423f0731d6b440466fe9f152e076e2e>

**After I set ip and mac address, the error becomes the following**

DHCP client bound to address 192.168.1.190 (5 ms)  
\*\*\* Warning: no boot file name; using ‘C0A801BE.img’  
Using ethernet@30be0000 device  
TFTP from server 192.168.1.1; our IP address is 192.168.1.190  
Filename ‘C0A801BE.img’.  
Load address: 0x80800000  
Loading: T T T T T T T T

When I flash **Zeus Yocto i** mage (and not dunfell) I **not** have any errors and this is my **printenv** :

> <https://gist.github.com/neuberfran/944c7a53f2a408a4dabac0e3ebb8345f>

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [July 13, 2021, 7:21pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/54 "2021-07-13T19:21:39Z")

</div>

It sounds to me like the U-Boot configuration for that board in Dunfell is missing something that is available in Zeus. But it may not be a problem unless you are intentionally trying to boot off of the network. I suspect the real problem is that your eMMC boot is somehow not working right.

Drew

---

<div class="post-metadata">

**Author:** ![texierp](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/texierp/32/45_2.png) [@texierp](https://hub.mender.io/u/texierp)\
**Post date:** [July 13, 2021, 9:55pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/55 "2021-07-13T21:55:34Z")

</div>

I suspect that the U-Boot boot script (boot.scr) is missing from your first partition.

On my side, after a “clean” build, I can confirm that integration on dunfell is working  
as expected, no issues:

```auto
U-Boot SPL 2020.04+fslc+g88c58453be (Oct 13 2020 - 21:59:38 +0000)
Trying to boot from MMC1

U-Boot 2020.04+fslc+g88c58453be (Oct 13 2020 - 21:59:38 +0000)

CPU: Freescale i.MX7D rev1.2 1000 MHz (running at 792 MHz)
CPU: Commercial temperature grade (0C to 95C) at 37C
Reset cause: POR
Model: TechNexion PICO-IMX7D Board and PI baseboard
Board: i.MX7D PICOSOM
I2C: ready
DRAM: 512 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 2, FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: eth0: ethernet@30be0000
Hit any key to stop autoboot: 0 
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
371 bytes read in 8 ms (44.9 KiB/s)
## Executing script at 80800000
switch to partitions #0, OK
mmc0(part 0) is current device
9470544 bytes read in 229 ms (39.4 MiB/s)
34647 bytes read in 18 ms (1.8 MiB/s)
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 83000000, end 8300b756

Starting kernel ...

[0.000000] Booting Linux on physical CPU 0x0
[0.000000] Linux version 5.4.119-fslc+g43980dc5d7e6 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP Fri May 14 21:08:38 UTC 2021
[0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
...

root@imx7d-pico:~# mender --version
2.6.0	runtime: go1.14.15

```

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [July 14, 2021, 6:07pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/56 "2021-07-14T18:07:18Z")

</div>

@texierp [mender dunfell pico - Pastebin.com](https://pastebin.com/dyTFtEFA)

I didn’t do these steps above and I copied exactly the steps that jorisoffouga goes through in this tutorial. Are the steps I left undone already integrated in the main mender repository for imx7d-pico ?

---

<div class="post-metadata">

**Author:** ![texierp](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/texierp/32/45_2.png) [@texierp](https://hub.mender.io/u/texierp)\
**Post date:** [July 14, 2021, 6:27pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/57 "2021-07-14T18:27:38Z")

</div>

@neuberfran

> I didn’t do these steps above and I copied exactly the steps that jorisoffouga goes through in this tutorial. Are the steps I left undone already integrated in the main mender repository for imx7d-pico ?

The same for me … and it works.

Can you try the folllowing command from U-Boot and post the result ?

```auto
=> ls mmc 0:1

```

Also, please provide a complete boot sequence of U-Boot.

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [July 14, 2021, 6:29pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/58 "2021-07-14T18:29:23Z")

</div>

I solved this problem. Just rewriting the \*.sdimg from dunfell. I didn’t mess with boot.src.

---

<div class="post-metadata">

**Author:** ![texierp](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/texierp/32/45_2.png) [@texierp](https://hub.mender.io/u/texierp)\
**Post date:** [July 14, 2021, 6:30pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/59 "2021-07-14T18:30:43Z")

</div>

OK, perfect

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [July 14, 2021, 6:38pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/60 "2021-07-14T18:38:30Z")

</div>

@texierp

I have 1 more difficult and important problem now. I want to put c++/gdb on my image and it gives a space error. As below.  
I just change the line: EXTRA\_IMAGE\_FEATURES ?= “debug-tweaks”  
to **EXTRA\_IMAGE\_FEATURES ?= “debug-tweaks tools-sdk tools-debug dev-pkgs”** and bitbake doesn’t work anymore.

I am analyzing the causes/solutions and would like your help.

According to the screenshot below (df -h command) there is no lack of space in emmc when I put it in /sources/meta-mender/meta-mender-dmo/conf/layer.conf **MENDER\_STORAGE\_TOTAL\_SIZE\_MB\_DEFAULT ?=** “3048”  
**IMAGE\_OVERHEAD\_FACTOR** = “1.5”

What could I do to solve it?

**issue:**

> ERROR: Task (/home/neuberfran/mender-nxp2/build/…/sources/poky/meta/recipes-core/images/core-image-base.bb:do\_image\_sdimg) failed with exit code ‘1’
> 
> ERROR: core-image-base-1.0-r0 do\_image\_mender: Size of rootfs is greater than the calculated partition space (1192755200 \> 973078528). This image won’t fit on a device with the current storage configuration. Try reducing IMAGE\_OVERHEAD\_FACTOR if it is higher than 1.0, or raise MENDER\_STORAGE\_TOTAL\_SIZE\_MB if the device in fact has more storage.
> 
> ERROR: core-image-base-1.0-r0 do\_image\_mender: Execution of ‘/home/neuberfran/mender-nxp2/build/tmp/work/imx7d\_pico-poky-linux-gnueabi/core-image-base/1.0-r0/temp/run.do\_image\_mender.2689808’ failed with exit code 1:
> 
> - [-z release-1]
> 
> - stat -Lc %s /home/neuberfran/mender-nxp2/build/tmp/work/imx7d\_pico-poky-linux-gnueabi/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-imx7d-pico.ext4
> 
> - rootfs\_size=1192755200

 ![Captura de tela de 2021-07-14 15-32-42](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/2X/b/b4558591a1970e4a761a406c0b1bc7718b174d29.png)

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [August 13, 2021, 3:04am UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/61 "2021-08-13T03:04:08Z")

</div>

@texierp @drewmoseley

hi,  
I have been interested in communicating between the a7 and the m4 of my imx7d-pico using RPmsg for a long time.

Today I found that this tutorial: [Linux and Zephyr “Talking” to Each Other in the Same SoC - Diego Sueiro, Sepura / Embarcados - YouTube](https://www.youtube.com/watch?v=4zMyjaEgj2U&t=1182s)

don’t use mainline linux. I stay using kernel 5.6.xx with libgpiod 1.5

Using libgpiod I want to press a controlled button on a7 and flash an LED (which is waiting for this command) on m4

**I was checking the issue link below and I have 2 questions below:**

> **[I cant get the linux side of yocto rpmsg example for imx6sx](https://community.nxp.com/t5/i-MX-Processors/I-cant-get-the-linux-side-of-yocto-rpmsg-example-for-imx6sx/m-p/490383)**
>
> Hi, I am trying to make work the example ping-pong rpmsg, the compilation: bitbake core-image-minimal gives not the module that should be in /lib/modules/3.14.52-1.1.0\_ga+g5f6f0a5/kernel/drivers/rpmsg So, looking for an answer I found someone that...

1. How can I adapt this project by @jorisoffouga  
to the nxp forum project (link above) for me to get the following files: mu.c, imx\_rpmsg.c, imx\_rpmsg\_tty.c and/or imx\_rpmsg\_tty.ko

2. What is the best way to do RPmsg communication between a7 and m4 using Yocto on a7?

 ![8dc802156933a34ec04cd34fa3d69e8dbb034eff](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/2X/8/8dc802156933a34ec04cd34fa3d69e8dbb034eff.jpeg)  
 ![52418af4354038dfd2d36dd1e2b1acae72a7b594](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/2X/5/52418af4354038dfd2d36dd1e2b1acae72a7b594.png)

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [August 13, 2021, 2:33pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/62 "2021-08-13T14:33:00Z")

</div>

Sorry, but I’m not too familiar with RPMSG. I know it is the best way to communicate between the M and A cores but it will be very platform specific. At a minimum you will need kernel configs enabled but you may also need to add some user space components. Some of the Zephyr mailing lists would be a better place to ask this.

Drew

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [August 13, 2021, 4:16pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/63 "2021-08-13T16:16:58Z")

</div>

@drewmoseley What about my issue (Already posted above for Mr @texterp) **very important to me to put c/c++ in my Yocto/dunfell project:**

I have 1 more difficult and important problem now. I want to put c++/gdb on my image and it gives a space error. As below.  
I just change the line: EXTRA\_IMAGE\_FEATURES ?= “debug-tweaks”  
to **EXTRA\_IMAGE\_FEATURES ?= “debug-tweaks tools-sdk tools-debug dev-pkgs”** and bitbake doesn’t work anymore.

I am analyzing the causes/solutions and would like your help.

According to the screenshot below (df -h command) there is no lack of space in emmc when I put it in /sources/meta-mender/meta-mender-dmo/conf/layer.conf **MENDER\_STORAGE\_TOTAL\_SIZE\_MB\_DEFAULT ?=** “3048”  
**IMAGE\_OVERHEAD\_FACTOR** = “1.5”

What could I do to solve it?

**issue:**

> ERROR: Task (/home/neuberfran/mender-nxp2/build/…/sources/poky/meta/recipes-core/images/core-image-base.bb:do\_image\_sdimg) failed with exit code ‘1’
> 
> ERROR: core-image-base-1.0-r0 do\_image\_mender: Size of rootfs is greater than the calculated partition space (1192755200 \> 973078528). This image won’t fit on a device with the current storage configuration. Try reducing IMAGE\_OVERHEAD\_FACTOR if it is higher than 1.0, or raise MENDER\_STORAGE\_TOTAL\_SIZE\_MB if the device in fact has more storage.
> 
> ERROR: core-image-base-1.0-r0 do\_image\_mender: Execution of ‘/home/neuberfran/mender-nxp2/build/tmp/work/imx7d\_pico-poky-linux-gnueabi/core-image-base/1.0-r0/temp/run.do\_image\_mender.2689808’ failed with exit code 1:
> 
> - [-z release-1]
> - stat -Lc %s /home/neuberfran/mender-nxp2/build/tmp/work/imx7d\_pico-poky-linux-gnueabi/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-imx7d-pico.ext4
> - rootfs\_size=1192755200

 ![Captura de tela de 2021-07-14 15-32-42](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/2X/b/b4558591a1970e4a761a406c0b1bc7718b174d29.png)

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [August 13, 2021, 4:39pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/64 "2021-08-13T16:39:12Z")

</div>

You actually want to run the compiler tools on the target? That is going to be extremely slow. Why is cross compiling not a possibility?

As for the space issue you will need to modify the variables Mender uses to calculate the size:  
MENDER\_STORAGE\_TOTAL\_SIZE\_MB  
MENDER\_DATA\_PART\_SIZE\_MB  
MENDER\_BOOT\_PART\_SIZE\_MB

Basically, the rootfs size is calculated as:

size = (MENDER\_STORAGE\_TOTAL\_SIZE\_MB - MENDER\_DATA\_PART\_SIZE\_MB - MENDER\_BOOT\_PART\_SIZE\_MB)/2

You will need to tweak those values until the rootfs size is big enough.

Drew

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [August 13, 2021, 5:42pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/65 "2021-08-13T17:42:19Z")

</div>

@drewmoseley your question: You actually want to run the compiler tools on the target?

Answer: I just want to run a script in c/c++ to blink a led on imx7d-pico, as I’ve already done with python3.  
How to proceed in this case?

**this is my layer.conf** in /home/neuberfran/mender-nxp2/ **sources/meta-mender/meta-mender-demo/conf**

> <https://gist.github.com/neuberfran/7725958058870dab3d0e5ab61b4324ce>

**this is my local.conf:**

> <https://gist.github.com/neuberfran/57339c7d2f171ae385eef4d153eb8937>

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [August 13, 2021, 6:34pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/66 "2021-08-13T18:34:51Z")

</div>

Well, c/c++ is not a scripting language so you don’t generally want to install the compiler on the target. The normal workflow with yocto is to cross compile it. Ideally you would generate a Yocto recipe for your code and have it built as part of your standard Yocto build. Alternatively, and especially during development, you can use the [Yocto SDK](https://docs.yoctoproject.org/sdk-manual/index.html) to get a cross toolchain to allow you to build the code on your desktop. From there you can just scp it to the target and run it.

---

<div class="post-metadata">

**Author:** ![neuberfran](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/neuberfran/32/369_2.png) [@neuberfran](https://hub.mender.io/u/neuberfran)\
**Post date:** [August 13, 2021, 8:06pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/67 "2021-08-13T20:06:01Z")

</div>

@drewmoseley tks but I will need change in my local.conf (Or in other file)?

**My local.conf atual is:**

> <https://gist.github.com/neuberfran/57339c7d2f171ae385eef4d153eb8937>

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [August 13, 2021, 9:00pm UTC](https://hub.mender.io/t/technexion-pico-pi-imx7/136/68 "2021-08-13T21:00:13Z")

</div>

You’ll need to generate your [own recipe](https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles) for your c/c++ application. After that you will need to add it into your image using IMAGE\_INSTALL\_append in local.conf.

Drew

[Previous page](https://hub.mender.io/t/technexion-pico-pi-imx7/136.md?page=1)

[Next page](https://hub.mender.io/t/technexion-pico-pi-imx7/136.md?page=3)
