.titleBar { margin-bottom: 5px!important; }

Close-Source-Module statisch gelinkt?

Dieses Thema im Forum "Freetz" wurde erstellt von MReimer, 30 Sep. 2008.

  1. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    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?
     
  2. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,924
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ja, die Antwort ist nein ;-)

    Die Kernelmodule sind dynamisch gelinkt.

    Jörg
     
  3. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Auszug aus http://downloads.openwrt.org/kamikaze/docs/openwrt.html
    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?
     
  4. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,924
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  5. knox

    knox Mitglied

    Registriert seit:
    20 Mai 2006
    Beiträge:
    577
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  6. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  7. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    674
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Nein, wird nicht. Die dynamischen Module stellen keinen GPL-Verstoß dar.
     
  8. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Kernelmodule sind nicht statisch, sonst wären es keine Module.

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

    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.
     
  9. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  10. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  11. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    674
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    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.
     
  12. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  13. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    674
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    #13 McNetic, 30 Sep. 2008
    Zuletzt bearbeitet: 30 Sep. 2008
    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.
     
  14. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  15. bodega

    bodega Aktives Mitglied

    Registriert seit:
    6 Juni 2006
    Beiträge:
    1,980
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Ort:
    NRW
    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 ;)
     
  16. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    674
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    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.
     
  17. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Macht es Sinn, die Kernel-Entwickler und ggf. Herrn Welte von gpl-violations.org zu informieren?
     
  18. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    Probier dein Glück.....
     
  19. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  20. MReimer

    MReimer Aktives Mitglied

    Registriert seit:
    4 Sep. 2005
    Beiträge:
    825
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.