List of known quirks (in a recommended to be read order):
-
- Type: information
- Understood: yes
- Loader impact: N/A
- Kernel options: N/A
-
- Type: information
- Understood: yes
- Loader impact: N/A
- Kernel options: N/A
-
- Type: information
- Understood: yes
- Loader impact: N/A
- Kernel options: N/A
-
- Type: integrity verification
- Understood: yes, not verified
- Loader impact: LKM shim
- Kernel options: all custom ones
-
- Type: operation parameter
- Understood: yes
- Loader impact: LKM shim
- Kernel options:
vid=
,pid=
,synoboot_satadom=
-
- Type: operation parameter
- Understood: yes
- Loader impact: kernel binpatch, LKM shim
- Kernel options:
vid=
,pid=
,synoboot_satadom=
-
- Type: integrity verification
- Understood: yes
- Loader impact: kernel binpatch
- Kernel options: N/A
-
- Type: integrity verification
- Understood: partially
- Loader impact: kernel binpatch
- Kernel options: N/A
-
- Type: operation parameter
- Understood: yes
- Loader impact: LKM shim (hw version dependent)
- Kernel options: N/A
-
- Type: operation parameter
- Understood: partially
- Loader impact: LKM shim (hw version dependent)
- Kernel options: N/A
-
- Type: hw feature
- Understood: no
- Loader impact: LKM emulator
- Kernel options: N/A
-
- Type: hw feature, integrity verification
- Understood: yes
- Loader impact: LKM emulator
- Kernel options: N/A
-
- Type: hw feature
- Understood: yes
- Loader impact: LKM emulator
- Kernel options: N/A
-
- Type: hw feature
- Understood: yes
- Loader impact: LKM emulator
- Kernel options: N/A
-
- Type: hw feature
- Understood: yes
- Loader impact: LKM shim or user-mode workaround
- Kernel options: N/A
-
- Type: hw feature, sanity check
- Understood: yes
- Loader impact: LKM emulator
- Kernel options: N/A
See mysteries file which contains bits-and-pieces of information about some things which aren't known enough to warrant a file.
Some quirks ("Loader impact: kernel binpatch") require the kernel image to be patched. This is because a given check
happens before any module can be loaded and Synology doesn't share full GPL sources (the code is full of
#ifdef MY_ABC_HERE
) so a simple patch to the kernel is not possible.
The only option we see is binary patching. However, while it's possible:
- It isn't as easy as one may expect (and the patch part is just the tip of an iceberg)
- Binary patching must be done on uncompressed image
- After patching the kernel needs to recompressed (or we should say partially rebuilt)
- This is a complex process requiring custom tooling.