Welcome! Log In Create A New Profile

Advanced

Unbrick Synology DS415+

Posted by felix_clerc 
Unbrick Synology DS415+
October 01, 2024 03:03AM
Hello,

Owner of a DS920+ and older DS415+, I wanted to use them in cluster.
Since it requires the same DSM version on both NASes, I "played" with my DS415+ to make it think it's a newer model.
I just quickly choose a model with the same CPU, did my upgrade fine, rebooted and... nothing :(

Ok, it's clearly my fault, but since I knew the hardware is ok, I started looking at recovering this (going back to proper firmware + DSM version)

I used the serial console, and I noticed it boots but mention my pci controller ( SATA controller: Intel Corporation Atom processor C2000 AHCI SATA3 Controller (rev 02)) was configured in SATA mode, and only 2 disks were recognized, the ports 3 and 4 were marked as DUMMY.

After some searching, I learned that it was possible to create à boot stick by modifying its VID and PID. I found on usbdev some tools to change the id of one of the sticks I had laying around, and successfully change the needed parameters on the stick.

I thenm installed System Rescue on the stick, and renamed the boot64.efi file in /EFI/boot to "SynoBootLoader.efi"

Plugin the usb stick in the front usb slot, I booted to rescue system on serial console successfully. moutall alowed me to access the internal storage, and I've been able to modify teh SynoBootLoader.conf to play with disks index, etc.. without being able to make more than 2 disks available.

I explored the way of using efivar to change the SATA setting to ahci but failed...
I then extracted the .pat file from synology latest release for DS415+ (using
syno-extract-system-patch and found out that the bios and the utility to flash it are in the content of the file.
Unfortunately, it doesn't work as the required isfl driver module is not loaded. I tried to modprobe the .ko files that comes with it but it didn't work. I also tried to compile it from isfl driver but it throwed me some errors and never compiled.

I then reverted to the flashrom utility included with system rescue, and to my atonement, it recognized the rom:
flashrom --programmer internal --read currentrom.bin
flashrom 1.4.0 (git:v1.4.0) on Linux 6.6.47-1-lts (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Opened /dev/mtd0 successfully
Found Programmer flash chip "Opaque flash chip" (8192 kB, Programmer-specific) on internal.
Reading flash... done.

This produced a 8Mb file :)

Based on the thread in this forum about unbricking the DS918+ I guess that I should now modify the 6Mb bios.ROM file found in the .pat file to remove some header stuff and also padd FF at the end of it to make it the correct size, but I struggle finding what to remove.

According to this forum post the firmware version of Radm is M.012, but mine is:

[root@sysrescue /mnt/sdd1/Bios/out]#  cat /sys/class/dmi/id/bios_version
M.702
[root@sysrescue /mnt/sdd1/Bios/out]#  cat /sys/class/dmi/id/bios_vendor
INSYDE Corp.
[


Can someone help on this? Knowing that my extracted firmware may be corrupt..
Or can someone dump its firmware from a running DS415+ and provide id to me?

Thanks in advance
Felix



Edited 2 time(s). Last edit at 10/01/2024 07:18AM by felix_clerc.
Re: Unbrick Synology DS415+
October 10, 2024 04:29PM
So, I answer to my post, as I found a way to unbrick it, and it may help someone else...

I discovered this post, which I was able to use as my Syno was booting.
Once logged in as root, my USB thumbdrive was recognized as sdq1, so I was able to mount and access it:
cd /mnt
mkdir sdq1
mount /dev/sdq1 /mnt/sdq1
The content of the usb drive is the extract of the 7.1.1 DSM release I downloaded and uncompressed as explained in prevous post
I had then to make the isfl driver available, which I've done this way:
insmod  isfl_drv_x64.ko
cat /proc/devices
(pick number in front of isfl - it was 100 for me, so the next command was)
mknod /dev/isfl c 100 0

From that point, I've been able to:

#Get bios version:
./H2OFFT-Lx64 -SC

#Extract bios to file:
./H2OFFT-Lx64 extractedbios.rom -O

I tried padding my extracted bios 2 first Mb of data into the header of the bios.ROM file included in the .pat file, but it didn't passsed the verify test...

I then came accross this thread

I then edited the platform.ini file in the extracted pat file, to make sure it ignores the actual bios version, and that it would flash all the bios (sorry, didn't wrote down all changes - everything is in the comments in the file, if someone needs more details, I can provide my modified file).

Without any modifications on the bios.ROM file, the upgrade command just succeeded:

./updater -b .

It flashed the bios, and upon reboot, my controller was back as ahci rather than sata.

I rebooted with my rescuecd usb drive, and edited the SynoBootLoader.conf file. I just ensured the kernel line in it was using the exact same parameters as the default line for the first entry in the grub menu (the original 5.2 DSM on the DM volumes)

Upon rebooting, I have been able to access my Nas using synology assistant, which was in "migration" mode.

I've had errors on 3 of the 4 drives telling the system partition failed. I repaired, which worked for 2 of the 3 failing disks.
I shutdown, removed the faulty disk, reinserted it, started again, and repaired again.

And now I have a fully functional DS415+ again!

I lost part of its config, but it reports healthy and that is just minor config stuff - rsync, bonding.. I reinstalled directory server, rejoined my domain as secondary DC, and all my data became instantly accessible.

So, I hope this can help someone in the same kind of situation
I'll be glad to help if I can

Felix
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: