Difference between revisions of "OpenWRT"

From
Jump to: navigation, search
(SDK installieren)
(Firmware abholen)
Line 68: Line 68:
 
bin/packages/mips_24kc/packages/mips_24kc/packages/acme_4.0.0_all.ipk
 
bin/packages/mips_24kc/packages/mips_24kc/packages/acme_4.0.0_all.ipk
 
...
 
...
 +
 +
</pre>
 +
 +
 +
=== Erläuterungen ===
 +
<pre>
 +
Der Befehl:  make defconfig download clean world
 +
 +
setzt sich aus mehreren Makefile-Zielen zusammen, die nacheinander ausgeführt werden.
 +
Er taucht oft in Buildsystemen wie OpenWrt, Buildroot oder anderen Embedded-Linux-Projekten auf.
 +
Ich erkläre dir Schritt für Schritt, was jedes dieser Targets normalerweise bedeutet:
 +
 +
1. make defconfig
 +
 +
Setzt die Standardkonfiguration des Projekts.
 +
Es lädt oder erstellt eine Standard-.config-Datei basierend auf den voreingestellten Optionen.
 +
Ziel: einen bekannten Ausgangszustand herstellen.
 +
Beispiel (OpenWrt): Die Datei configs/default wird eingelesen und nach .config kopiert.
 +
 +
 +
2. make download
 +
 +
Lädt alle benötigten Quellpakete aus dem Internet herunter (z. B. Tarballs, Quellcode von Git-Repos etc.).
 +
Diese Dateien landen meist in einem Verzeichnis wie dl/ oder downloads/.
 +
Ziel: sicherstellen, dass alle Abhängigkeiten lokal verfügbar sind, bevor kompiliert wird.
 +
 +
 +
3. make clean
 +
 +
Löscht die kompilierten Dateien (Objekte, Binaries, temporäre Build-Artefakte), behält aber die Konfiguration.
 +
Wird verwendet, um das System aufzuräumen oder sicherzustellen, dass ein Build „von Null“ beginnt.
 +
 +
 +
4. make world
 +
 +
Baut das gesamte System neu auf – alle Pakete, Kernel, Images usw.
 +
Entspricht oft einem „Full Build“.
 +
In OpenWrt z. B. erstellt es das gesamte Root-Filesystem und alle Binärdateien für das Zielgerät.
 +
 +
 +
Zusammengesetzt:
 +
 +
Wenn du alles zusammen ausführst
 +
bedeutet das sinngemäß:
 +
 +
„Setze Standardkonfiguration, lade alle Quellpakete herunter, bereinige den Build-Ordner und baue anschließend das gesamte System komplett neu.“
 +
 +
 +
Typischer Anwendungsfall:
 +
 +
Du verwendest diesen Befehl, wenn du ein frisches, vollständiges Build starten willst —
 +
z. B. nachdem du das Repository neu geklont oder größere Änderungen vorgenommen hast.
  
 
</pre>
 
</pre>

Revision as of 08:22, 7 November 2025

openWRT

Vorbereitung

Modernized set for Ubuntu 24.04 that has Python 3.12 without python3-distutils: (OpenWrt main/master in Apr 2024)

sudo apt update
sudo apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3 \
python3-setuptools rsync swig unzip zlib1g-dev file wget \
binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev \
make4.1+ perl  rsync subversion unzip which


angepasst

sudo apt update
sudo apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3 \
python3-setuptools rsync swig unzip zlib1g-dev file wget \
binutils bzip2 flex gawk grep libc-dev libz-dev \
make perl rsync subversion unzip which

SDK installieren

!!! Installation NICHT als root !!!

git clone https://github.com/openwrt/openwrt.git
cd openwrt
git pull 

git branch -a
# git tag 

git checkout openwrt-24.10

./scripts/feeds update -a
./scripts/feeds install -a

make menuconfig

Firmware bauen

make

oder

make defconfig download clean world


Firmware abholen

After a successful build, the freshly built image(s) and packages can be found below the newly created <buildroot>/bin/targets and <buildroot>/bin/packages directories, respectively. The exact location depends on the target/subtarget (for images) or architecture (for packages):

# Assuming a build for a Netgear WNDR3800, an "ath79" target with a "generic" subtarget
# and a "mips_24kc" package architecture

find bin/targets/ -iname "*-sysupgrade.img*"
bin/targets/ath79/generic/openwrt-24.10.2-ath79-generic-netgear_wndr3800-squashfs-sysupgrade.bin

find bin/packages/ -iname "*.ipk"
bin/packages/mips_24kc/packages/mips_24kc/packages/acme_4.0.0_all.ipk
...


Erläuterungen

Der Befehl:  make defconfig download clean world

setzt sich aus mehreren Makefile-Zielen zusammen, die nacheinander ausgeführt werden. 
Er taucht oft in Buildsystemen wie OpenWrt, Buildroot oder anderen Embedded-Linux-Projekten auf.
Ich erkläre dir Schritt für Schritt, was jedes dieser Targets normalerweise bedeutet:

1. make defconfig

Setzt die Standardkonfiguration des Projekts.
Es lädt oder erstellt eine Standard-.config-Datei basierend auf den voreingestellten Optionen.
Ziel: einen bekannten Ausgangszustand herstellen.
Beispiel (OpenWrt): Die Datei configs/default wird eingelesen und nach .config kopiert.


2. make download

Lädt alle benötigten Quellpakete aus dem Internet herunter (z. B. Tarballs, Quellcode von Git-Repos etc.).
Diese Dateien landen meist in einem Verzeichnis wie dl/ oder downloads/.
Ziel: sicherstellen, dass alle Abhängigkeiten lokal verfügbar sind, bevor kompiliert wird.


3. make clean

Löscht die kompilierten Dateien (Objekte, Binaries, temporäre Build-Artefakte), behält aber die Konfiguration.
Wird verwendet, um das System aufzuräumen oder sicherzustellen, dass ein Build „von Null“ beginnt.


4. make world

Baut das gesamte System neu auf – alle Pakete, Kernel, Images usw.
Entspricht oft einem „Full Build“.
In OpenWrt z. B. erstellt es das gesamte Root-Filesystem und alle Binärdateien für das Zielgerät.


Zusammengesetzt:

Wenn du alles zusammen ausführst
bedeutet das sinngemäß:

„Setze Standardkonfiguration, lade alle Quellpakete herunter, bereinige den Build-Ordner und baue anschließend das gesamte System komplett neu.“


Typischer Anwendungsfall:

Du verwendest diesen Befehl, wenn du ein frisches, vollständiges Build starten willst — 
z. B. nachdem du das Repository neu geklont oder größere Änderungen vorgenommen hast.