Difference between revisions of "OpenWRT"
(→Firmware abholen) |
(→Vorbereitung) |
||
| Line 9: | Line 9: | ||
gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3 \ | gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3 \ | ||
python3-setuptools rsync swig unzip zlib1g-dev file wget \ | python3-setuptools rsync swig unzip zlib1g-dev file wget \ | ||
| − | binutils bzip2 | + | binutils bzip2 flex gawk grep libc-dev libz-dev \ |
| − | + | make perl rsync subversion unzip which | |
</pre> | </pre> | ||
<pre> | <pre> | ||
| − | + | user@deb12:~/openwrt$ make defconfig download clean world | |
| + | WARNING: Makefile 'package/utils/audit/Makefile' has a dependency on 'libev', which does not exist | ||
| + | WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist | ||
| + | WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libtirpc', which does not exist | ||
| + | WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist | ||
| + | WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libtirpc', which does not exist | ||
| + | WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist | ||
| + | WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist | ||
| + | WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist | ||
| + | WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist | ||
| + | WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist | ||
| + | WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist | ||
| + | |||
| + | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
Revision as of 08:27, 7 November 2025
Contents
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 flex gawk grep libc-dev libz-dev \ make perl rsync subversion unzip which
user@deb12:~/openwrt$ make defconfig download clean world WARNING: Makefile 'package/utils/audit/Makefile' has a dependency on 'libev', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libtirpc', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libtirpc', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist
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.