- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,298
- Punkte für Reaktionen
- 1,760
- Punkte
- 113
@er13:
Ist mir nicht aufgefallen, so genau habe ich dann (zu meiner Schande) wieder nicht hingesehen.
Ich verstehe ja Dein Anliegen bei der Integration auch in gewissem Maße ... aber da die ganze Geschichte mit dem "avm_kernel_config"-Bereich ja nur dann überhaupt von Interesse ist, wenn der Freetz-Benutzer ohnehin ein "replace kernel" machen will, sehe ich das mehr als Tool für das Kompilieren eines kompletten Kernels an (was dann ohnehin stattfinden muß, wenn der Benutzer "replace kernel" verwenden will) als eines, was zu den Freetz-Tools gehört und die notwendige "Live-Kompilierung" der beiden Programme (und es wären eben beide, weil der "relocate"-Teil mit der Abhängigkeit von der AVM-Enum-Variablen in beiden verwendet wird) eher als "intermediate result", was man hinterher auch problemlos wieder entsorgen könnte (das spart das Aufbauen von komplizierten Abhängigkeiten für's "make" und der Zeitfaktor durch mehrfaches Kompilieren und Ausführen ist hier m.E. zu vernachlässigen).
Mit dem passenden Symlink im Verzeichnis kannst Du das ja auch problemlos "außerhalb der Kernel-Quellen" verwalten (allerdings eher nicht als "host tool", was nur einmal für die richtige Architektur übersetzt werden muß und daher dort einzuordnen wäre) und mußt nur am Ende die vom Assembler erzeugte Objekt-Datei zusammen mit dem Patch für das Linker-Skript (auch der ist bei der Größe nun mal modellabhängig und auch wenn wir im Moment nur zwei Größen kennen, würde ich das doch dynamisch an die AVM-Quellen anpassen, falls weitere "flavors" dazukommen) in den Baum mit den Kernel-Quellen kopieren. Wenn Du das dann wieder "restaurierst", hast Du auch einen "stabilen" Stand der Kernel-Quellen, den man (wenn man will) wieder für mehrere Modelle oder zumindest für mehrere Builds mit wechselnder Konfiguration beim "replace kernel" verwenden kann.
Aber auch das Einbinden mit absoluten Pfaden oder über Symlinks (dann brauchst Du gar nichts in den Kernel-Baum kopieren, änderst die Struktur aber auch wieder) wäre vielleicht eine Überlegung wert ... aber ich verstehe ohnehin noch nicht so ganz, wo Du die Grenzen der Änderungen ziehen willst bzw. was Dich bei dieser Differenzierung "Kernel vs. Freetz-Tools" nun wirklich antreibt.
Das sind nun mal leider drei verschiedene Level von "Volatilität" ... die (Prozessor-)Architektur ändert sich nur mit dem Prozessor-Modell (das braucht bisher nur den Rebuild der "host tools"), die Inhalte der FDTs ändern sich mit dem (FRITZ!Box-)Modell und die finalen Inhalte des Konfigurationsbereichs ändern sich sogar (wg. der Modul-Tabelle und der "version_info") für jede neue FRITZ!OS-Version.
Da sich auch der Aufbau des Konfigurationsbereiches mit jeder neuen FRITZ!OS-Version ändern kann (das weiß man erst, wenn man die Quellen hat und theoretisch könnte mit jedem neuen OS auch eine neue HWSubRevision in den FDT-Bereich Einzug halten), sehe ich auch die beiden Tools aus "avm_kernel_config" eher auf derselben Ebene bei ihrer "Vergänglichkeit", wie den Inhalt des Konfigurationsbereiches an sich ... und das bedeutet dann tatsächlich, daß man sie für jeden Build, bei dem sich der zugrundeliegende AVM-Kernel geändert hat, auch neu erstellen und benutzen muß (wenn man einen eigenen Kernel haben will) und sie bei den Abhängigkeiten für einen Build auch am ehesten dort unterbringt, wo ein neues AVM-Image entpackt wird. Man muß ja nicht jedesmal den kompletten Kernel übersetzen und entpackt wird der doch (m.W.) ohnehin, weil man ja die Include-Files für Userland-Programmierung auch braucht. Vielleicht brauchst Du ja auch eine neue "Kategorie" für solche Hilfsprogramme, die "image tools", die von der AVM-Version der Firmware abhängig sind und für jede dieser Versionen neu erstellt werden müssen.
Ist mir nicht aufgefallen, so genau habe ich dann (zu meiner Schande) wieder nicht hingesehen.
Ich verstehe ja Dein Anliegen bei der Integration auch in gewissem Maße ... aber da die ganze Geschichte mit dem "avm_kernel_config"-Bereich ja nur dann überhaupt von Interesse ist, wenn der Freetz-Benutzer ohnehin ein "replace kernel" machen will, sehe ich das mehr als Tool für das Kompilieren eines kompletten Kernels an (was dann ohnehin stattfinden muß, wenn der Benutzer "replace kernel" verwenden will) als eines, was zu den Freetz-Tools gehört und die notwendige "Live-Kompilierung" der beiden Programme (und es wären eben beide, weil der "relocate"-Teil mit der Abhängigkeit von der AVM-Enum-Variablen in beiden verwendet wird) eher als "intermediate result", was man hinterher auch problemlos wieder entsorgen könnte (das spart das Aufbauen von komplizierten Abhängigkeiten für's "make" und der Zeitfaktor durch mehrfaches Kompilieren und Ausführen ist hier m.E. zu vernachlässigen).
Mit dem passenden Symlink im Verzeichnis kannst Du das ja auch problemlos "außerhalb der Kernel-Quellen" verwalten (allerdings eher nicht als "host tool", was nur einmal für die richtige Architektur übersetzt werden muß und daher dort einzuordnen wäre) und mußt nur am Ende die vom Assembler erzeugte Objekt-Datei zusammen mit dem Patch für das Linker-Skript (auch der ist bei der Größe nun mal modellabhängig und auch wenn wir im Moment nur zwei Größen kennen, würde ich das doch dynamisch an die AVM-Quellen anpassen, falls weitere "flavors" dazukommen) in den Baum mit den Kernel-Quellen kopieren. Wenn Du das dann wieder "restaurierst", hast Du auch einen "stabilen" Stand der Kernel-Quellen, den man (wenn man will) wieder für mehrere Modelle oder zumindest für mehrere Builds mit wechselnder Konfiguration beim "replace kernel" verwenden kann.
Aber auch das Einbinden mit absoluten Pfaden oder über Symlinks (dann brauchst Du gar nichts in den Kernel-Baum kopieren, änderst die Struktur aber auch wieder) wäre vielleicht eine Überlegung wert ... aber ich verstehe ohnehin noch nicht so ganz, wo Du die Grenzen der Änderungen ziehen willst bzw. was Dich bei dieser Differenzierung "Kernel vs. Freetz-Tools" nun wirklich antreibt.
Das sind nun mal leider drei verschiedene Level von "Volatilität" ... die (Prozessor-)Architektur ändert sich nur mit dem Prozessor-Modell (das braucht bisher nur den Rebuild der "host tools"), die Inhalte der FDTs ändern sich mit dem (FRITZ!Box-)Modell und die finalen Inhalte des Konfigurationsbereichs ändern sich sogar (wg. der Modul-Tabelle und der "version_info") für jede neue FRITZ!OS-Version.
Da sich auch der Aufbau des Konfigurationsbereiches mit jeder neuen FRITZ!OS-Version ändern kann (das weiß man erst, wenn man die Quellen hat und theoretisch könnte mit jedem neuen OS auch eine neue HWSubRevision in den FDT-Bereich Einzug halten), sehe ich auch die beiden Tools aus "avm_kernel_config" eher auf derselben Ebene bei ihrer "Vergänglichkeit", wie den Inhalt des Konfigurationsbereiches an sich ... und das bedeutet dann tatsächlich, daß man sie für jeden Build, bei dem sich der zugrundeliegende AVM-Kernel geändert hat, auch neu erstellen und benutzen muß (wenn man einen eigenen Kernel haben will) und sie bei den Abhängigkeiten für einen Build auch am ehesten dort unterbringt, wo ein neues AVM-Image entpackt wird. Man muß ja nicht jedesmal den kompletten Kernel übersetzen und entpackt wird der doch (m.W.) ohnehin, weil man ja die Include-Files für Userland-Programmierung auch braucht. Vielleicht brauchst Du ja auch eine neue "Kategorie" für solche Hilfsprogramme, die "image tools", die von der AVM-Version der Firmware abhängig sind und für jede dieser Versionen neu erstellt werden müssen.