Tezi build for Apalis T30

Hi there, I am working towards finding the best starting place for a minimal fastboot linux image on Apalis T30 with support for graphics, networking, Wifi, LVDS, touchscreen, USB storage, and sound.

I’ve tried 3 approaches so far:

  • building LXDE image and removing the extras
  • building poky and adding a window manager or lightweight UI
  • rolling our own with the toradex kernel, latest busybox, and maintaining a root file system

The instructions for openembeeded build and poky build for toradex were good, so I have no problem there setting up the build, and I was able to try each of those out. I was able to try all three approaches, and all had drawbacks.

Question:
In the process of trying out the builds, I noticed that the toradex easy installer is actually much closer to the starting point we want (GitHub - toradex/meta-toradex-tezi: Meta layer to build Toradex Easy Installer images ). I found the github for that, but was unable to build. Is the Apalis T30 checked in there, or is it just an internal build? If so, would I be able to get that without the easy installer app or wec image tool? Or maybe I checked out the wrong branch or missed something?

Also, what else needs to be done to get to a QT “hello world” with that build? I realise a couple portions are internal use to Toradex, I just want to be able to see how close that build is to what we need? Do I need to use a specific Toradex branch to match up with morty or morty-next of tezi and what do you recommend?

Any help on which branches to use or build tweaks to make that work would be appreciated. I am fine with steps to setup open embedded tools and environment, adding layers, and setting the build target. If there is anything more than that, I may need some tips.

Thanks

The Toradex Easy Installer (distro tezi) can be a good starting point what you are trying to do. The init system is quite minimal too, and is inspired by poky-tiny (see also this blog post Embedded Linux Boot Time Optimization - Toradex Modules). Besides that, it uses a read-only squashfs, which does not allow to write onto the rootfs and requires a bit more memory at runtime (since the whole rootfs needs to be in RAM).

The layer on Github was a bit outdated, I just updated to Toradex Easy Installer 1.7 which also contains the necessary bits to build for Apalis T30. You also need to make sure that you have meta-toradex-tegra in your bblayer.conf. The qt-tezi parts are currently not available publicly so you need to remove/adjust the image recipe in recipes-tezi/images/tezi.inc.

Note that we use mainline Linux for Apalis T30 (machine apalis-t30-mainline), which does not provide graphics acceleration… Also I am not sure about LVDS state… It should be possible to use downstream kernel, but we did not tried integrating the accelerated graphics drivers in Toradex Easy Installer… If you need acceleration and a downstream kernel, than maybe using our regular BSP + poky-tiny is probably the easier approach.

We don’t need accelerated graphics, but we do need LVDS support. Is the LVDS support only available in the accelerated graphics 3.x kernel?

What’s the best approach for a minimal kernel 3.x? You probably can’t apply the patch from mainline 4.x to 3.x? I’m imagining I’d have to manually use menuconfig and manually applying the applicable changes, or is there an easier way?

What is the minimum to get to QT running if I start with poky-tiny or roll my own? Do I need X windows as well as QT? Or is there another approach that’s lightweight/easier alternate to QT?

We don’t need accelerated graphics, but we do need LVDS support. Is the LVDS support only available in the accelerated graphics 3.x kernel?

On the Apalis T30 LVDS is actually realised by regular parallel RGB going through an on-module LVDS transceiver Thine THC63LVD827 which may be configured by means of regular GPIOs. In downstream we did name them and distribute some fixed configuration scripts (e.g. /usr/bin/lvds-single-channel.sh and /usr/bin/lvds-dual-channel.sh). You may use a similar script with mainline just as well.

What’s the best approach for a minimal kernel 3.x?

Either start with our console-tdx-image or just regular poky-tiny.

You probably can’t apply the patch from mainline 4.x to 3.x?

I’m not sure what exact patch you are now talking about. But, yes, patches from 4.x probably won’t easily apply on 3.x.

I’m imagining I’d have to manually use menuconfig and manually applying the applicable changes, or is there an easier way?

Sorry, what exact changes are you talking about?

What is the minimum to get to QT running if I start with poky-tiny or roll my own? Do I need X windows as well as QT?

In our downstream using X11 is mandatory to get any kind of hardware accelerated graphics/multimedia going. The Toradex Easy Installer e.g. uses still Qt 4 with just a regular frame buffer (e.g. /dev/fb). Later Qt versions may have certain requirements for OpenGL and the like which one usually wants hardware accelerated but a software-only Mesa may be an option as well. Using mainline one may also use the so-called DRM dumb buffer backend which we may use in future Toradex Easy Installer versions.

Or is there another approach that’s lightweight/easier alternate to QT?

Of course one could also just use GTK+ but this is not so widely adopted in the embedded industry. There are also countless other graphics frameworks some of which our partner network companies may know more about.