1st post here.
Tags or Magick words related to this issue:
Failed to install DSM, Error trying to load PAT at 55%,
Prior things done/check
Install TinyCore
Boot USB to TinyCore
Build with DS3622xs+
USB Kingston (good compatibility) Supermicro Board (good compatibility)
Boot correctly into DSM Loader
Problem: After loading PAT file (proper version) you get the message
"Failed to install the file. The file is probably corrupted"
Analyzis: After finding the serial console provided by TinyCore on http://<yourip>:7681 (user/pass root/<blank>).
If you check with cat/vi the log file linuxrescue.... cat /var/log/*rc*
You will see some error messages like this
...
Still waiting for boot device (waited 28 of 30 seconds)
Still waiting for boot device (waited 29 of 30 seconds)
Still waiting for boot device (waited 30 of 30 seconds)
ERROR: Timeout waiting for /dev/synoboot device to appear.
Most likely your vid/pid configuration is not correct, or you don't have drivers needed for your USB/SATA controller
...
If this is the case.... maybe (but maybe) DSM Loader cant find the USB drive, despite from the fact that you correctly set the PID VID on the config.
*You can check also running df -h or any other commando showing that the USB stick wasnt mounted/detected
Cause: This could be caused by many things, but the one I found in this case is that the USB is connected in another port not used by DSM.
I will be as simple as posible...
DSM 7.1 on 3622xs+ looks at firsts BUS/PCI combination for the USB VID/PID provided,
so bad luck on my trying to boot.
My hardware has the USB port on BUS/Device: 2-3
(Reference photo)
Solution: Here comes the good part..
How can we specify a new BUS/Device location on 3622? no idea.... xD
But i've found that models DS920+ and DS1621+ have some .dts files on the redpill github.
And they show at the very bottom the following curious info
usb_slot@1 {
vbus {syno_gpio = <0x2a 0x1>;};
usb2 {usb_port = "1-2";};
usb3 {usb_port = "2-2";};
};
usb_slot@2 {
vbus {syno_gpio = <0xb 0x1>;};
usb2 {usb_port = "3-1";};
usb3 {usb_port = "4-1";};
};
usb_slot@3 {
vbus {syno_gpio = <0xc 0x1>;};
usb2 {usb_port = "1-3";};
usb3 {usb_port = "2-3";};
};
};
I guess you've realized were we are going.
the rploader.sh script updates ONLY the line for usb_slot@1 on this file with the proper PID/VID of your USB stick.
So what I did was, after runing identifyusb,
I've changed manually the usb_port for usb2 on usb_slot@1 with the proper BUS/Device info obtain from the lsusb command on tinycore
(where my usb were connected)
Bonus: You can use 1Gb USB Stick with no problem
Bonus2: I guess this applies to all DSMs and Loaders
Hope this helps, took me 1 day to figure out.