Adding hardware support for external displays in core


#1

I have a PiTFT Plus - a display which connects to the GPIO port on a Pi. They provide a funky magic script to set it up along with manual instructions.

This Installs some packages, updates config.txt and udev rules and so on.

How can this be made to work on core? I imagine some kind of snap could build the necessary parts with python modules needed, but updating the boot settings and playing with framebuffer seems out of bounds?


#2

the config.txt mangling should be done via defaults from gadget.yaml … that said, we do not have a generic “overlay=” option yet, so this would have to be added to core … (but if you have to build a dedicated gadget anyway, you can as well just ship with a custom config.txt from the start)

the package install and input udev rules would have to be done with a snap as you guessed … we might need to extend some iterfaces here as well …


#3

I don’t see any interfaces that would provide access to the devices so as Oliver says, it would need likely need a new “touchscreen” interface to minimally access the /dev/input/touchscreen device.

Also for the snap, you’ll likely run into problems with the ts-lib library as it seems to be used by this setup and filters the /dev/input/touchscreen events and put the filtered events onto /dev/input/ts_uinput, which would again need another interface, so either this setup would need to be modified to use just the raw /dev/input/touchscreen, or we would have to add /dev/input/ts_input to the interface.