littleVGL now supports FreeBSD framebuffer

Chris Johns chrisj at rtems.org
Wed Aug 14 22:20:08 UTC 2019


On 15/8/19 2:07 am, Vijay Kumar Banerjee wrote:
> I wrote a patch for lv_drivers repository to support FreeBSD framebuffer
> in fbdev, which they merged to the master today. 

Well done, that is great.

> I have tested
> the driver to be working with an app that I wrote on FreeBSD and
> tested it on Beaglebone black image 12-STABLE.

Awesome.

> I intend to write an RSB recipe to build littleVGL and seek some guidance
> on how to proceed. :)

Please review
https://docs.rtems.org/branches/master/user/rsb/third-party-packages.html

I suggest you see how the curl package is done. It is a nice clean example.

The packages are sort of based on the FreeBSD ports layout. Littlevgl is not a
port so we can use `graphics/littlevgl`.

The file pattern used in the RSB for a 3rd party package is:

- A buildset or bset file, this is the top level wrapper for the config files
and selects the version to be built...

https://git.rtems.org/rtems-source-builder/tree/rtems/config/ftp/curl.bset

- The version specific config file that sets the version and checksum for the
package. It includes the build config or recipe...

https://git.rtems.org/rtems-source-builder/tree/rtems/config/ftp/curl-7.65.1-1.cfg

Note, this is a 3prd party package so includes `rtems-bsp.cfg`. This create a
suitable environment to build a package for a BSP.

- The build config file ...

https://git.rtems.org/rtems-source-builder/tree/source-builder/config/curl-1.cfg

These configs do not include any other configs and could be used to build a
native package for a host or a 3rd party package for RTEMS.

- The `%prep` section prepares the source to build. For github if we are
building from master we select a commit and fetch a compressed tarball. This
means we can snapshot the source when making a release. The RSB can work
directly with the git repo however this has proven to be more fragile than a
tarball.

- The `%build` section builds the package. The contents of this file are used to
create a shell script. Use --dry-run, --trace and --log to debug what is
happening. The shell script contents should be viewable in the log file if a dry
run does not created it. There is a lot of trace but searching will help you
locate the piece you are interested in. The `source_dir_*` shell variable is the
directory created by extracting the tarfile. The macros `%{build_directory}` and
`%{host_build_flags}` are defined in `defaults.mc` and should handle the
compiler and flags. You may want to check libbsd is installed in your config,
see ...

https://git.rtems.org/rtems-source-builder/tree/rtems/config/rtems-bsp.cfg#n198

.. for an example of how to check and add `%error This package needs libbsd,
please build and install` or something like that as an error. The paths to
install to are set up for you, these match how a BSP and RTEMS are installed.
The layout needs to be followed or applications will not be able to find the
header or the library.

- The `%install` section installs the package. The install process is to a
staging area `${SB_BUILD_ROOT}`. Nothing is installed unless all parts build so
we do not have an inconsistent build in the install prefix.

Chris



More information about the devel mailing list