Kernel-Kompilierung mit sc16is7x2 Treiber für Gnublin

Gast #4075166
Lesenswert?
• ▲
▼
Ich versuche für den Gnublin den 3.3er Kernel mit samt dem sc16is7x2 
Treiber zu kompilieren (möglichst als Modul und nicht statisch).

Unter 2.6.33 hatte ich keine Probleme, den Treiber für die Serielle mit
zu kompilieren, seit ich auf den 3.3er Kernel gewechselt bin, bricht mir 
der Kompilier-Vorgang immer ab, Log-Ausschnitt hänge ich unten an.

Ich arbeite mit einem Clone von github, genauer gesagt scheint diese 
Datei das Problem zu sein:

https://github.com/embeddedprojects/gnublin-lpc3131-3.3.0/blob/master/linux-3.3.0-lpc313x/drivers/tty/serial/sc16is7x2.c

Ist irgendeinem von euch ersichtlich, was hier mein Problem bzw. Fehler 
sein kann? :-( Ich steige langsam nicht mehr durch, welche Abhängigkeit 
möglicherweise fehlt oder was es sonst noch sein kann...

Viele Grüße und lieben Dank!



########################
1
  CC      drivers/tty/serial/sc16is7x2.o
2
drivers/tty/serial/sc16is7x2.c: In function 'sc16is7x2_handle_rx':
3
drivers/tty/serial/sc16is7x2.c:201:2: error: implicit declaration of function 'tty_insert_flip_string' [-Werror=implicit-function-declaration]
4
drivers/tty/serial/sc16is7x2.c: In function 'sc16is7x2_startup':
5
drivers/tty/serial/sc16is7x2.c:496:2: error: implicit declaration of function 'create_freezeable_workqueue' [-Werror=implicit-function-declaration]
6
drivers/tty/serial/sc16is7x2.c:496:18: warning: assignment makes pointer from integer without a cast [enabled by default]
7
drivers/tty/serial/sc16is7x2.c: In function 'sc16is7x2_register_gpio':
8
drivers/tty/serial/sc16is7x2.c:894:19: error: 'THIS_MODULE' undeclared (first use in this function)
9
drivers/tty/serial/sc16is7x2.c:894:19: note: each undeclared identifier is reported only once for each function it appears in
10
drivers/tty/serial/sc16is7x2.c: At top level:
11
drivers/tty/serial/sc16is7x2.c:1020:20: error: 'THIS_MODULE' undeclared here (not in a function)
12
drivers/tty/serial/sc16is7x2.c:1060:15: error: expected declaration specifiers or '...' before string constant
13
drivers/tty/serial/sc16is7x2.c:1061:16: error: expected declaration specifiers or '...' before string constant
14
drivers/tty/serial/sc16is7x2.c:1062:20: error: expected declaration specifiers or '...' before string constant
15
drivers/tty/serial/sc16is7x2.c:1063:14: error: expected declaration specifiers or '...' before string constant
16
cc1: some warnings being treated as errors
17
make[3]: *** [drivers/tty/serial/sc16is7x2.o] Error 1
18
make[2]: *** [drivers/tty/serial] Error 2
19
make[1]: *** [drivers/tty] Error 2
20
make: *** [drivers] Error 2
#4075208
Lesenswert?
• ▲
▼
Nunja, nach 5 Jahren Entwicklung können sich Funktionsnamen schon mal 
ändern,
und sie landen mitunter in anderen Headern.

Die Funktion 'tty_insert_flip_string' findet sich in:
1
#include <linux/tty_flip.h>

Neuere Kernel kennen einen sc16is7xx Treiber, aber der kam wohl erst mit 
4.0 in die Mainline rein. Das dürfte für Dich zu neu sein.
Gast #4075210
Lesenswert?
• ▲
▼
Die internen Kernel-APIs ändern sich ständig. Irgendjemand müsste sich 
die Arbeit machen, diesen Treiber an den neuen Kernel anzupassen.

Und ein drei Jahre alter Kernel ist auch nicht mehr das Gelbe vom Ei.
Könnte ich dich dazu überreden, 3.16 oder später zu probieren, wo 
sc16is7xx schon eingebaut ist?
Gast #4075279
Lesenswert?
• ▲
▼
@Cervisia:
Ich habe bisher nur Kernels benutzt, welche direkt für den Gnublin 
gebaut waren. Sind die Kernels bzw. enthaltene Treiber nicht spezifisch 
an den Chip bzw. den Aufbau des Boards gebunden? Für den Gnublin werden 
bisher nur die beiden o.g. Versionen des Kernels angeboten, weswegen ich 
auch nie auf die Idee kam, einen anderen zu verwenden. Bin noch nicht 
sehr lange in der Welt rund um die Kernels unterwegs drum bin ich für 
jeden Rat sehr dankbar! :-)

@turboj:
Es bringt mir aber nichts, einfach noch
1
#include <linux/tty_flip.h>
 in den Treiber einzubauen, oder?
Gast #4076641
Lesenswert?
• ▲
▼
Mario schrieb:
> Sind die Kernels bzw. enthaltene Treiber nicht spezifisch an den Chip
> bzw. den Aufbau des Boards gebunden?

So etwas wird normalerweise über die Kernel-Konfiguration erledigt,
d.h., du kannst die .config-Datei einfach übernehmen.

Allerdings ist es gerade bei Embedded-Kerneln üblich, dass die
Hersteller irgendwelche Treiber beilegen, die in den 'offiziellen'
Kerneln nicht enthalten sind. Ob das bei Gnublin der Fall ist, weiß
ich nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.