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

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