Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Anleitung Freetz-Build mit GitHub Actions

Habt ihr keine Lust es bei euch lokal auf eurem Rechner selbst zu bauen, so soll es auch anders gehen ... Viel Spaß von Prisrak!

Schritt-für-Schritt-Anleitung: Freetz-Build mit GitHub Actions​

Phase 1: Lokale Vorbereitung und​


Da make menuconfig eine interaktive Konsole benötigt, müssen Sie die Konfigurationsdatei (.config) einmalig lokal erstellen, bevor Sie sie zu Git hochladen.

  1. GitHub-Konto: Stellen Sie sicher, dass Sie ein kostenloses GitHub-Konto besitzen.
  2. Freetz-NG Forken: Gehen Sie zum offiziellen Freetz-NG Repository (z.B. ) und klicken Sie oben rechts auf "Fork", um eine eigene Kopie in Ihrem Konto zu erstellen.
  3. Lokal Klonen: Klonen Sie Ihren geforkten Repository-Zweig auf Ihren PC:

    `git clone
    cd freetz-ng`

  4. menuconfig ausführen: Nutzen Sie eine Linux-Umgebung (z.B. WSL auf Windows, eine VM oder ein ), um die interaktive Konfiguration zu starten:

    `# Im Freetz-Verzeichnis, nachdem die Voraussetzungen erfüllt sind:
    make menuconfig`
  5. Speichern: Konfigurieren Sie die Fritz!Box, die Firmware-Version und die gewünschten Pakete. Speichern Sie die Konfiguration und verlassen Sie das Menü. Dadurch wird die Datei .config im Hauptverzeichnis erstellt.

Phase 2: Konfiguration hochladen (Upload der .config

  1. .config kopieren: Stellen Sie sicher, dass die versteckte Datei (.config) in Ihrem lokalen freetz-ng-Verzeichnis liegt.
  2. Commit und Push: Fügen Sie die Konfigurationsdatei zu Git hinzu, committen Sie sie und übertragen Sie sie auf Ihren GitHub-Fork:

    `git add .config
    git commit -m "Meine finale Freetz Konfiguration (.config)"
    git push origin master # Oder den Namen Ihres Hauptzweigs`

Phase 3: GitHub Action Workflow einrichten​

Dieser YAML-Code ist das Herzstück. Er definiert, dass GitHub einen Linux-Server startet, die Freetz-Quellen herunterlädt, Ihre .config verwendet und dann das Image baut.

  1. Workflow-Datei erstellen: Gehen Sie in Ihrem GitHub-Repository zum Tab "Actions".
  2. Klicken Sie auf "New workflow" $\rightarrow$ "set up a workflow yourself" oder navigieren Sie zu: .github/workflows/ und erstellen Sie die Datei freetz_build.yml.
  3. Code einfügen: Kopieren Sie den folgenden Code in die Datei freetz_build.yml und speichern Sie ihn mit "Commit new file".
YAML
Code:
name: Freetz Build

on:
  # Löst den Workflow bei jedem Push auf den 'main'-Branch aus
  push:
    branches:
      - main
  # Ermöglicht auch das manuelle Starten über die GitHub-Oberfläche
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest # Nutzt den kostenlosen Linux-Runner
    steps:
    - name: Checkout Code
      uses: actions/checkout@v4
      with:
        # Freetz benötigt oft Submodule
        submodules: true

    - name: Build Freetz Image
      run: |
        # Notwendige Build-Werkzeuge installieren
        sudo apt-get update
        sudo apt-get install -y build-essential subversion git
        
        # Freetz-Quellen (Trunk) herunterladen
        svn co https://svn.freetz.org/trunk freetz-trunk
        cd freetz-trunk
        
        # Ihre hochgeladene .config-Datei verwenden
        cp ../.config .
        
        # Build-Prozess starten (V=0 reduziert die Ausgabe)
        make V=0
        
    - name: Upload Freetz Image
      uses: actions/upload-artifact@v4
      with:
        name: freetz-image-download
        # Das fertige Image liegt unter freetz-trunk/images/
        path: freetz-trunk/images/*.image
        # Bild wird 7 Tage gespeichert
        retention-days: 7

Phase 4: Build starten und Firmware herunterladen​

  1. Build starten:
    • Wenn Sie den Workflow gerade gespeichert haben (Commit), sollte er automatisch starten.
    • Alternativ: Gehen Sie zum Tab "Actions" $\rightarrow$ Wählen Sie "Freetz Build" $\rightarrow$ Klicken Sie auf "Run workflow" (rechts) $\rightarrow$ "Run workflow".
  2. Warten: Der Build-Vorgang beginnt nun und kann je nach gewählten Optionen 15 bis 60 Minuten dauern. Sie können den Fortschritt live unter dem Tab "Actions" verfolgen.
  3. Image herunterladen:
    • Sobald der Job den Status "Success" (Erfolg) anzeigt, klicken Sie auf den beendeten Workflow-Lauf.
    • Scrollen Sie nach unten zum Abschnitt "Artifacts".
    • Klicken Sie auf freetz-image-download, um ein ZIP-Archiv herunterzuladen. Dieses Archiv enthält Ihre fertig kompilierte Firmware-Datei (.image oder .bin).
Damit haben Sie Ihren Freetz-Build erfolgreich in der Cloud auf GitHub durchgeführt, ohne Ihren lokalen PC zu belasten, und das innerhalb des kostenlosen Kontingents.

Es wurde mit Gemini erstellt
 
Geht gar nicht! Da steht "Der Name oder der Dienst ist nicht bekannt". Welchen vorteil hat es denn einen aktuellen git clone mit einem alten svn checkout zu vermischen?
 
Es sollte eure Aktivität anregen und jemand sollte es einfach nur testen. Somit sieht man überhaupt wie viel Interesse am ganzen Project vorhanden ist. Ich danke dir dennoch für dein testen.
 
Zurück
Oben