technexion / meta-tn-imx-bsp Goto Github PK
View Code? Open in Web Editor NEWTechNexion BSP Layer for i.MX Yocto Project
License: MIT License
TechNexion BSP Layer for i.MX Yocto Project
License: MIT License
Description
Cant not find an ethernet interface on the PICO-PI-IMX7 prebuilt image
Steps to reproduce the issue:
$ mkdir tn-imx-yocto && cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-xwayland MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-fsl-imx-xwayland-pico-imx7
$ bitbake imx-image-multimedia
Describe the results you received:
Can not find eth0 interface on PICO-PI-IMX7 prebuilt-image on the target device
Additional information you deem important (e.g. issue happens only occasionally):
I faced issues when trying to bitbake the latest release. I guess linux-tn-src_4.14.98.inc and SRC_REV is pointing to "next" branch instead of the "stable".
ERROR: linux-tn-imx-4.14.98-r1 do_fetch: Fetcher failure: Unable to find revision e8f3bd5f2db6fef62a73bf97c05fab3387990fb7 in branch tn-imx_4.14.98_2.0.0_ga-stable even from upstream
edm_yocto/sources/meta-tn-imx-bsp/recipes-kernel/linux/linux-tn-src_4.14.98.inc
SRCREV = "e8f3bd5f2db6fef62a73bf97c05fab3387990fb7"
Description
This issue is derived from TechNexion/u-boot-tn-imx#4
Power on PICO-PI-IMX7, Splash screen not showing on LCD when u-boot start.
Steps to reproduce the issue:
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b zeus_5.4.y-next -m imx-5.4.70-2.3.0.xml
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base
And flash it on the board and power on.
Describe the results you received:
Splash screen showing on LCD with TechNexion's logo image when u-boot start.
**Additional information you deem important
Additional details
Attach the video with power on to boot up finish
When i compile with the hardknott_5.10.72-2.2.0-stable manifest ethernet does not work on the TC-0710 device. Upon boot it reports the following:
[ OK ] Started Network Service.
[ 12.318027] fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
[ 12.325841] libphy: PHY fixed-0:00 not found
[ 12.330191] fec 2188000.ethernet eth0: could not attach to PHY
[ OK ] Started Connection service.
[ 12.375735] fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
[ 12.383478] libphy: PHY fixed-0:00 not found
[ 12.387763] fec 2188000.ethernet eth0: could not attach to PHY
Starting Avahi mDNS/DNS-SD Stack...
Starting Hostname Service...
Starting WPA supplicant...
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started Hostname Service.
[ OK ] Started WPA supplicant.
[ OK ] Reached target Network.
[ OK ] Started Update psplash to network.
Starting Terminate Psplash Boot Screen...
[ OK ] Finished Terminate Psplash Boot Screen.
[ OK ] Reached target Multi-User System.
Starting Update UTMP about System Runlevel Changes...
[ OK ] Finished Update UTMP about System Runlevel Changes.
TechNexion i.MX Release Distro 5.10-hardknott edm-imx6 ttymxc0
edm-imx6 login:
if followed this guide https://developer.technexion.com/docs/building-an-image-with-yocto but updated my local.conf with these values as the sh file did not enter these values right in the configuration:
BASE_BOARD ?= "tc0700"
DISPLAY_INFO ?= "lvds7"
Full configuration file:
local.conf.txt
If i plug in a cable i notice the green led blinking, orange led is off. On the default software the device worked, so it is not a hardware issue.
Part No. S600204020160480000441
Serial No. 22201154000022240001
Model name: TC0710PIMX6QR20E16
Following the readme to compile an image for the pico-imx6ul machine, with the manifest imx-6.1.55-2.2.0.xml
repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b mickledore_6.1.y-next -m imx-6.1.55-2.2.0.xml
repo sync -j4
WIFI_FIRMWARE=n DISTRO=fsl-imx-fb MACHINE=pico-imx6ul BASEBOARD=pi source tn-setup-release.sh -b build
bitbake -c menuconfig u-boot -v
ends in an infinite loop on u-boot configuration, which expects an input for the TEXT_BASE configuration item.
[...]
Text Base (TEXT_BASE) [] (NEW)
Text Base (TEXT_BASE) [] (NEW)
Text Base (TEXT_BASE) [] (NEW)
Text Base (TEXT_BASE) [] (NEW)
T
Summary: There were 3 WARNING messages.
Execution was interrupted, returning a non-zero exit code.
What is the expected value for this item ?
Regards,
Nelio
Can you share how I can enable a DTBO? I cant seem to find any solid guide.
I'm building Yocto for my pico-imx7d on a hobbit board.
Manifest
https://github.com/TechNexion/tn-imx-yocto-manifest
branch: sumo_4.14.y_GA-stable
My env setup
WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-fb MACHINE=pico-imx7 BASEBOARD=hobbit source edm-setup-release.sh -b build
My Issues
When I flashed it to eMMC, I had some issues in u-boot.
My fixes
diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h
index 644cac4e91..172c2de1df 100644
--- a/include/configs/pico-imx7d.h
+++ b/include/configs/pico-imx7d.h
@@ -211,10 +211,10 @@
"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
"setfdt=" \
"if test -n ${wifi_module} && test ${wifi_module} = qca; then " \
- "setenv fdtfile ${som}-${form}-${wifi_module}_${baseboard}${mcu}.dtb; " \
+ "setenv fdtfile ${som}-${form}-${wifi_module}-${baseboard}${mcu}.dtb; " \
"setenv form ${form}-${wifi_module}; " \
"else " \
- "setenv fdtfile ${som}-${form}_${baseboard}${mcu}.dtb;" \
+ "setenv fdtfile ${som}-${form}-${baseboard}${mcu}.dtb;" \
"fi\0" \
"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile}\0" \
"mmcboot=echo Booting from mmc ...; " \
diff --git a/recipes-bsp/u-boot/u-boot-uenv_2.0.bb b/recipes-bsp/u-boot/u-boot-uenv_2.0.bb
index 3cbbbb6..144eadc 100644
--- a/recipes-bsp/u-boot/u-boot-uenv_2.0.bb
+++ b/recipes-bsp/u-boot/u-boot-uenv_2.0.bb
@@ -105,7 +105,7 @@ python do_setuenv() {
print("machine:{} board:{} display:{}".format(machine, board, display))
baseboard = parse_baseboard(machine, d.getVar("BASE_BOARD"))
displayinfo = parse_display(machine, d.getVar("BASE_BOARD"), d.getVar("DISPLAY_INFO"))
- wifi_module = parse_radio(d.getVar("WIFI_MODULES"))
+ wifi_module = parse_radio(d.getVar("RF_FIRMWARES"))
print("displayinfo:{} wifi_module:{}".format(displayinfo, wifi_module))
with open(envfile, 'w') as f:
if baseboard is not None:
My question
Do these changes seem right, or am I doing something else wrong?
When i tried to build the fsl-imx-wayland distro for tc0710 board yocto resulted in a error during the bashtop do_configure():
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_configure
| NOTE: make clean
| make: *** No rule to make target 'clean'. Stop.
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
This error is due to the makefile of bashtop not containing a clean target. To fix this i added CLEANBROKEN = "1" to the recipe. This will skip the clean step.
See https://docs.yoctoproject.org/2.4/mega-manual/mega-manual.html#var-CLEANBROKEN
Based on the configuration made on issue #23 reported here:
repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b mickledore_6.1.y-next -m imx-6.1.55-2.2.0.xml
repo sync -j4
WIFI_FIRMWARE=n DISTRO=fsl-imx-fb MACHINE=pico-imx6ul BASEBOARD=pi source tn-setup-release.sh -b build
Then tweaking recipes-bsp/u-boot/u-boot-tn-imx/ files to avoid the issue #23.
diff --git a/recipes-bsp/u-boot/u-boot-tn-imx/rescue-fragment-uboot.cfg b/recipes-bsp/u-boot/u-boot-tn-imx/rescue-fragment-uboot.cfg
index c9275e20d9f0..5ec9ebeb5807 100644
--- a/recipes-bsp/u-boot/u-boot-tn-imx/rescue-fragment-uboot.cfg
+++ b/recipes-bsp/u-boot/u-boot-tn-imx/rescue-fragment-uboot.cfg
@@ -1,2 +1,3 @@
+CONFIG_TEXT_BASE=0x0
CONFIG_BOOTDELAY=0
# CONFIG_DISTRO_DEFAULTS is not set
diff --git a/recipes-bsp/u-boot/u-boot-tn-imx_2023.04.bb b/recipes-bsp/u-boot/u-boot-tn-imx_2023.04.bb
index d2897151e53e..75c1a8a6bf46 100644
--- a/recipes-bsp/u-boot/u-boot-tn-imx_2023.04.bb
+++ b/recipes-bsp/u-boot/u-boot-tn-imx_2023.04.bb
@@ -24,7 +24,7 @@ SRCBRANCH = "tn-imx_v2023.04_6.1.55_2.2.0-next"
SRC_URI = "${SRCSERVER};branch=${SRCBRANCH}${SRCOPTIONS}"
SRCREV = "174e58e79da52505b466ebf38c25a0228058003a"
SRC_URI:append = " file://splash.bmp"
-SRC_URI:append:rescue = " file://rescue-fragment-uboot.cfg"
+SRC_URI:append = " file://rescue-fragment-uboot.cfg"
Compiling u-boot fails with the following error:
| .../imx6-6.1.55/build/tmp/work/pico_imx6ul-poky-linux-gnueabi/u-boot-tn-imx/2023.04-r0/git/include/configs/pico-imx6ul.h:15:10: fatal error: imx6_spl.h: No such file or directory
| 15 | #include "imx6_spl.h"
| | ^~~~~~~~~~~~
Is there any clue to fix it ?
Regards,
Nelio
While testing recent changes in sumo_4.14.98-2.0.0_GA-next
I run into an issue
that seems to be related to commit 79e52eb. This commit is adds glmark2 to RDEPENDS_${PN}
for thermal-imx-test
recipe. This is raising issues when building images (i.e. fsl-image-qt5) with DISTRO=fsl-imx-fb
, because no backend flavour ends up being configured for glmark2 at build time. I can try to fix it and send a patch, but I'd like someone to advice where this should be best fixed. Shall we add more condition to exclude thermal-imx-test
from the packagegroup in packagegroup-tn-tools.bb
?
Hi, I was wondering if we could get line 28 of tn-base.inc removed, or at least adjusted in a good way? It assumes a directory structure of sources which may not be correct for everyone (it certainly wasn't for me). If BSPDIR
is not set, then the OVERRIDES
variable incorrectly expands, causing several random issues when it comes to building recipes.
On kirkstone_5.15.52-2.1.0-stable
, when using ALT_FDTNAME variable to specify a custom dtb, a following error occurs:
ERROR: u-boot-uenv-2.0-r0 do_setuenv: Error executing a python function in exec_func_python() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:do_setuenv(d)
0003:
File: '/home/ubuntu/yocto/sources/meta-tn-imx-bsp/recipes-bsp/u-boot/u-boot-uenv_2.0.bb', lineno: 160, function: do_setuenv
0156: f.seek(0, 0)
0157: bb.note("Generated uEnv.txt\n{}".format(f.read()))
0158:
0159: # Conjure up appropriate uEnv.txt settings
*** 0160: gen_uenvtxt(d)
0161:}
0162:
0163:addtask setuenv after do_configure before do_compile
0164:
File: '/home/ubuntu/yocto/sources/meta-tn-imx-bsp/recipes-bsp/u-boot/u-boot-uenv_2.0.bb', lineno: 153, function: gen_uenvtxt
0149: f.write("panel={}\n".format(panel))
0150: f.write("bootcmd_mmc=run loadimage;run mmcboot;\n")
0151: if alt_fdt is not None:
0152: f.write("alt_fdtname={}\n".format(alt_fdt))
*** 0153: f.write("uenvcmd=setenv has_fdt 1; setenv fdtname ${alt_fdtname}; setenv fdtfile ${alt_fdtname}.dtb; {}run bootcmd_mmc;\n".format(uenv_cmd if uenv_cmd is not None else ""))
0154: else:
0155: f.write("uenvcmd={}run bootcmd_mmc;\n".format(uenv_cmd if uenv_cmd is not None else ""))
0156: f.seek(0, 0)
0157: bb.note("Generated uEnv.txt\n{}".format(f.read()))
Exception: KeyError: 'alt_fdtname'
The error is caused by unescaped curly braces in format string. ${alt_fdtname}
should literally be included in uEnv.txt, therefore the curly braces need to be escaped by doubling them.
The following patch fixes the issue:
Hello,
it appears that the MACHINEOVERRIDES from local.conf.sample causes issues, while RF_FIRMWARES is set to empty string, i.e. ''. Most probably this will cause issues for sound cards as well.
MACHINEOVERRIDES =. "${@'' if d.getVar('RF_FIRMWARES', True) is None else '%s:' % ':'.join([fw.lower() for fw in d.getVar('RF_FIRMWARES', True).split(' ') if fw])}"
Invoking:
MACHINE=pico-imx8mq DISTRO=fsl-imx-xwayland source edm-setup-release -b build
-> We don't put WIFI_FIRMWARES into the build.
Grants the RF_FIRMWARES variables gets set as RF_FIRMWARES = ''
Once the MACHINEOVERRIDES as stated above gets evaluated, you end up with empty string replacing %s: -> ':' and appending to current MACHINEOVERRIDES
So at the end only a colon is appended to MACHINEOVERRIDES.
Let's say MACHINEOVERRIDES is:
imx:mx8:mx8m
and we expand MACHINEOVERRIDES from above. The result is:
imx:mx8:mx8m:
The colon overrides the FILESPATH and instead of looking into mx8m first, it looks into default directories first. So your patches won't get applied due to this mismatch.
My example was:
imx:mx8:mx8m:imxdrm:imxdcss:imxvpu:imxvpuhantro:imxgpu:imxgpu3d:mx8mq:voicehat::pico-imx8mq:aarch64
It appears the double colon here represents the default path, so patches from defaults if any get applied before patches from mx8mq. But the defaults should be applied as last...
Description
PICO-PI-IMX7 yocto builds failed at the hardknott_5.10.52-2.1.0-next branch
Steps to reproduce the issue:
$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake -k core-image-base
Describe the results you received:
Build success
Describe the results you expected:
Build failed 2 package
Additional information you deem important (e.g. issue happens only occasionally):
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/drivers/gpu/drm/vivante/vivante_drv.c:52:10: fatal error: drm/drmP.h: No such file or directory
52 | #include <drm/drmP.h>
| ^~~~~~~~~~~~
compilation terminated.
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/scripts/Makefile.build:280: recipe for target 'drivers/gpu/drm/vivante/vivante_drv.o' failed
make[5]: *** [drivers/gpu/drm/vivante/vivante_drv.o] Error 1
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm/vivante' failed
make[4]: *** [drivers/gpu/drm/vivante] Error 2
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/scripts/Makefile.build:497: recipe for target 'drivers/gpu/drm' failed
make[3]: *** [drivers/gpu/drm] Error 2
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/scripts/Makefile.build:497: recipe for target 'drivers/gpu' failed
make[2]: *** [drivers/gpu] Error 2
make[2]: *** Waiting for unfinished jobs....
CC lib/crc-ccitt.o
CC lib/crc16.o
AR drivers/tty/built-in.a
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work-shared/pico-imx7/kernel-source/Makefile:1824: recipe for target 'drivers' failed
make[1]: *** [drivers] Error 2
make[1]: *** Waiting for unfinished jobs....
***
*** Can't find default configuration "arch/../configs/pico-imx7d_spl_defconfig"!
***
/home/pino/workspace/Opensource/tn-imx-yocto/build-x11-pico-imx7/tmp/work/pico_imx7-poky-linux-gnueabi/u-boot-tn-imx/2021.04-r0/git/scripts/kconfig/Makefile:110: recipe for target 'pico-imx7d_spl_defconfig' failed
Additional details (revisions used, host distro, etc.):
Build Configuration:
BB_VERSION = "1.50.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-18.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "pico-imx7"
DISTRO = "fsl-imx-x11"
DISTRO_VERSION = "5.10-hardknott"
TUNE_FEATURES = "arm vfp cortexa7 neon thumb callconvention-hard"
TARGET_FPU = "hard"
meta
meta-poky = "HEAD:14c5392fded42f17962e1cc07fcc0446881b4fa0"
meta-oe
meta-multimedia
meta-python = "HEAD:5a4b2ab29d38c02535f24d5308cc40615739f557"
meta-freescale = "HEAD:2027a8045384463b7c793381dd887b0591037e2f"
meta-freescale-3rdparty = "HEAD:060967a7df43e8505568aa3d54fd8addcecab98d"
meta-freescale-distro = "HEAD:916df6d24c0a33a3b1533bde70b6a2724ec77af4"
meta-bsp
meta-sdk
meta-ml
meta-v2x = "HEAD:426311a3f4e6936125c0599a34d8f6133dd2460d"
meta-nxp-demo-experience = "HEAD:71d85758f4189a065e69b10527e4014e998d0a80"
meta-gnome
meta-networking
meta-filesystems = "HEAD:5a4b2ab29d38c02535f24d5308cc40615739f557"
meta-python2 = "HEAD:8db9e4f6ceae33d7a4f55453d31e69f9858af4eb"
meta-chromium = "HEAD:8be1d3a0ba0cf32e61144900597207af5698c10d"
meta-clang = "HEAD:7ef47d048267cf755c496a3962b34314f6f1f1e1"
meta-qt5 = "HEAD:a00af3eae082b772469d9dd21b2371dd4d237684"
meta-tn-imx-bsp = "HEAD:46155700ea84ba5e6950631127ca5c54523bc3ec"
meta-nxp-nfc = "HEAD:5d05c57fc8faf3f1bc95c1702e1a6aa78d83412f"
Hi,
I have this issue:
https://hub.mender.io/t/issues-with-systemd-networkd/2302
I need ethernet/yocto/x11 in imx7d-pico to a new comercial project.
How can I solve ?
On kirkstone_5.15.52-2.1.0-stable
, specifying a custom fdtfile using ALT_FDTNAME is not working as expected. When using the variable, these two lines are added to uEnv.txt:
alt_fdtname=<content_of_ALT_FDTNAME>
uenvcmd=setenv has_fdt 1; setenv fdtname ${alt_fdtname}; setenv fdtfile ${alt_fdtname}.dtb; run bootcmd_mmc;
fdtfile
variable is set correctly, but it is later overwritten when setfdt
is run from mmcboot
, which is run from bootcmd_mmc
.
bootcmd_mmc=run loadimage;run mmcboot;
mmcboot=echo Booting from mmc ...; run m4boot; run searchbootdev; run mmcargs; echo baseboard is ${baseboard}; run setfdt; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then echo WARN: Cannot load the DT; echo fall back to load the default DT; setenv baseboard ${default_baseboard}; run setfdt; run loadfdt; bootz ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
setfdt=if test -n ${wifi_module} && test ${wifi_module} = qca; then setenv fdtfile ${som}-${form}-${baseboard}-${wifi_module}${mcu}.dtb; else setenv fdtfile ${som}-${form}-${baseboard}
has_fdt
is set in uenvcmd and I assume it is supposed to be a flag that tells the other commands not to overwrite fdtfile
. This is, however, not checked and fdtfile
is always overwritten.
We have 6 displays where ethernet does not work using the sample builds. We tried building using yocto (https://developer.technexion.com/docs/building-an-image-with-yocto) as well as the prebuild images (https://download.technexion.com/demo_software/TEP/IMX7/tep0700-imx7d/DiskImage/) yocto and ubuntu. All these images have the same problem. the lights at the ethernet port do not turn on. Both the POE port as the normal port do not work.
On the preinstalled software the ethernet does work, so it is not a hardware issue.
After a long research we found out our displays might be a different hardware version (A1). This might be the reason it does not work, but we cannot say for sure we have the A1 version.
Details of one of the displays:
Part No: S600406010040480000511
SN number: 17202213400018240005
Model name: TEP0700IMX7DR10E04LPOE
TLDR 2 questions:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.