QB4-dev / meta-somlabs-demo

Yocto demo layer for SOMLabs boards
MIT License
1 stars 0 forks source link

It is not clear for me how do I make image from your description to this demo #2

Open loki-amorf opened 4 years ago

loki-amorf commented 4 years ago

You have good example at https://github.com/QB4-dev/meta-somlabs-bsp, but this one unclear how to bake it. To be honest I looking for image (package) to learn Qt5 building applications for embedded system like somlabs imx6ull board. I have one with display but without wifi. I've already done a lot attempts to build images from different sources but no one was enough. Every time I get different troubles, for example: I've managed to build two variants of images console and Qt5 from https://github.com/SoMLabs/meta-somlabs with rocko branch, they are really good working but I had no luck to build qt5 sdk for them, every time I got different errors. But I've managed to build pure sdk without qt. If I switch to warrior branch https://github.com/SoMLabs/meta-somlabs, framebuffer doesn't work, and other different troubles were present with rng tools for example.

QB4-dev commented 4 years ago

Hello @loki-amorf You are right, I didn,t docummented this layer well. So to quickly help you:

  1. You are doing exacly same steps as in https://github.com/QB4-dev/meta-somlabs-bsp
  2. If you succedeed with core-image-minimal you are ready to create an image with gui and Qt5
  3. You need to add 2 more layers to your Yocto layer setup:
  ${YOCTO_ROOT}/yocto-layers/meta-qt5 \
  ${YOCTO_ROOT}/yocto-layers/meta-somlabs-demo \

just paste this two lines content to your visionsom_build/conf/bblayers.conf

You can also use complete example layer config for this layer(file): https://github.com/QB4-dev/meta-somlabs-demo/blob/master/conf/bblayers.conf.sample

  1. Inside your config file: visionsom_build/conf/local.conf you need to change following lines:

MACHINE ?= "visionsom6ull-wifi-cb-std" -> MACHINE ?= visionsom6ull-cb-std because You are using module without wifi

DISTRO ?= "poky" -> DISTRO ?= "visionsom-linux" because this distro will block unnecessary components like "X11,wayland, directfb, vulkan, opengl" etc. that may led to build problems

  1. Now you can start to build bitbake visionsom-linux-image

  2. Burn this image exacly as core-image form meta-somlabs-bsp and test it

  3. To create SDK run this command: bitbake visionsom-linux-image -c populate_sdk

Should create sdk installer with Qt support without errors. Let me know if you have any troubles

loki-amorf commented 4 years ago

I've already done this! Thank's a lot!

пн, 22 июн. 2020 г. в 13:40, QB4-dev notifications@github.com:

Hello @loki-amorf https://github.com/loki-amorf You are right, I didn,t docummented this layer well. So to quickly help you:

  1. You are doing exacly same steps as in https://github.com/QB4-dev/meta-somlabs-bsp
  2. If you succedeed with core-image-minimal you are ready to create an image with gui and Qt5
  3. You need to add 2 more layers to your Yocto layer setup:

    ${YOCTO_ROOT}/yocto-layers/meta-qt5 \ ${YOCTO_ROOT}/yocto-layers/meta-somlabs-demo \

just paste this two lines content to your visionsom_build/conf/bblayers.conf

You can also use complete example layer config for this layer(file):

https://github.com/QB4-dev/meta-somlabs-demo/blob/master/conf/bblayers.conf.sample

  1. Inside your config file: visionsom_build/conf/local.conf you need to change following lines:

MACHINE ?= "visionsom6ull-wifi-cb-std" -> MACHINE ?= visionsom6ull-cb-std because You are using module without wifi

DISTRO ?= "poky" -> DISTRO ?= "visionsom-linux" because this distro will block unnecessary components like "X11,wayland, directfb, vulkan, opengl" etc. that may led to build problems

1.

Now you can start to build bitbake visionsom-linux-image 2.

Burn this image exacly as core-image form meta-somlabs-bsp and test it 3.

To create SDK run this command: bitbake visionsom-linux-image -c populate_sdk

Should create sdk installer with Qt support without errors. Let me know if you have any troubles

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-647435798, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLE77W737WHIDRPBVVATRX4YKDANCNFSM4ODLZWUA .

QB4-dev commented 4 years ago

@loki-amorf good job :)

If you need help with setup QtCreator to work with Yocto try this tutorial(it is for stm32mp1 but there is almost no difference) https://www.emsyslabs.com/configure-new-kit-in-qtcreator-based-on-yocto-meta-toolchain-qt5/

Also if you want to stop default demo app to test your apps run /etc/init.d/visionsom-ui stop' or to make it permanent deletevisionsom-ui' symlink from `/etc/rc5.d'

loki-amorf commented 4 years ago

One important thing which nobody said before is that we need to change packagegroup-qt5-toolchain-target.bb, because it contains a lot of not needed staff by default, which causes a bunch of errors during compilation for imx6ull platform.

пн, 22 июн. 2020 г. в 15:19, QB4-dev notifications@github.com:

@loki-amorf https://github.com/loki-amorf good job :)

If you need help with setup QtCreator to work with Yocto try this tutorial(it is for stm32mp1 but there is almost no difference)

https://www.emsyslabs.com/configure-new-kit-in-qtcreator-based-on-yocto-meta-toolchain-qt5/

Also if you want to stop default demo app to test your apps run /etc/init.d/visionsom-ui stop' or to make it permanent delete visionsom-ui' symlink from `/etc/rc5.d'

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-647481316, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLEYCDIHJSZWVE25LLVLRX5D5PANCNFSM4ODLZWUA .

QB4-dev commented 4 years ago

@loki-amorf I am looking right now on it: https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb

and DISTRO_FEATURES is doing the job: https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/conf/distro/visionsom-linux.conf#L9

It turns off opengl related stuff in Qt5 because iMX6ULL has no GPU and it doesn't support OpenGL

loki-amorf commented 4 years ago

Maybe it wasn't right decision, but I cut packagegroup-qt5-toolchain-target.bb https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb on VisionSom board image regarding to https://github.com/varigit/meta-variscite-boot2qt/blob/morty-var01/recipes-qt/packagegroups/packagegroup-b2qt-embedded-qt5-toolchain-target.bb I'm like newborn in this sphere, so I try different approaches to reach the goal) I would be grateful if you could recommend some direction where to find information about building Yocto, especially with the Qt framework. I've already compiled a Qt image from this tutorial https://wiki.somlabs.com/index.php/Yocto_for_VisionSOM-6ULL/6UL and I've managed to crosscompile a couple applications on it.

пн, 22 июн. 2020 г. в 15:46, QB4-dev notifications@github.com:

@loki-amorf https://github.com/loki-amorf I am looking right now on it:

https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb

and DISTRO_FEATURES is doing the job:

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/conf/distro/visionsom-linux.conf#L9

It turns off opengl related stuff in Qt5 because iMX6ULL has no GPU and it doesn't support OpenGL

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-647496078, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLE7BMMFBYETF3DBCU6TRX5HB3ANCNFSM4ODLZWUA .

loki-amorf commented 4 years ago

...and one more question: how do I invert (flip) EP0790M09 touchscreen output in Qt applications in Yocto?

пн, 22 июн. 2020 г. в 15:46, QB4-dev notifications@github.com:

@loki-amorf https://github.com/loki-amorf I am looking right now on it:

https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb

and DISTRO_FEATURES is doing the job:

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/conf/distro/visionsom-linux.conf#L9

It turns off opengl related stuff in Qt5 because iMX6ULL has no GPU and it doesn't support OpenGL

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-647496078, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLE7BMMFBYETF3DBCU6TRX5HB3ANCNFSM4ODLZWUA .

QB4-dev commented 4 years ago

I would be grateful if you could recommend some direction where to find information about building Yocto, especially with the Qt framework.

I can recomend this book(packtpub gives some free books from time to time): https://www.packtpub.com/virtualization-and-cloud/embedded-linux-development-using-yocto-project-cookbook-second-edition

And the most important sources of information about Yocto: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html And Qt for embedded: https://doc.qt.io/qt-5/embedded-linux.html

how do I invert (flip) EP0790M09 touchscreen output in Qt applications in Yocto?

If you using my meta-somlabs-bsp layer, you will find file : /etc/profile.d/qt5-env.sh and edit this line:

export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=180

to export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0

and reboot system

To make it permanent in your image add recipe as this one to your custom layer with higher priority than 'meta-somlabs-bsp' https://github.com/QB4-dev/meta-somlabs-bsp/tree/master/dynamic-layers/qt5-layer/recipes-qt/qt5-env

loki-amorf commented 4 years ago

If you using my meta-somlabs-bsp layer..

But if I use different layer, what do I need to do in that case?

Btw, how do I add absent qt package (serialport for example) to sdk on my host machine for crosscompile?

On Tue, 23 Jun 2020 at 09:11, QB4-dev notifications@github.com wrote:

I would be grateful if you could recommend some direction where to find information about building Yocto, especially with the Qt framework.

I can recomend this book(packtpub gives some free books from time to time):

https://www.packtpub.com/virtualization-and-cloud/embedded-linux-development-using-yocto-project-cookbook-second-edition

And the most important sources of information about Yocto: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html And Qt for embedded: https://doc.qt.io/qt-5/embedded-linux.html

how do I invert (flip) EP0790M09 touchscreen output in Qt applications in Yocto?

If you using my meta-somlabs-bsp layer, you will find file : /etc/profile.d/qt5-env.sh and edit this line:

export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=180

to export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0

and reboot system

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-647931230, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLEYOZ6DA33QXMOHDOLDRYBBSHANCNFSM4ODLZWUA .

QB4-dev commented 4 years ago

@loki-amorf

But if I use different layer, what do I need to do in that case?

QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS environment variable must be set and exported before your Qt5 program starts export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=180

Btw, how do I add absent qt package (serialport for example) to sdk on my host machine for crosscompile?

Add qt packages that you need to your image:

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/recipes-images/example/visionsom-linux-image.bb#L51-L60

QT_LIBS is then added to IMAGE_INSTALL

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/recipes-images/example/visionsom-linux-image.bb#L68-L76

And then rebuild your SDK bitbake visionsom-linux-image -c populate_sdk

loki-amorf commented 4 years ago

And then rebuild your SDK bitbake visionsom-linux-image -c populate_sdk

I always did compile SDK with bitbake meta-toolchain-qt5 command. meta-toolchain-qt5.bb contains string: inherit populate_sdk populate_sdk_qt5

What is the difference between bitbake visionsom-linux-image -c populate_sdk and bitbake meta-toolchain-qt5?

пт, 26 июн. 2020 г. в 09:44, QB4-dev notifications@github.com:

@loki-amorf https://github.com/loki-amorf

But if I use different layer, what do I need to do in that case?

QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS environment variable must be set and exported before your Qt5 program starts export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=180

Btw, how do I add absent qt package (serialport for example) to sdk on my host machine for crosscompile?

Add qt packages that you need to your image:

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/recipes-images/example/visionsom-linux-image.bb#L51-L60

QT_LIBS is then added to IMAGE_INSTALL

https://github.com/QB4-dev/meta-somlabs-demo/blob/6254ac0ed0700724cfa3d63dd15d4a9c0e66af35/recipes-images/example/visionsom-linux-image.bb#L68-L76

And then rebuild your SDK bitbake visionsom-linux-image -c populate_sdk

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-650005873, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLE253U3KT5KAB63EQ4DRYQ7VVANCNFSM4ODLZWUA .

QB4-dev commented 4 years ago

@loki-amorf meta-toolchain-qt5 is probably old way of SDK baking https://stackoverflow.com/questions/49029703/what-is-the-difference-in-yocto-meta-extsdk-toolchain-vs-do-populate-sdk-ext-f

loki-amorf commented 4 years ago

On Fri, 26 Jun 2020 at 23:39, QB4-dev notifications@github.com wrote:

@loki-amorf https://github.com/loki-amorf meta-toolchain-qt5 is probably old way of SDK baking

https://stackoverflow.com/questions/49029703/what-is-the-difference-in-yocto-meta-extsdk-toolchain-vs-do-populate-sdk-ext-f

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QB4-dev/meta-somlabs-demo/issues/2#issuecomment-650389821, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXOLE3JLNGWWNIZEQOEQMTRYUBPFANCNFSM4ODLZWUA .

I’ve tested: those commands produces sdk files *.sh with different size, command that you’ve suggested produced the biggest one. I will investigate further)

Thank a lot you for great and rapid response! You’ve helped me.