Seeed-Studio / meta-seeed-cm4

MIT License
14 stars 10 forks source link

Yocto build is broken #12

Closed swrpug closed 7 months ago

swrpug commented 1 year ago

Following the instructions provided here: https://wiki.seeedstudio.com/reTerminal-Yocto/, the build fails here:

| make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. | CC [M] /home/tim/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.o | /home/tim/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.c: In function 'ili9881d_dsi_probe': | /home/tim/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.c:501:12: error: 'struct drm_panel' has no member named 'prepare_upstream_first' | 501 | ctx->panel.prepare_upstream_first = true; | | ^ | make[3]: *** [/home/tim/reterminal-yocto/build/tmp/work-shared/seeed-reterminal/kernel-source/scripts/Makefile.build:280: /home/tim/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.o] Error 1

Looking at the github actions, this failure is 2 months old. Is there a plan to fix this?

hecko commented 1 year ago

I have also come across this today

Also documented here https://github.com/Seeed-Studio/seeed-linux-dtoverlays/issues/76

ERROR: seeed-linux-dtoverlays-1.0-r0 do_compile: oe_runmake failed
ERROR: seeed-linux-dtoverlays-1.0-r0 do_compile: Execution of '/home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/temp/run.do_compile.2983622' failed with exit code 1
ERROR: Logfile of failure stored in: /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/temp/log.do_compile.2983622
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 16 ARCH=arm64 KBUILD=/home/marcel/reterminal-yocto/build/tmp/work-shared/seeed-reterminal/kernel-source O=/home/marcel/reterminal-yocto/build/tmp/work-shared/seeed-reterminal/kernel-build-artifacts CROSS_COMPILE=aarch64-poky-linux- all_rpi
| make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
|   CC [M]  /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.o
| /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.c: In function 'ili9881d_dsi_probe':
| /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.c:501:12: error: 'struct drm_panel' has no member named 'prepare_upstream_first'
|   501 |  ctx->panel.prepare_upstream_first = true;
|       |            ^
| make[3]: *** [/home/marcel/reterminal-yocto/build/tmp/work-shared/seeed-reterminal/kernel-source/scripts/Makefile.build:280: /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d/ili9881d.o] Error 1
| make[2]: *** [/home/marcel/reterminal-yocto/build/tmp/work-shared/seeed-reterminal/kernel-source/Makefile:1825: /home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/git/modules/ili9881d] Error 2
| make[1]: *** [Makefile:185: __sub-make] Error 2
| make: *** [Makefile:157: all_rpi] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/home/marcel/reterminal-yocto/build/tmp/work/seeed_reterminal-poky-linux/seeed-linux-dtoverlays/1.0-r0/temp/run.do_compile.2983622' failed with exit code 1
ERROR: Task (/home/marcel/reterminal-yocto/layers/meta-seeed-cm4/recipes-kernel/seeed-linux-dtoverlays/seeed-linux-dtoverlays.bb:do_compile) failed with exit code '1'

@bigbearishappy would be absolutely amazing if you can help with this. Im available to support your fixes with quick tests / fast compilation.

Additionally, If trying to compile for kirkstope as per here https://github.com/Seeed-Studio/meta-seeed-cm4/blob/main/build-reterminal-image.sh I get the following:

marcel@yocto:~/reterminal-yocto/layers/poky/build$ MACHINE="seeed-reterminal" bitbake rpi-test-image

ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    MACHINE=seeed-reterminal is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.
hecko commented 1 year ago

Fix proposed here: https://github.com/Seeed-Studio/seeed-linux-dtoverlays/issues/76#issuecomment-1792372585

bigbearishappy commented 12 months ago

@swrpug As you have a reTerminal DM in hand. It's better for you to use the yocto kirkstone to build the image. The compile step on seeed's wiki need to update now. Here is the detail steps for you to compile the kirkstone image:

mkdir -p kirkstone/layers && cd kirkstone/layers

git clone -b kirkstone https://github.com/openembedded/meta-openembedded.git
git clone -b kirkstone https://github.com/meta-qt5/meta-qt5.git
git clone -b kirkstone git://git.yoctoproject.org/meta-raspberrypi
git clone -b main https://github.com/Seeed-Studio/meta-seeed-cm4.git
git clone -b kirkstone git://git.yoctoproject.org/poky

cd ..
source layers/poky/oe-init-build-env

bitbake-layers add-layer ../layers/meta-raspberrypi
bitbake-layers add-layer ../layers/meta-seeed-cm4
bitbake-layers add-layer ../layers/meta-qt5
bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
bitbake-layers add-layer ../layers/meta-openembedded/meta-python

MACHINE="seeed-reterminal-plus" bitbake rpi-test-image

If you don't want to compil it by yourself. We just release a image of it. You can download and test it in here

We recommand you to use the balenaEtcher as the flash tool for yocto image.

bigbearishappy commented 12 months ago

@hecko First of all, thank you for your work on fix the compile error of this repo. As the dunfell will EOL at Apr 2024.We recommand you to use the kirkstone instead. However, the LCD black issue is still there with kirkstone.I am trying to fix it. Until now,the reason of lcd blank is that the drm driver of kernel mounted later than lcd driver. You can remount the lcd driver after system is up with the following commands:

modprobe -r mipi_dsi
modprobe mipi_dsi
bigbearishappy commented 12 months ago

@hecko The LCD blank issue is fixed now. You can just download the firmware in here to test it. I test it for more than 10 times and all of them work fine. Or you compile it by yourself with the following command:

mkdir -p kirkstone/layers && cd kirkstone/layers

git clone -b kirkstone https://github.com/openembedded/meta-openembedded.git
git clone -b kirkstone https://github.com/meta-qt5/meta-qt5.git
git clone -b kirkstone git://git.yoctoproject.org/meta-raspberrypi
git clone -b main https://github.com/Seeed-Studio/meta-seeed-cm4.git
git clone -b kirkstone git://git.yoctoproject.org/poky

cd ..
source layers/poky/oe-init-build-env

bitbake-layers add-layer ../layers/meta-raspberrypi
bitbake-layers add-layer ../layers/meta-seeed-cm4
bitbake-layers add-layer ../layers/meta-qt5
bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
bitbake-layers add-layer ../layers/meta-openembedded/meta-python

MACHINE="seeed-reterminal" bitbake rpi-test-image
swrpug commented 12 months ago

I can confirm that reterminal-kirkstone-v0.2 does load and come up properly. One notable issue encountered is the LCD display brightness slider. Moving the slider does not change the screen brightness, except that moving it all the way to the left, turns the screen black. Reloading the LCD drivers via ssh has no effect. Only solution so far is to reset the unit.

I did not have success with the image I built my self, still investigating.

bigbearishappy commented 11 months ago

@swrpug About the brightness slider.Have you tried to control file system node of lcd brightness with following command?

echo 127 > /sys/class/backlight/1-0045/brightness
ricdays commented 8 months ago

@bigbearishappy I just tried your script on comment above (https://github.com/Seeed-Studio/meta-seeed-cm4/issues/12#issuecomment-1811858602) and it's throwing me an error.

| make[2]: *** No rule to make target 'arch/arm64/boot/dts/overlays/reTerminal.dtbo'.  Stop.
| make[1]: *** [/home/rd/yocto-reterminal/kirkstone/build/tmp/work-shared/seeed-reterminal/kernel-source/scripts/Makefile.build:500: arch/arm64/boot/dts/overlays] Error 2
| make: *** [/home/rd/yocto-reterminal/kirkstone/build/tmp/work-shared/seeed-reterminal/kernel-source/Makefile:1474: overlays/reTerminal.dtbo] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/rd/yocto-reterminal/kirkstone/layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb:do_compile) failed with exit code '1'

I've also posted on the forum, with no replies so far: https://forum.seeedstudio.com/t/reterminal-reterminal-dm-yocto-kirkstone-build-failing/275536

Can you give any hint?

bigbearishappy commented 8 months ago

@bigbearishappy I just tried your script on comment above (#12 (comment)) and it's throwing me an error.

| make[2]: *** No rule to make target 'arch/arm64/boot/dts/overlays/reTerminal.dtbo'.  Stop.
| make[1]: *** [/home/rd/yocto-reterminal/kirkstone/build/tmp/work-shared/seeed-reterminal/kernel-source/scripts/Makefile.build:500: arch/arm64/boot/dts/overlays] Error 2
| make: *** [/home/rd/yocto-reterminal/kirkstone/build/tmp/work-shared/seeed-reterminal/kernel-source/Makefile:1474: overlays/reTerminal.dtbo] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/rd/yocto-reterminal/kirkstone/layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb:do_compile) failed with exit code '1'

I've also posted on the forum, with no replies so far: https://forum.seeedstudio.com/t/reterminal-reterminal-dm-yocto-kirkstone-build-failing/275536

Can you give any hint?

OK, I will have a try and feed back to you.

ricdays commented 7 months ago

@bigbearishappy any news? I have been trying for more than a week to get this working... I already forgot all the different things I've tried so far.

bigbearishappy commented 7 months ago

@bigbearishappy any news? I have been trying for more than a week to get this working... I already forgot all the different things I've tried so far.

Sorry for my late reply. I have just fix this compile error in here. You can pull the latest code and try it again.

The reason of this error is that when I work with kirkstone before, there is no bb for kernel 6.1, so I add it by myself. But later the meta-raspberrypi add the same bb file for kernel 6.1, and my bb file is just ignored.

bigbearishappy commented 7 months ago

Closing the issue. You can reopen the issue if you have any further and relative problem~

ricdays commented 7 months ago

@bigbearishappy build has just finished! I was finally able to compile it successfully.

Thank you so much for the fix!