Firmware 8.2.4 (testing): Paketlisten aktualisieren liefert Fehler "*** Failed to download the package list from /Packages.gz", "Failed to parse json data: unexpected end of data", "* opkg_download: Failed to download /Packages.gz, wget returned 1."

Ich verwende die testing Firmware 8.2.4 auf einem GL.iNet GL-AR150 Router.

Wenn ich „Verwaltung“ → „Software (IPK)“ → „Verfügbare Pakete“ → „Liste aktualisieren“ aufrufe, kommt oben im Webinterface folgender Fehler zurück:

Downloading /Packages.gz
*** Failed to download the package list from /Packages.gz

logread -f (per ssh eingeloggt) liefert folgende Fehlermeldungen:

Mon Jul  8 09:35:05 2024 daemon.err uhttpd[1563]: Downloading 'https://selfsigned.download.freifunk-dresden.de/firmware/latest/download.json'
Mon Jul  8 09:35:05 2024 daemon.err uhttpd[1563]: Connecting to 157.90.5.163:443
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]: Writing to '/tmp/download.json'
/tmp/download.json   100% |*******************************| 86859   0:00:00 ETA
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]: Download completed (86859 bytes)
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]: Failed to allocate uclient context
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]: Collected errors:
Mon Jul  8 09:35:06 2024 daemon.err uhttpd[1563]:  * opkg_download: Failed to download /Packages.gz, wget returned 1.

Gruß!

Also auf dem MI 4A Gigabit edition funktioniert das.
Scheint mir so als ob da irgendein template bei deinem Target „schlecht geworden“ ist :slight_smile:

zu erst wird das download.json geladen. in diesem steht dann die URL zu der paketliste. wenn das json aus irgend einem grund nicht korrekt geladen wurde (weil verbindung gestört), kann dieses leer sein oder unvollständig. das parsen geht dann schief und du bekommst diese fehlermeldungen im log.

ich hatte dass gerade einmal, aber zwei andere versuche, die liste zu aktualiseren, klappen.
Aktuell nutzt freifunk dresden aber keine extra pakete. diese sind direkt immer in er firmware integriert. dabei handelt es sich meist nur um „helfer“ wie tcpdump. Es war mal angedacht, bei kleineren „fixes“ diese als pakete bereitzustellen. aber das hat sich nicht bewährt und ist zusätzlicher aufwand.
Evt wird diese funktionalität komplett wieder rausgenommen, da sie nicht verwendeet wurde.

Ich habe einen Router mit Frefunk Dresden-Firmware version 8.2.4 gerade wieder mal “ausgepackt” und wollte aktualisieren:

Im Webiterface auf “Wartung” → “Firmware” (/admin/firmware.cgi) gegangen, dort dann „Update-Info“ geklickt. Im log (logread -f im SSH-Login) kommt eben die hier gemeldete Fehlerneldung:

Mon Sep 29 20:06:03 2025 daemon.err uhttpd[1563]: Downloading 'https://selfsigned.download.freifunk-dresden.de/firmware/latest/download.json'
Mon Sep 29 20:06:03 2025 daemon.err uhttpd[1563]: Connecting to 157.90.5.163:443
Mon Sep 29 20:06:04 2025 daemon.err uhttpd[1563]: Writing to '/tmp/download.json'
/tmp/download.json   100% |*******************************| 87952   0:00:00 ETA
Mon Sep 29 20:06:04 2025 daemon.err uhttpd[1563]: Download completed (87952 bytes)
Mon Sep 29 20:06:04 2025 daemon.err uhttpd[1563]: Downloading 'https://selfsigned.download.freifunk-dresden.de/firmware/testing/download.json'
Mon Sep 29 20:06:04 2025 daemon.err uhttpd[1563]: Connecting to 157.90.5.163:443
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Writing to '/tmp/download.json'
/tmp/download.json   100% |*******************************| 87952   0:00:00 ETA
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Download completed (87952 bytes)
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:05 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data
Mon Sep 29 20:06:06 2025 daemon.err uhttpd[1563]: Failed to parse json data: unexpected end of data

(Wie) kann ich die Firmware vom Gerät aus updaten (und ohne dass Einstellungen verlorengehen)?

:up_right_arrow: Hier ist der Inhalt der generierten /tmp/download.json.

Lieber Gruß!

Grüße,
wieso er das bei dir nicht mag kann ich dir jetzt leider nicht sagen.
Aber du kannst ihn auch manuell updaten.
lade die die passende sysupgrade Firmware herunter: https://download.freifunk-dresden.de/firmware/latest/firmware/ath79.generic/openwrt-ath79-generic-glinet_gl-ar150-squashfs-sysupgrade.bin
und lade sie im Firmware Menü wo du ja schon bist hoch.
md5sum kurz checken (bei Firefox sind die Dateien ab und zu “kaputt”) und dann einfach updaten.

Grüße Lode

2 „Gefällt mir“

OK, ich habe auf die 8.2.7 aktualisiert.

Auch da, wenn ich „Update-Info“ klicke, bekomme ich diese Fehlermeldungen.

Also ggf. was was sich die Entwickler:innen anschauen sollten?

Gerne kann ich weitere Informationen bereitstellen wenn benötigt.

1 „Gefällt mir“

scheinbar ist das json kaputt. auf dem Server scheint es korrekt zu sein.

ich schaue mal, was ich rausbekomme.

vg Stephan

Ahoj,

On Wed, 01 Oct 2025 21:58:29 +0000, @ddmesh wrote:

welche URL steht bei Dir in /etc/config/credentials

config url 'url'
	option firmware_download_release 'https://selfsigned.download.freifunk-dresden.de/firmware/latest'
	option firmware_download_testing 'https://selfsigned.download.freifunk-dresden.de/firmware/testing'

du kannst auch mal die consolen Ausgabe des

Scripts ddmesh-get-firmware-name.sh posten. dieses liefert
Informationen über den Datei namen.

Downloading 'https://selfsigned.download.freifunk-dresden.de/firmware/latest/download.json'
Connecting to 157.90.5.163:443
Writing to '/tmp/download.json'
/tmp/download.json   100% |*******************************| 87952   0:00:00 ETA
Download completed (87952 bytes)
{"error":"file info not found"}

evt.hat dein Router eine andere Geräte Kennung.

cat /etc/board.json

{
	"model": {
		"id": "glinet,gl-ar150",
		"name": "GL.iNet GL-AR150"
	},
	"network": {
		"lan": {
			"device": "eth0",
			"protocol": "static"
		},
		"wan": {
			"device": "eth1",
			"protocol": "dhcp"
		}
	}
}

Hilft das weiter?

Lieber Gruß!

Danke,

das Problem ist, dass openwrt die Router/Model Kennung geändert hat.

das ist die “id” in der datei /etc/boards

damit findet der Router sich nicht in der /tmp/download.json.

das kann ich aber auf dem Server anpassen und einen weiteren Eintrag beim erzeugen und dem Upload der Firmware anlegen.

werde das 8n Kürze einpflegen.

Danke dir

1 „Gefällt mir“

Für spezifisch diesen Router, und das ist hier bei Freifunk einfach noch nicht aufgefallen?

Ich habe keine /etc/boards. Jedoch eine /etc/board.json, s. oben. Ist das ggf. das Problem?

Dann gibt es noch ein Verzeichnis /etc/board.d/ welches Informationen über vorhandene Hardware auf dem Gerät zu beinhalten scheint.

Gibst Du bescheid wenn es geschehen ist, so dass ich testen kann? (Jetzt bekomme ich immernoch den Fehler.)

Gruß!

hi, na so schnell geht das nicht. ich muss sehen wann ich dazu komme.

generell hat das openwrt für sehr viele Router angepasst. es macht Arbeit diese Kennungen für alte Firmware und neuere Versionen in der Umgebung für das Deploy aufzunehmen. Freifunk basiert zwar auf openwrt, aber es gehört eine server infrastructur dazu, die spezifisch zu Freifunk Dresden ist.
wir können somit nur Geräte anpassen, die im Netz bei uns vorhanden sind. in der Entwicklung können wir nicht alle Router testen, ist einfach zu teuer .

daher sind wir auf Infos, wie von dir, angewiesen.

ich schaue mal wann ich das schaffe.

1 „Gefällt mir“