fbtft_device ILI9341 und ST7789V hinzufügen? Raspbian

Gast #5050482
Lesenswert?

Hallo,

mein Raspbian Jessie zeigt folgende fbtft_devices an (siehe ganz unten). 
Wie kann ich ein ILI9341 und ST7789V device einfach hinzufügen?
Leider fällt es mir schwer hierzu ein Tutorial zu finden.



pi@raspberrypi:~ $ sudo modprobe fbtft_device name=list
modprobe: ERROR: could not insert 'fbtft_device': Operation canceled
pi@raspberrypi:~ $ dmesg | grep fbtft
[ 3000.852671] fbtft: module is from the staging directory, the quality 
is unkno 
wn, you have been warned.
[ 3000.857651] fbtft_device: module is from the staging directory, the 
quality i 
s unknown, you have been warned.
[ 3000.858755] fbtft_device: Supported displays:
[ 3000.858764] fbtft_device: adafruit18
[ 3000.858771] fbtft_device: adafruit18_green
[ 3000.858779] fbtft_device: adafruit22
[ 3000.858787] fbtft_device: adafruit22a
[ 3000.858795] fbtft_device: adafruit28
[ 3000.858803] fbtft_device: adafruit13m
[ 3000.858810] fbtft_device: admatec_c-berry28
[ 3000.858818] fbtft_device: agm1264k-fl
[ 3000.858826] fbtft_device: dogs102
[ 3000.858833] fbtft_device: er_tftm050_2
[ 3000.858841] fbtft_device: er_tftm070_5
[ 3000.858849] fbtft_device: ew24ha0
[ 3000.858856] fbtft_device: ew24ha0_9bit
[ 3000.858864] fbtft_device: flexfb
[ 3000.858871] fbtft_device: flexpfb
[ 3000.858879] fbtft_device: freetronicsoled128
[ 3000.858887] fbtft_device: hx8353d
[ 3000.858894] fbtft_device: hy28a
[ 3000.858901] fbtft_device: hy28b
[ 3000.858909] fbtft_device: ili9481
[ 3000.858916] fbtft_device: itdb24
[ 3000.858924] fbtft_device: itdb28
[ 3000.858931] fbtft_device: itdb28_spi
[ 3000.858938] fbtft_device: mi0283qt-2
[ 3000.858946] fbtft_device: mi0283qt-9a
[ 3000.858954] fbtft_device: mi0283qt-v2
[ 3000.858961] fbtft_device: nokia3310
[ 3000.858969] fbtft_device: nokia3310a
[ 3000.858976] fbtft_device: nokia5110
[ 3000.858984] fbtft_device: piscreen
[ 3000.858991] fbtft_device: pitft
[ 3000.858998] fbtft_device: pioled
[ 3000.859006] fbtft_device: rpi-display
[ 3000.859013] fbtft_device: s6d02a1
[ 3000.859021] fbtft_device: sainsmart18
[ 3000.859028] fbtft_device: sainsmart32
[ 3000.859036] fbtft_device: sainsmart32_fast
[ 3000.859043] fbtft_device: sainsmart32_latched
[ 3000.859051] fbtft_device: sainsmart32_spi
[ 3000.859059] fbtft_device: spidev
[ 3000.859066] fbtft_device: ssd1331
[ 3000.859073] fbtft_device: tinylcd35
[ 3000.859081] fbtft_device: tm022hdh26
[ 3000.859088] fbtft_device: tontec35_9481
[ 3000.859096] fbtft_device: tontec35_9486
[ 3000.859104] fbtft_device: upd161704
[ 3000.859111] fbtft_device: waveshare32b
[ 3000.859119] fbtft_device: waveshare22
[ 3000.859126] fbtft_device:
#5050793
Lesenswert?

Aha, das hast Du nicht geschrieben ;-)
Dann hast Du wohl verloren. Wenn keiner der vorhandenen FB-Treiber im
Kernel dieses SPI Display unterstützt, wird es nicht funktionieren.

Entweder es gibt eine angepasste Raspbian Distro oder du musst wohl oder
übel den Kernel und die Module neu kompilieren. Ist aber auch keine
Hexerei, gibt dutzende guter Tutorials im Netz.
Gast #5050912
Lesenswert?

> Entweder es gibt eine angepasste Raspbian Distro oder du musst wohl oder
> übel den Kernel und die Module neu kompilieren. Ist aber auch keine
> Hexerei, gibt dutzende guter Tutorials im Netz.

Kann man die Module nicht ohne Kernel neu kompilieren laden, 
integrieren? Wie bei Device-tree overlays?

Harry L. schrieb:
> Schau mal hier:
> https://github.com/notro/fbtft/wiki

bei diesem Link wurde ich leider auch nicht schlau. Klickt man auf FBTFT 
Raspbian kommt sofort was mit Touchpanel... aber sorry ich will keine 
Touchpanel integrieren.
Gast #5050996
Lesenswert?

Harry L. schrieb:
> Du musst das Touchpanel ja nicht nutzen, aber mit diesen Treibern
> hab
> ich bisher noch jedes Display das ich in den Fingern hatte am RPi zum
> Laufen bekommen.
> Der ILI9341 wird auch unterstützt.

phuu ich blick da grad nicht durch, so vom Grundaufbau.
FBTFT schein ja auf meinem System schon vorhanden, nur werden da ja 
nicht die device angezeigt wie auf der notro/fbttft/wiki Seite (siehe 
ganz oben meine Liste)...
wie bekomme ich nun all die notro devices auf mein Raspbian Jessie?
Dann fehlt auf notro der ST7789V, da stellt sich dann die Frage wo 
ändere ich die command/data/gram adressen + Initialisierungen.

Wie gesagt ohne neu kompilieren eines Kernels, ist das möglich?? Danke
#5051011
Lesenswert?

epidam schrieb:
> Wie gesagt ohne neu kompilieren eines Kernels, ist das möglich?? Danke

Ja, geht ohne den Kernel neu zu bauen.

Das Kernel-Modul muß mit den passenden Parametern geladen werden.
Plug&Play gibts da nicht.

Am besten ist es, sich in /etc/modprobe.d eine Datei mit den Parametern 
anzulegen.
Die wird dann automatisch berücksichtigt.

Da hilft nur Einlesen.
Gast #5051076
Lesenswert?

Harry L. schrieb:
> Am besten ist es, sich in /etc/modprobe.d eine Datei mit den Parametern
> anzulegen.
> Die wird dann automatisch berücksichtigt.

auf notro steht auch was von:
#######################
Make it permanent (Debian Jessie, Arch Linux, systemd)

Add to file /etc/modules-load.d/fbtft.conf

spi-bcm2835
fbtft_device
(the auto loading of spi-bcm2835 is too late for fbtft_device to find 
the spi bus, so it has to be manually loaded)

Add to file /etc/modprobe.d/fbtft.conf

options fbtft_device name=adafruit22
#####################

d.h. damit kann man die device laden...
nur wie kriege ich deren device aufs system?
Einfach die c-Datei oder evtl. die kompilierte in den richtigen Ordner 
kopieren?
#5051138
Lesenswert?

die Module dürften bereits installiert sein.
Die Device-Nodes (in /dev) entstehen automatisch sobald die Module 
erfolgreich geladen werden.


In /etc/modules eingetragene Module werden beim Start automatisch 
geladen.
Bei mir sieht das so aus:


root@octopi:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

spi-bcm2835
fbtft_device
flexfb



Mit modprobe kannst du die Module auch manuell laden

Bsp.: modprobe fbtft_device

Mit modinfo <module> kannst du dir die möglichen Parameter anzeigen 
lassen.
Gast #5051245
Lesenswert?

Harry L. schrieb:
> Die Device-Nodes (in /dev) entstehen automatisch sobald die Module
> erfolgreich geladen werden.
>
> In /etc/modules eingetragene Module werden beim Start automatisch
> geladen.

und wo finde ich die nicht geladenen Module bzw. das File Ili9431?. Wie 
ganz oben in der Auflistung zu sehen ist Ili9431 nicht vorhanden...
#5051284
Lesenswert?

Also etwas Linux-Grundwissen wirst du dir schon selbst erarbeiten 
müssen.

Linux-Kernel-Module findet man unterhalb von /lib/modules
Es ist aber für dein Vorhaben auch egal, wo die tatsächlich liegen.
Die Mod-Utils finden die.

Ein Modul mit dem Namen ILI9341 gibt es auch nicht. und davon steht auch 
nichts im GitHub-Wiki.
Der ILI9341 ist einer der von fbtft unterstützten Controller.
Gast #5051455
Lesenswert?

Hallo, ich versuche es gerade gemäss dem ersten Link hier im Thread:
http://marcosgildavid.blogspot.ch/2014/02/getting-...

First Step, Installieren fbtft, bei fbtft steht dann folgendes:

INSTALLATION
  Download kernel sources

  From Linux 3.15
    cd drivers/video/fbdev
    git clone https://github.com/notro/fbtft.git

    Add to drivers/video/fbdev/Kconfig:   source 
"drivers/video/fbdev/fbtft/Kconfig"
    Add to drivers/video/fbdev/Makefile:  obj-y += fbtft/


was heisst installation kernel sources? zudem existiert auf mein 
raspbian kein fbdev Ordner :-(
Gast #5051642
Lesenswert?

Harry L. schrieb:
> Also ich hab den Source nicht gebraucht, und du brauchst den auch nicht.
> Der Treiber ist bereits Bestandteil des RPi-Kernel.
>
> s.o. den kannst du mit modprobe direkt laden.

Also ich habe hier TFT's / LCD's mit Controller wie ILI9341, ST7775R, 
ST7701, ST7789V und dann noch ein "graustufen" IC ST7586 und mono IC 
ST75320 / ST75256


wo finde ich eine Liste aller unterstützten FBTFT Treiber im RPi-Kernel?

Falls ein Treiber nicht existiert muss ich ein exisiterenden anpassen 
und kompilieren. Also irgendwann muss ich wohl oder übel zum Code kommen 
wo die GRAM, DRAM Adressen festgelegt werden, wäre cool ein Hinweis zu 
bekommen wo wie ich danach suchen kann?

Hoffe letzteres geht auch noch ohne Kernel kompilieren...
Gast #5054582
Lesenswert?

überlese ich immer was?

was ich suche ist eine Anleitung wo ich von einem File: 
https://github.com/notro/fbtft/blob/master/fb_ili9341.c

zum Beispiel folgende Funktion abändern und das File neu komplieren und 
verwenden kann:

static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, 
int ye)
{
  fbtft_par_dbg(DEBUG_SET_ADDR_WIN, par,
    "%s(xs=%d, ys=%d, xe=%d, ye=%d)\n", _func_, xs, ys, xe, ye);

  /* Column address set */
  write_reg(par, 0x2A,
    (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF);

  /* Row adress set */
  write_reg(par, 0x2B,
    (ys >> 8) & 0xFF, ys & 0xFF, (ye >> 8) & 0xFF, ye & 0xFF);

  /* Memory write */
  write_reg(par, 0x2C);
}


Also quasi die Werte 0x2A, 0x2B und 0x2C hätte ich gern angepasst....
nur habe ich nur schon das Problem dieses File in meinem Raspbian zu 
finden. Und wohl viel schwieriger wird es sowas abzuändern oder 
abgeändert verwenden zu können?
Gast #5055926
Lesenswert?

Harry L. schrieb:
> Wie kommst du auf das schiefe Brett, daß du in der Lage wärst, einen
> Kernel-Treiber nach deinen Vorstellungen anzupassen, wenn du nicht
> einmal in der Lage bist, bereits fertige Module zum Laufen zu bringen?

zu Letzteres, sollte man zum laufen bringen mit all den Anleitungen 
ja...

Zu ersteres finde ich noch nicht so viel aber z.b das da:
http://www.forum-raspberrypi.de/Thread-fbtft-treiber-anpassen-hinzufuegen-ra8875

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren