Das Projekt fbtft stellt entsprechende Module für den Linux-Kernel bereit, mit denen sich kleinere TFT-Displays und LCDs über die GPIO Pins ansteuern lassen.
Anfangs handelte es sich noch um ein eigenständiges Projekt, welches unabhängig vom Linux Kernel auf GitHub als fbtft weiterentwickelt wurde. Seit Januar 2015 befindet es sich jedoch direkt im Staging Bereich des offiziellen Linux Kernels. Ein großer Verteil davon ist, dass die Distributoren von zum Beispiel Arch Linux ARM oder Raspbian diese Module leichte mit ausliefern können.
Die folgende Beispiele wurden unter Raspbian 2016-02-09 getestet.
Bevor begonnen wird, muss das Display an den "Mini"-Computer angeschlossen werden. Wie das zum Beispiel beim Raspberry Pi erfolgt, kann dem fbtft Wiki entnommen werden.
Anschließend muss die SPI Schnittstelle aktiviert werden. Hierfür kann entweder das Tool raspi-config
zum Einsatz kommen.
$ sudo raspi-config
Oder es kann folgende Zeile direkt in die Datei /boot/config.txt
eingetragen werden.
dtparam=spi=on
Danach darf der Neustart nicht vergessen werden.
Mit folgendem Befehl gibt das Kernel Modul eine Liste aller unterstützten Displays aus.
$ sudo modprobe fbtft_device name=list
modprobe: ERROR: could not insert 'fbtft_device': Operation canceled
$ dmesg | grep fbtft
[ 202.309167] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[ 202.316719] fbtft_device: SPI devices registered:
[ 202.316762] fbtft_device: ili9340 spi0.0 32000kHz 8 bits mode=0x00
[ 202.316782] fbtft_device: spidev spi0.1 500kHz 8 bits mode=0x00
[ 202.316794] fbtft_device: 'fb' Platform devices registered:
[ 202.316842] fbtft_device: soc:fb id=-1 pdata? no
[ 202.316890] fbtft_device: Supported displays:
[ 202.316903] fbtft_device: adafruit18
[ 202.316913] fbtft_device: adafruit18_green
[ 202.316923] fbtft_device: adafruit22
[ 202.316932] fbtft_device: adafruit22a
[ 202.316941] fbtft_device: adafruit28
[ 202.316949] fbtft_device: adafruit13m
[ 202.316958] fbtft_device: agm1264k-fl
[ 202.316967] fbtft_device: dogs102
[ 202.316976] fbtft_device: er_tftm050_2
[ 202.316985] fbtft_device: er_tftm070_5
[ 202.316994] fbtft_device: flexfb
[ 202.317003] fbtft_device: flexpfb
[ 202.317012] fbtft_device: freetronicsoled128
[ 202.317021] fbtft_device: hx8353d
[ 202.317030] fbtft_device: hy28a
[ 202.317039] fbtft_device: hy28b
[ 202.317047] fbtft_device: ili9481
[ 202.317056] fbtft_device: itdb24
[ 202.317064] fbtft_device: itdb28
[ 202.317073] fbtft_device: itdb28_spi
[ 202.317081] fbtft_device: mi0283qt-2
[ 202.317090] fbtft_device: mi0283qt-9a
[ 202.317099] fbtft_device: mi0283qt-v2
[ 202.317107] fbtft_device: nokia3310
[ 202.317116] fbtft_device: nokia3310a
[ 202.317124] fbtft_device: nokia5110
[ 202.317133] fbtft_device: piscreen
[ 202.317141] fbtft_device: pitft
[ 202.317151] fbtft_device: pioled
[ 202.317159] fbtft_device: rpi-display
[ 202.317168] fbtft_device: s6d02a1
[ 202.317177] fbtft_device: sainsmart18
[ 202.317185] fbtft_device: sainsmart32
[ 202.317194] fbtft_device: sainsmart32_fast
[ 202.317203] fbtft_device: sainsmart32_latched
[ 202.317213] fbtft_device: sainsmart32_spi
[ 202.317222] fbtft_device: spidev
[ 202.317230] fbtft_device: ssd1331
[ 202.317239] fbtft_device: tinylcd35
[ 202.317248] fbtft_device: tm022hdh26
[ 202.317257] fbtft_device: tontec35_9481
[ 202.317266] fbtft_device: tontec35_9486
[ 202.317276] fbtft_device: upd161704
[ 202.317285] fbtft_device: waveshare32b
[ 202.317294] fbtft_device: waveshare22
Anschließend kann das Modul für das entsprechende Display geladen werden. Im Beispiel muss <name>
durch den entsprechende Name des Displays ersetzt werden.
$ sudo modprobe fbtft_device name=<name>
Danach sollte das neue Display als Device /dev/fb1
verfügbar sein und kann verwendet werden.
Links
- GitHub: fbtft (englisch)
- Webseite: Linux Kernel (englisch)
- Webseite: Arch Linux ARM (englisch)
- Webseite: Raspbian (englisch)
- Webseite: Raspberry Pi (englisch)
- Webseite: fbtft Wiki (englisch)