config.txt display_default_lcd adafruit 2.8 tft lcd display supplier
Going further I plugged a HDMI display and Voila! there is my Desktop, but no mirror at all. Even the touchscreen is working and I can move de cursor over the Desktop (HDMI) with my finger on the 2.8" display.
Going further again, with the HDMI plugged and choosing console I can startx and the desktop goes to HDMI, then I can see running Xorg using top from SSH. Restart again the script and I choose mirror, no HDMI connected and black screen over the TFT, but I also can see Xorg running.
Adafruit Industries produces whole series of resistive and capacitance touchscreens displays suited for all generations of Raspberry Pi computersclassical A and B models with 2x13 GPIO pins
Adafruit provides extensive installation instructions via the python adafruit-pitft.pyother Adafruit models, such as PiTFT 2.2", miniPiTFT 1.14", 1.3", 1.54", etc. However, the script adapted for Raspbian/Raspberry Pi OS does not work well under Gentoo. Following instructions are written based on the above mentioned script and this slightly outdated text.should work with the other models.
The PiTFT screen uses the hardware I2C Pins (SDA & SCL), SPI pins (SCK, MOSI, MISO, CE0) as well as GPIO #25 and #24. Additionally 2.8" version can use GPIO #18, #21-23 (or #27 instead of #21 on all newer models) for the hardware buttons, and 2.8" Plus version occupies GPIO #17, #22, #23, #27 for the same purpose instead. All other GPIO contacts remain unused.
The list of the DT for the screens and options for them can be found in /boot/overlays/README by searching Adafruit. Important options are screen rotation angle rotate and frame rate fps. Rotation angle rotate=90 will align the "horizontal" axis of the screen along the wide side.
To use solely PiTFT screen one should disable HDMI hotplug and set the maximum number of created framebuffers to 1. Additionally the output to PiTFT should be configured to 320x240 and 60Hz (or different supported depending on the screen) via hdmi_cvt option.
Last but not least is a choice of used graphics output. Raspberry Pi have in general 3 options: Legacy (default, when no DT overlay is used), "fake" and "real" KMS (with DTs such as vc4-fkms-v3d). Technical differences between those choice are beyond the scope of this instruction, one just should note, that dtoverlay=vc4-kms-v3d resulted in booting failure. This may not be the case though for the screens which have DRM support e.g. Adafruit 2.4" and 3.5".
Raspberry Pi kernel distributionbcmrpi_defconfig, bcm2709_defconfig, bcm2711_defconfig for the appropriate target will select necessary modules. Otherwise check if you have these modules selected. The chip model is also written on the backside of some PiTFTs.
The installation script suggests creating following files, so the link /dev/input/touchscreen to /dev/eventN of the PiTFT is created. This is required for the touchscreen functionality.
Following files should be created to configure PiTFT with X11 system. First one ensures that /dev/fbX is attached to X-server with fbdev driver, as it seems not to work automatically.
All configuration above considers mainly setting up a framebuffer display separate from HDMI-connected display. However, the PiTFT is not GPU-accelerated (e.g. DRI2 is not working), so all 3D graphics is drawn by CPU, it is much slower compared to GPU-accelerated. The solution suggested by Adafruit is to copy HDMI output to framebuffer device via framebuffer copy utility (fbcp)