- Mitglied seit
- 19. Okt 2012
- Beiträge
- 8
- Punkte für Reaktionen
- 12
- Punkte
- 59
Hallo Freunde der Embedded SOCs,
heute möchte ich meine Erfahrungen bei der Reparatur einer DS218J mit euch teilen. November Sonntag - grau in grau Langeweile - im Nachbarort bei Kleinanzeigen gab es günstig eine defekte DS218J ohne Datenträger, die nach einem gescheiterten FW Update nur noch blinkte. Webinterface nicht erreichbar, Synology Assistant findet im LAN die Diskstation nicht , eine schöne Herausforderung für kalte Winterabende
Disclaimer : Ich bin kein Synology, NAS, Linux sonstwas Experte, arbeite jedoch schon viele Jahre in der IT Branche und kann mich in Themen schnell einlesen, deswegen sorry wenn ich hier unverständliches Wording verwende. Dies ist keine Step by Step Anleitung für Anfänger und erhebt kein Anspruch auf Vollständigkeit. Benutzung auf eigene Gefahr!
Nachdem ich mir Zugriff über die serielle Konsole verschafft hatte und der Bootloader noch intakt war, ergab sich folgendes Fehlerbild :
Das war also die Ausgangssituation, ich musste jetzt dafür sorgen, dass die DS218J "irgendwie" einen Kernel bootet. Mangels Hardware Flasher für den MX25L6405D suchte ich nach Alternativen. Ich prüfte ob booten über USB möglich war, gab dann aber nach viel Lesen in einschlägigen Foren (auch hier ) die Idee wieder auf und verfolgte einem anderen Lösungsansatz.
Dieser bestand darin, Teile des fehlenden Flashimages via TFTP in eine Ramdisk zu schreiben, von dieser Ramdisk den Kernel zu booten und dann den Synology Assistant dazu zu bringen, der DS218J eine neue DMS Version zu verpassen incl. Flashvorgang des MX25L6405D.
Ich lud mir testweise verschiedene DMS Versionen für die DS218J von der Synology Seite herunter und zerlegte die *.pat Files mit 7zip um mir eine Übersicht über deren Inhalt zu verschaffen. Dann installierte ich auf einem Windows 10 Rechner mit deaktivierter Firewall SolarWinds TFTP Server und legte die zuvor extrahierten Dateien "zImage" und "rd.bin" ins TFTP Stammverzeichnis ab. Ich setzte die fettgedruckten Befehle in Putty über die serielle Konsole ab...
.. doch irgendwas war noch faul Die Suchanfrage "no ATAGS support: can't continue" bei Google führte mich schließlich dem Ziel näher. Ich verstand nun, dass ich noch eine weitere Datei benötigte um den Bootvorgang erfolgreich abschließen zu können, eine *.dtb Datei. Diese fand ich bei doozan, jedoch von einer DS216J. Glücklicherweise haben die DS216J und DS218J einen SOC aus der gleichen Marvell Familie
Ich freute mich sehr, als die DS218J aufhörte blau zu blinken und im Anschluss der Synology Assistant die Box im Netzwerk finden konnte
Hier der komplette Log mit Extras https://pastebin.com/HCQQmBfV
heute möchte ich meine Erfahrungen bei der Reparatur einer DS218J mit euch teilen. November Sonntag - grau in grau Langeweile - im Nachbarort bei Kleinanzeigen gab es günstig eine defekte DS218J ohne Datenträger, die nach einem gescheiterten FW Update nur noch blinkte. Webinterface nicht erreichbar, Synology Assistant findet im LAN die Diskstation nicht , eine schöne Herausforderung für kalte Winterabende
Disclaimer : Ich bin kein Synology, NAS, Linux sonstwas Experte, arbeite jedoch schon viele Jahre in der IT Branche und kann mich in Themen schnell einlesen, deswegen sorry wenn ich hier unverständliches Wording verwende. Dies ist keine Step by Step Anleitung für Anfänger und erhebt kein Anspruch auf Vollständigkeit. Benutzung auf eigene Gefahr!
Nachdem ich mir Zugriff über die serielle Konsole verschafft hatte und der Bootloader noch intakt war, ergab sich folgendes Fehlerbild :
SF: Detected MX25L6405D with page size 64 KiB, total 8 MiB
*** Warning - bad CRC, using default environment
.
.
.
Wrong Image Format for bootm command
ERROR: can't get kernel image!
Das war also die Ausgangssituation, ich musste jetzt dafür sorgen, dass die DS218J "irgendwie" einen Kernel bootet. Mangels Hardware Flasher für den MX25L6405D suchte ich nach Alternativen. Ich prüfte ob booten über USB möglich war, gab dann aber nach viel Lesen in einschlägigen Foren (auch hier ) die Idee wieder auf und verfolgte einem anderen Lösungsansatz.
Dieser bestand darin, Teile des fehlenden Flashimages via TFTP in eine Ramdisk zu schreiben, von dieser Ramdisk den Kernel zu booten und dann den Synology Assistant dazu zu bringen, der DS218J eine neue DMS Version zu verpassen incl. Flashvorgang des MX25L6405D.
Ich lud mir testweise verschiedene DMS Versionen für die DS218J von der Synology Seite herunter und zerlegte die *.pat Files mit 7zip um mir eine Übersicht über deren Inhalt zu verschaffen. Dann installierte ich auf einem Windows 10 Rechner mit deaktivierter Firewall SolarWinds TFTP Server und legte die zuvor extrahierten Dateien "zImage" und "rd.bin" ins TFTP Stammverzeichnis ab. Ich setzte die fettgedruckten Befehle in Putty über die serielle Konsole ab...
Marvell>> setenv ipaddr 192.168.178.233
Marvell>> setenv serverip 192.168.178.99
Marvell>> tftpboot 0x1000000 zImage
Using egiga0 device
TFTP from server 192.168.178.99; our IP address is 192.168.178.233
Filename 'zImage'.
Load address: 0x1000000
Loading: *#################################################################
#################################################################
########################
3 MiB/s
done
Bytes transferred = 2247064 (224998 hex)
Marvell>> tftpboot 0x2000000 rd.bin
Using egiga0 device
TFTP from server 192.168.178.99; our IP address is 192.168.178.233
Filename 'rd.bin'.
Load address: 0x2000000
Loading: *#################################################################
#################################################################
#################################################################
#########################################
3.3 MiB/s
done
Bytes transferred = 3463920 (34daf0 hex)
Marvell>> bootm 1000000 2000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-3.10.108
Created: 2021-10-18 11:15:28 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2247000 Bytes = 2.1 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
Image Name: synology_armada38x_ds218j 42218
Created: 2021-10-18 13:15:33 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 3463856 Bytes = 3.3 MiB
Load Address: 08000000
Entry Point: 08000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
no ATAGS support: can't continue
.. doch irgendwas war noch faul Die Suchanfrage "no ATAGS support: can't continue" bei Google führte mich schließlich dem Ziel näher. Ich verstand nun, dass ich noch eine weitere Datei benötigte um den Bootvorgang erfolgreich abschließen zu können, eine *.dtb Datei. Diese fand ich bei doozan, jedoch von einer DS216J. Glücklicherweise haben die DS216J und DS218J einen SOC aus der gleichen Marvell Familie
Marvell>> setenv ipaddr 192.168.178.233
Marvell>> setenv serverip 192.168.178.99
Marvell>> tftpboot 0x1000000 zImage
Using egiga0 device
TFTP from server 192.168.178.99; our IP address is 192.168.178.233
Filename 'zImage'.
Load address: 0x1000000
Loading: *#################################################################
#################################################################
########################
3.1 MiB/s
done
Bytes transferred = 2247064 (224998 hex)
Marvell>> tftpboot 0x2000000 rd.bin
Using egiga0 device
TFTP from server 192.168.178.99; our IP address is 192.168.178.233
Filename 'rd.bin'.
Load address: 0x2000000
Loading: *#################################################################
#################################################################
#################################################################
#########################################
2.8 MiB/s
done
Bytes transferred = 3463920 (34daf0 hex)
Marvell>> tftpboot 0x3000000 dtb.dtb
Using egiga0 device
TFTP from server 192.168.178.99; our IP address is 192.168.178.233
Filename 'dtb.dtb'.
Load address: 0x3000000
Loading: *#####
1.9 MiB/s
done
Bytes transferred = 65536 (10000 hex)
Marvell>> bootm
Wrong Image Format for bootm command
ERROR: can't get kernel image!
Marvell>> bootm 1000000 2000000 3000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-3.10.108
Created: 2021-10-18 11:15:28 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2247000 Bytes = 2.1 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
Image Name: synology_armada38x_ds218j 42218
Created: 2021-10-18 13:15:33 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 3463856 Bytes = 3.3 MiB
Load Address: 08000000
Entry Point: 08000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 03000000
Booting using the fdt blob at 0x03000000
Loading Kernel Image ... OK
OK
Loading Ramdisk to 1f6d9000, end 1fa26ab0 ... OK
Loading Device Tree to 00ff9000, end 00fffa9b ... OK
Skipping Device Tree update ('fdt_skip_update' = yes)
Limit DDR size at 3GB due to power of 2 requirement of Address decoding
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.108 (root@build16) (gcc version 7.5.0 (GCC) ) #42218 SMP Mon Oct 18 19:14:53 CST 2021
Ich freute mich sehr, als die DS218J aufhörte blau zu blinken und im Anschluss der Synology Assistant die Box im Netzwerk finden konnte
Hier der komplette Log mit Extras https://pastebin.com/HCQQmBfV
Zuletzt bearbeitet: