Close-Source-Module statisch gelinkt?

MReimer

Aktives Mitglied
Mitglied seit
4 Sep 2005
Beiträge
825
Punkte für Reaktionen
0
Punkte
0
Hallo,

einer der Profis hier kann die Frage sicher mit einem Wort beantworten: Sind die Closed-Source-Kernelmodule von AVM statisch gegen den Kernel gelinkt?
 
Ja, die Antwort ist nein ;-)

Die Kernelmodule sind dynamisch gelinkt.

Jörg
 
Ja, die Antwort ist nein ;-)

Die Kernelmodule sind dynamisch gelinkt.

Jörg

Auszug aus http://downloads.openwrt.org/kamikaze/docs/openwrt.html
Making binary drivers work

As we have explained before, manufacturers do release binary drivers in their GPL tarball. When those drivers are statically linked into the kernel, they become GPL as well, fortunately or unfortunately, most of the drivers are not statically linked. This anyway lets you a chance to dynamically link the driver with the current kernel version, and try to make them work together.

Wenn die Module dynamisch gelinkt sind: Warum geht kein dynamisches Linken gegen einen neuen Kernel?

Werden beim dynamischen Linken Bestandteile der Kernel-Headers (sind ja auch GPL) mit in die Module gelinkt?
 
Wie es da schon steht "lets you a chance" und "try to make them work together". Du kannst mit etwas "Gewalt" ein Modul eines andern Kernels laden, und wenn sich in diesem Umfeld keine "wichtigen Dinge" verändert haben (neue Includes, geänderte Parameter und Schnittstellen...).
Ein ziemlich "großes" Problem ist, dass speziell der von AVM für fast alle Modelle (außer der 7270) genutzte Kernel "recht alt" ist. Die Chance, ein Kernelmodul von 2.6.13 mit den aktuellen Kernel-Sourcen z.B. im OpenWRT-trunk für ar7 (2.6.26) zum laufen zu bekommen ist schon recht gering...
Bei der 7270 könnte es etwas besser aussehen, der dort genutzte Kernel (2.6.19) tauchte z.B. auch mal im Openwrt auf.

Jörg
 
Ein Erfolg versprechender Weg wäre, ein Makefile für den passenden Kernel aus den AVM Sourcen in das OpenWrt Buildroot zu integrieren.

Auf diese Weise bekäme man ein OpenWrt mit AVM Kernel, zu dem die closed-source Module passen und könnte gleichzeitig alle Vorteile von OpenWrt nutzen, z.B. die breite Palette verfügbarer Software oder das universelle Konfigurationssystem (UCI).

Bisher hat sich aber noch niemand diese Arbeit gemacht.
 
Wenn das überhaupt einen Vorteil bringen würde, denn das conntrack-Problem löst dieses Vorgehen auch nicht.

Wird durch dynamisches Linken ein "Bestandteil" des Kernels in das Binary gelinkt? Frage nur, weil das dann ein GPL-Verstoß wäre.
 
Nein, wird nicht. Die dynamischen Module stellen keinen GPL-Verstoß dar.
 
Sind die Closed-Source-Kernelmodule von AVM statisch gegen den Kernel gelinkt?

Kernelmodule sind nicht statisch, sonst wären es keine Module.

Werden beim dynamischen Linken Bestandteile der Kernel-Headers (sind ja auch GPL) mit in die Module gelinkt?

Bestandteile der Kernel-Headers werden beim Erstellen der Module verwendet, nicht beim späteren Linken.

Nein, wird nicht. Die dynamischen Module stellen keinen GPL-Verstoß dar.

Das sehe ich nicht so.
Die Situation bei Module (die immer dynamisch sind, sonst wären es keine Module) wird von der LGPL abgedeckt: Die Header dürfen verwendet werden, es reicht, ein Object-File bereitzustellen ohne eigene Quellen, die Problematik, daß es bei Änderungen in Schnittstellen nicht mehr funktioniert ist bekannt und auch in der LGPL explizit angesprochen.
Nun verwendet der Kernel aber nicht LGPL, sondern GPL, so daß dies nicht zulässig ist. Bisher hat sich nur noch niemand gefunden, der dagegen vorgegangen ist.
 
Hmmm... Demnach müsste man Kernel-Module auch ganz ohne Kernel bauen können. Wenn das Vorgehen legal wäre, dann müssten zumindest die Kernel-Headers unter LGPL stehen (so zumindest mein Verständnis).

Aber die Info das die Module dynamisch gelinkt sind bringt mich schonmal weiter. Danke für den Hinweis.

Sollte das Vorgehen aber wirklich legal sein, dann stehen die Chancen irgendwann mal beliebige Kernel auf den Boxen laufen zu lassen doch schlechter als ich befürchtet hatte.

Edit: @RalfFriedl: Danke für den Hinweis. Wenn Kernel-Module wirklich immer dynamisch gelinkt sind, dann frage ich mich warum OpenWRT etwas von statisch gelinkten Modulen schreibt. Allerdings freut mich das ich mit meinem Verständnis von GPL vs. LGPL nicht ganz falsch liege.
 
In der Kernel-Konfiguration kann man für verschiedenen Treiber oder andere Bestandteile (Dateisysteme, Netzwerkprotokolle) auswählen, ob diese statisch in den Kernel integriert werden sollen oder als Module erstellt werden. Wenn ein Treiber als Modul erstellt wird, kann das Modul bei Bedarf in den laufenden Kernel geladen werden, und in vielen Fällen auch danach wieder entfernt werden.

Möglicherweise hat OpenWRT an der Stelle die Begriffe nicht ganz deutlich verwendet und Treiber mit Modul gleichgesetzt. Da Treiber meistens als Module erstellt werden, ist das zumindest nachvollziehbar.

Kernel-Module kann man ohne einen vorliegenden Kernel erstellen (auch wenn man sie ohne Kernel nicht nutzen kann). Ohne Kernel-Header kann man theoretisch auch Kernel-Module erstellen, aber ein so erstelltes Modul wird wenig nützen, wenn es nicht auf mindestens ein Kernel-Subsystem zugreifen kann. Und das wird dann ohne die Kernel-Header sehr schwierig. Und diese Kernel-Header stehen auch unter der GPL und nicht der LGPL.
 
[...]
Das sehe ich nicht so.
Die Situation bei Module (die immer dynamisch sind, sonst wären es keine Module) wird von der LGPL abgedeckt: Die Header dürfen verwendet werden, es reicht, ein Object-File bereitzustellen ohne eigene Quellen, die Problematik, daß es bei Änderungen in Schnittstellen nicht mehr funktioniert ist bekannt und auch in der LGPL explizit angesprochen.
Nun verwendet der Kernel aber nicht LGPL, sondern GPL, so daß dies nicht zulässig ist. Bisher hat sich nur noch niemand gefunden, der dagegen vorgegangen ist.
Der Punkt wird insgesamt kontrovers diskutiert, d.h. es gibt Leute, die die Situation so sehen, wie ihr. Es gibt aber auch eine Menge Leute, die die Situation nicht so sehen, und dazu gehören diverse Linux-Distributoren, die nunmal ihren Job auf Basis der GPL ausüben, dazu gehören das Gros der Linux-
Kernel-Entwickler inklusive Linus selbst (sonst gäbe es wohl kaum eine Möglichkeit, Module explizit als GPL oder eben nicht an den Kernel zu melden, wenn sie der Meinung wären, das Nicht-GPL-Module gegen die Lizenz verstoßen würden), und dazu gehört auch Richard M. Stallman der als einer der Autoren oder zumindest Initiator der GPL angesehen werden muss.

Darüber hinaus wäre es nach der Auffassung unmöglich, überhaupt irgend eine proprietäre Software auf einem GPL-Kernel laufen zu lassen, denn die Software muss ja zwangsläufig irgendwie auf Kernel-Schnittstellen zugreifen, und genau das machen auch die Kernel-Module.
 
Es ist ein Unterschied, ob eine Software als Anwendung unter einem Kernel läuft (Es steht explizit in der Linux Lizenz, daß das als normale Benutzung des Kernels angesehen wird, oder ob ein Modul als Bestandteil des Kernels läuft.
Und es ist auch ein Unterschied, ob jemand für sich selbst ein Modul erstellt und in den Kernel lädt, oder ob AVM das Modul erstellt und weitergibt. Die GPL regelt nur die Weitergabe von Programmen, nicht deren Verwendung.
Und zumindest in früheren versionen der Firmware hat AVM nicht nur die definierten Stukturen aus den Headern verwendet, sondern auch dort definierte Inline-Funktionen.

Wenn AVM wenigstens wie bei den ISDN-Karten den Kern des Treibers als Object zur Verfügung stellen würde, mit Quellen für die Zwischenschicht, so daß man ihn auf andere Kernel anpassen kann, dann wäre schon einiges gewonnen. AVM würde auf diese Weise vielleicht sogar frei Haus die Portierung auf einen neueren Kernel bekommen.
 
Wie gesagt, das Thema wird kontrovers diskutiert.
Um einen Unterschied zwischen einem Kernel-Modul, welches einfach als Binary in ein laufendes System kopiert und dann mit einem speziellen Befehl gestartet werden kann, und einer Software 'als Anwendung' zu finden, muss man schon einiges konstruieren. Dass die Nutzung von 'user programs' in der Lizenz des Kernels explizit als nicht 'derived work' bezeichnet wird, bedeutet noch lange nicht, daß ein Kernelmodul umgekehrt dadurch automatisch zu einer solchen 'derived work' wird. Letztendlich entscheidet sich das vor dem Richter, der im Zweifelsfall den Prozess verhandelt.

Klar ist, daß man in seinem stillen Kämmerlein mit dem Kernel usw. machen kann was man will, darum habe ich die 'Weitergabe' nicht nochmal extra erwähnt - das ist ja das Grundthema des Threads.

Eine andere Sache ist natürlich, in Header-Dateien bestehende Funktionen zu nutzen. Aber es ging ja erstmal prinzipiell um Kernel-Module.

Im Übrigen bin ich natürlich auch der Meinung, daß freie Treiber sehr viel besser wären als proprietäre - ich fürchte nur, daß sich ein Lizenzverstoß in AVMs Verhalten allein aufgrund der Closed-Source-Module nicht finden lässt (dafür aber in ihrem allgemeinen Gebaren bezüglich der Lizenz). Darüber hinaus müsste auch jemand AVM verklagen, um Ansprüche geltend zu machen - und das könnte wohl nur ein Kernel-Entwickler.
 
Zuletzt bearbeitet:
Es gibt ja wohl genügend Beispiele, dass AVM sich nicht an die Gesetze/Regeln hält;
darunter übrigens auch dieser Thread hier im Forum.
 
Wieso schreibt denn keiner AVM an und fragt mal nach einer Stellungnahme? Anscheinend macht das niemand, bzw. es geht bei den ganzen Supportanfragen unter.

"Verklagen" ist wohl das letzte Mittel in unserem teuren Rechtsstaat ;)
 
Es gibt ja jedesmal haufenweise Mails an AVM wenn sie mal wieder ne neue FW ohne Sourcen rausbringen oder in den Sourcen wichtige Dateien fehlen oder oder oder... sowas ist für die offenbar von untergeordneter Bedeutung.

Und wie gesagt, wir als User haben sowieso keinen Rechtsanspruch auf irgendwas, die Lizenz, die verletzt wird, ist ja lediglich eine vertragliche Vereinbarung zwischen AVM und dem Lizenzgeber, also den Kernel-Entwicklern.
 
Macht es Sinn, die Kernel-Entwickler und ggf. Herrn Welte von gpl-violations.org zu informieren?
 
Probier dein Glück.....
 
Sorry, aber ich habe von GPL etc. einfach zu wenig Ahnung als dass ich da jetzt eine sinnvolle Email schreiben könnte.
Gut, dann hätte ich mir den Link oben wohl auch sparen können, da die Gurus hier den wohl eh schon kennen, oder?
 
Ich mach jetzt mal einen auf Blöd und bitte AVM einfach mal GPL-Konform mir die fehlenden Daten zukommen zu lassen. Da ich gleich mehrere Fritz!Boxen mein Eigen nenne und dort offensichtlich GPL-Lizenzierte Closed Source Daten drauf sind, habe ich ein Reicht auf den Quellcode. Muss ich aber später schreiben, denn ich habe die Seriennummer meiner Box gerade nicht greifbar. Ich bin echt gespannt was da dann zurückkommt. Antwort veröffentliche ich dann natürlich hier.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.