Jump to content
XPEnology Community

DS918+ Bootloader - Help Needed


Recommended Posts

I'm trying to build a bootloader for DS918+. This synology version is based on Linux 4.4 and use ApolloLake CPU. The interesting thing is that since it is based on Linux 4.4, it contains newer GPU driver which supports up to KabyLake processor. The only CPU it won't support is CoffeLake which just came out. Anyway, this should enabled Hardware Transcoding for these newer processor.


Here's the progress so far. Original bootloader is from DS916+.


  • zImage - Using the default zImage from DS918+. 
  • rd.gz - Using the default zImage from DS918+.
  • extra.lmza
    • etc
      • jun.patch (done)
      • rc.modules (all emptied since the driver won't work for this bootloader anyway)
    • use
      • bin
        • patch (my guess is that this program is used to patch "jun.patch". I'm not sure if it is version specific since DS916 is based on Linux 3.10 and DS918 is based on Linux 4.4)
      • lib
        • firmware (all emptied)
        • modules (all emptied)
      • sbin
        • modprobe (this seems to be the file that write the USB PID VID, MAC and other values to the running kernel. It is version specific so it won't work now for this bootloader. It has to be recompiled for apollolake)


Right now, i can get to the screen where i upload the PAT file but i got this error Failed to install the file. The file is probably corrupted. (13)" . My guess is that it is missing a working modprobe. 


If anyone can provide me some insight or tips, i would really appreciate it.

Link to comment
Share on other sites

Both models have different kernel versions and architectures (braswell vs Apollolake). Jun's patch/hack needs to be customised for each specific model. Unless you are confortable with coding/hacking and able to come up with your own hack then Jun would need to create a loader for 918+. My understanding is that modprobe is the actual hack but it's a binary so you won't be able to see what's inside.

Link to comment
Share on other sites

4 hours ago, ravetam said:

Right now, i can get to the screen where i upload the PAT file but i got this error Failed to install the file. The file is probably corrupted. (13)" . My guess is that it is missing a working modprobe. 


that error is typical if there is a wrong vid/pid

also beside this stuff

in 3617 and probably other newer versions like 916+ and 918+ there is a chek about the bootloader (or serial device?) that checks for original sysnology hardware, after some time (~24h) it will disable services, it was called timebomb, that fix came (afair) with 1.2a2, same time as 916+ support

  • Like 1
Link to comment
Share on other sites

The hardware ID works fine for 916. And I saw that there's some code that mentioned pid and vid in modprobe.


Two of the test I did is removing modprobe and also replacing it in DS916 bootloader and I get do get the error 13 again. I'll have to search around what the modprobe does.


Thanks for the tips on the time bomb. I hope that code is in the public source code that synology uploaded. 

Link to comment
Share on other sites

That error 13 is actually irrelevant or at least secondary in this situation. The problem comes from what I have stated above.


You might want to read this: 


9 hours ago, ravetam said:

Guess i will just have to look around some old guide then. If anyone has any more information, please let me know (PM or reply). 


Some old guide




To the extent of my knowledge pre-jun loaders (meaning nanoboot, xpenoboot) use a different hack mechanism but I guess it's always good to get acquainted with what was done in the past.

Link to comment
Share on other sites

Tried to use VirtualBox and setup a serial output but unfortunately, nothing were outputted. I even tried to load just the zImage kernel but it's the same. In the previous version, when you do

linux /zImage

in Grub, there will be information available in the serial console. Without the console, it will be quite hard to work with.


I will try to unpack and repack rd.gz with all the patch and see if it works on my bare metal which seems to work better. Will also need to buy a Serial to USB cable to connect with my machine for viewing the console output.

Edited by ravetam
Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

I am the owner of ASRock J4205-ITX - 16GB or RAM + 128GB SSD + 2x 3TB. I was unsuccessful with Jun's v1.02b and DS916. I boot successfully, however load of pat fails with error 13. 

So I am trying to build Xpenology for DSM918+ (Apollo lake). I found kref's scripts, downloaded kernel & toolchain published by Synology on Sourceforge, I overcame some obstacles.

However generated image doesn't work for me. I tried to redirect console to tty0 by a kernel parameter - no success. I cannot even make kernel to be verbose on the serial port.


I wonder what kind of mods are needed for kernel. I noticed a lot of mentions of modprobe and I can see there are synobios binaries in sancome's repo. I guess mod is needed for passing SN & macs and maybe USB vid pid, but I don't understand what is a trick with sid pid. Does it somehow hide USB drive for Synology?

Are there somewhere mod patches for old linux, so I could be inspired for linux 4.4.x? 




Link to comment
Share on other sites

@Polanskiman, thanks! I will go through this info. I realized that vid pid settings resolved my problem with error 13. It was not clear to me vid & pid should be updated. However speed of the network card is bad. Copy over SMB/CIFS is like 3MB/sec, so it looks like module for network card is needed - RTL8111. 





Link to comment
Share on other sites

  • 4 weeks later...
  • 10 months later...
10 hours ago, Trailblazer said:

Are we supposed to use MAC's from an actual unit in the Grub config file or our MAC for our network port?

Thanks for the serial

Have to disagree.. Find a serial/mac for an actual Syno Box and change it slightly for use on your own box..


Any time I tried to use the actual MAC of my MoBo/NIC cards, it didn't work correctly (though that was a long time ago)..

Link to comment
Share on other sites

@Hostilian I hate to brake it to you... but with Jun's loaders, there is no need to fake Syno MAC's, 

unless you want to use some of the "locked functions", as HW transcoding, QuickConnect etc. everything else works great and stable.


Conclusion: use your nic's original MAC in your "grub.cfg" when using Jun's loader! (unless you have specific need to fake it)

Link to comment
Share on other sites

On 1/16/2019 at 6:35 AM, Trailblazer said:

Thanks for the replies, guys!

I couldn't see how to edit my previous post. My installation on a Dell T30 did not work.

I can only get it to work with 6.1.7 and the 1.02b Boot loader for the 916+. That does work, and quite well.

Thanks Jun!


Does your T30 have a Intel Xeon E3-1225 v5 ?

Are you booting with UEFI mode ?

and HD set to AHCI mode ?

VID:# Correct ?

PID:# Correct ?

If so it should work, on mine it does...I'm using Loader 1.04 on the DS918+


I'm sorry guys this had to be moved to it's proper post, didn't realize where i was...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...