The aim is not to build a kernel to replace the one in the firmware, but just to gain more understanding of what's going on
Feel free to talk about your findings. I will update this post accordingly.
Here is what I found (note I was using 462 GPL sources).
1. The GPL sources are not complete. They at least lack the synobios module. This can be seen as follows:
- Code: Select all
cp -p 88f5281-config .config
make ARCH=arm CROSS_COMPILE=/path/to/compiler
-->
arch/arm/Kconfig:810: can't open file "drivers/synobios/Kconfig"
To get around that problem, create the following file drivers/synobios/Kconfig
- Code: Select all
config SYNOBIOS_407
tristate "Syno BIOS module for DS407"
---help---
Choosing this option will generate a kernel module
config SYNOBIOS_107_MV
tristate "Syno BIOS module for DS107+"
---help---
Choosing this option will generate a kernel module
The aim of that file is just to avoid modifying Synology config file.
2. With the above file added, kernel compilation fails later. It simply can't compile as is with gcc 4.2. If you use Synology compiler, these patches are not needed.
a. in include/asm-arm/setup.h, remove line 224 ("extern struct meminfo meminfo;")
b. in drivers/scsi/libata-scsi.c move prototype of ata_scsi_translate just before the function ResubmitCommand.
3. After the above modifications, the kernel builds but it lacks some modules, which proves the config file provided in the GPL sources does not match what is in the firmware (or it is due to the fact I am looking at GPL sources that don't match my firmware







