Technexion PICO-PI-IMX7

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

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

This is my local.conf

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

See mender dunfell pico - Pastebin.com

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

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

@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:

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 image (and not dunfell) I not have any errors and this is my printenv:

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

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:

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

@texierp mender dunfell pico - Pastebin.com

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 ?

@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 ?

=> ls mmc 0:1

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

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

OK, perfect

@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

@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

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:

  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?


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

@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

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

@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

this is my local.conf:

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 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.

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

My local.conf atual is:

You’ll need to generate your own recipe for your c/c++ application. After that you will need to add it into your image using IMAGE_INSTALL_append in local.conf.

Drew