[Tuto] Installer Open media vault, debian 13 sur Syno DS412+

Salut à tous,

J’ai acheté sur LBC un DS412+ HS (Led bleu qui clignote) pour 50€.

Au départ je ne voulais que récupérer que le boitier pour un autre projet. :wink:

Mais je me suis mis en tête de le sauver.

Donc premier diagnostique, le Edom mort, comme souvent. il faut dire que la bête a une bonne dizaine d’année.

Je démonte le bouzin je le met sur mon PC et surprise j’arrive à le lire.

Je le clone, après une brève recherche je m’aperçois que c’est courant. Je recherche encore un peu et je m’aperçois qu’il est possible de booter sur le port usb de la façade. Ni une ni deux je modifie une clé usb (PID : F400 et VID : F400) je balance mon clone dessus.

Et miracle ça boot.:winking_face_with_tongue:

Assez facilement je le passe en DSM7 et je m’aperçois que cela sera son dernier upgrade.

Pour un vieux nanar d’Intel Atom D2701 @ 2.13 GHz / 4 Go RAM, je le trouve plutôt réactif.

A ce moment la, Le DS412+ a piqué ma curiosité. Je me dit maintenant que je sais booter sur une cle usb, pourquoi ne pas mettre un debian dessus.

Je clone à l’arrache un Debian sur ma cle usb.

Et deuxième miracle ça boot.:winking_face_with_tongue:

Je vois vite la limite du truc, pas de visu et oui pas de port vidéo , un petite recherche rapide pour trouver le brochage du port série, un redirection de grub vers ce port et hop mode console.

Je suis super content et la le drame après avoir installé omv pas de disques.

[    7.747386] ata4: SATA link down (SStatus 0 SControl 300)
[    7.752852] ata5: SATA link down (SStatus 0 SControl 300)
[    7.758331] ata2: SATA link down (SStatus 0 SControl 300)
[    7.763794] ata7: SATA link down (SStatus 0 SControl 300)
[    7.769258] ata6: SATA link down (SStatus 0 SControl 300)
[    7.774711] ata3: SATA link down (SStatus 0 SControl 300)
[    9.252899] ata1: SATA link down (SStatus 0 SControl 0)

C’est comme même con d’avoir un NAS et ne pas voir les disques. :upside_down_face:

Une nouvelle recherche et je m’aperçois que Syno utilise un bout de code et une carte propriétaire pour la gestion des disques. Ah mince. Pendant mes recherches j’ai découvert que Syno utilise des GPIO pour alimenter les disque. Peut être une piste.

Le chip est un ICH10 donc pourquoi pas lui forcer ces GPIO pour voir ça réaction.

Un petit bout de code pour set des plages de GPIO.

Et la troisième miracle, il y a de la vie sur une baie. :star_struck:

[   11.550717] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[   11.561186] ata1.00: ATA-9: KingDian S370 128GB, Q1115A0, max UDMA/133

Je cherche à tâtons les GPIO qui montent les 4 baies, une petite tempo pour pas cramer l’alim.

Bingo, les quatre disques présents.

Un script au démarrage, une compile du kernel Debian pour alléger tout ça et une installe d’omv toute neuve.

Et voici le résultat.

Fin de l’obsolescence pour ce vieux NAS, après ça reste un Atom donc…

Il reste encore du boulot, il faut écrire les scripts pour les LED, les ventilos, mais j’ai déjà les HEX et ça marche avec des commandes du styles.

#Status led orange blinking
printf  "\\x3B" > /dev/ttyS1

Donc plutôt simple, si ça intéresse quelqu’un de poursuivre l’aventure?

Mais moi j’ai partagé une belle aventure avec mon vieux Syno DS412+. :rofl:



Sequence de boot :



Ubuntu, c’est ma VM pour compiler :wink: C’est bien un Debian.

Les GPIO pour monter les disques

| Baie | AHCI port   | GPIO pin  |    Registre                      |
|--------|----------------|---------------|---------------------------------|
|   1    |         0         |      **16**  |    GP_LVL  (0x50C)       |
|   2    |         1         |      **20**  |    GP_LVL  (0x50C)       |
|   3    |         2         |      **21**  |    GP_LVL  (0x50C)       |
|   4    |         3         |      **32**  |  GP_LVL2 (0x538 bit 0) |

les commandes pour faire mumuse avec les lumières :winking_face_with_tongue:

#power LED
# make power led blinking
printf  "\\x35" > /dev/ttyS1
# switch power led on
printf  "\\x34" > /dev/ttyS1
# switch power led off
printf  "\\x36" > /dev/ttyS1

#statut LED
#status led blinking green
printf  "\\x39" > /dev/ttyS1
#status led "breathing" green
printf  "\\x3D" > /dev/ttyS1
#status led on green
printf  "\\x38" > /dev/ttyS1
#status led off
printf  "\\x37" > /dev/ttyS1
#Status led orange
printf  "\\x3A" > /dev/ttyS1
#Status led orange blinking
printf  "\\x3B" > /dev/ttyS1

#beeper
#Short beep
printf  "\\x32" > /dev/ttyS1
#Long beep
printf  "\\x33" > /dev/ttyS1

Pour éviter d’encombrer le port USB de façade, on peut brancher le Msata sur le port USB interne (à la place du DOM). Un bout d’une rallonge USB et un connecteur 5x2 au pas de 2mm, un peu de soudure et le tour est joué.

Bravo ! :+1:

J’ai pas de syno 4 baies HS​:grin:, seulement un syno 2 baies 215j qui fonctionne.

Mais depuis le passage en dsm7, je trouve interface beaucoup plus lente.

Je sais pas si c’est possible de le faire passer sur omv, mais quand il sera en panne pourquoi pas essayer.

Par contre pas sûr que j’en sois capable.

Salut

Merci beaucoup pour les infos parce que justement je me posais la question de savoir si les Syno étaient réinstallables sur un vrai Linux et pas la cochonnerie DSM qui m’intéresse pas. Visiblement cela a pas l’air trop compliqué au vu de ton expérience.
Je testerais la chose sur un modèle plus gros (ceux avec i5 rackables en 12 disques). J’avais pensé aussi tout simplement au pire changer la carte-mère pour mettre un truc plus standard non ?
Comment tu as fait pour le faire booter sur la clé USB ? manip au clavier quand la machine s’allume ? switch à bouger quelque part ?

Vincèn

Slt pascal_ha

c’est pas easy, je te confirme. :wink:
Ou j’ai pas mal ramé.

  1. Le manque de docs (il y a un vieux opensource en 4.4 et quelques forums).
  2. Trouvé une clé USB sur lequel on peut changer le PID/VID, ainsi que le prog pour le faire. (sous Windows XP uniquement et pas sur une VM)
    Puis la même sur un un adaptateur USB/Msata (pour plus de durabilité)
  3. Trouvé les GPIO qui vont bien.

Aprés, c’est applicable que pour l’atom D2701, si tu as un autre proc les GPIO seront différents.
Et si c’est de l’ARM c’est encore une autre affaire.

vincen
Pour booter, en tout cas sur le DS412+, si tu enlève l’Edom. Il boot direct sur l’usb en façade.
Par contre il y a un mécanisme de vérification qui check si la clé a bien un PID : F400 et VID : F400. Clé normale pas de boot. (les contrôleurs Asmedia ne sont pas trop dur à modifier :+1:)
J’ai renseigné aussi :

Manufacturer String : Synology
Product String : Diskstation

Mais je ne sais pas si ça a de l’importance.
Pour interagir avec le NAS connexion sur le port serial et putty (115200).

Câblage de l’Edom

Salut à tous,

Voici un retour d’expérience sur mon aventure avec le ds412+.

Le résultat est pas mal, j’ai fini par obtenir un nas fonctionnel fonctionnant sous Debian trixie et omv en natif.

C’est à dire, plus de dom, boot possible sur l’usb2, l’usb3 et/ou sur le disque baie 1, en gros c’est devenu un PC entièrement débridé.

Le gros du travail s’effectue sur un mod bios.

1. Le déverrouillage du lock F400:F400 (2 octets à modifier)

2. La mise sous tension de la baie1 à l’aide d’un gpio (un bit à modifier), Seulement une seule baie est alimentée, la cause est que je n’ai pas trouvé comment faire une séquence d’alimentation temporisée pour absorber le pic de courant des 4 disques.

3. Ajout d’un nouveau module XhciDxe.efi pour prendre en charge le contrôleur usb3 au boot.

4. Edit : ne touche que la carte R1, réglé par une modification du bios.

Essais de modification de l’adressage de la ram mais échec. Le bios de ce NAS a été construit pour recevoir 3Go de ram max. Avec 4Go de ram le nas fonctionne mais il y a une plage de 1Go qui tourne à ~300Mhz contre 3500MHz pour les autres 3Go. Le pb a été contourné par un réglage du MTRR sous Debian.

5. Mise à jour du microcode, le NAS tournait sur le microcode 0x103. C’est presque une pré-version, updaté à 0x10F.

Debian

Cette étape est plus sous contrôle.

Compilation de Debian mini avec juste le strict nécessaire à partir d’un lsmod. Puis réalisation des scripts pour gérer les leds, les ventilateurs, alimentation des baies temporisée, des MAC (d’origine il sont passés par GRUB_CMDLINE_LINUX=)

OMV

Installation classique, pas grand-chose à dire, juste bien lire les préco. (Conf réseau, plus de ssh à la fin de l’installation, etc..)

Dis comme ça, cela parait simple mais j’ai vraiment ramé pour obtenir ce résultat. :zany_face:

Pas de doc, variantes matériels, bios développé avec les pieds, etc…

Je ne publierai pas le bios car il doit être sous licence, mais je veux bien aider si ça ne me prend pas trop de temps. :wink:

PS : Ceci devrait fonctionner sur l'ensemble des NAS D2700 série, mais /!\ il y a des variantes matériels (j'ai deux NAS DS412+, un avec une carte mère R1 et l'autre avec une R2. Les bios ne sont pas identiques, ainsi que le contrôleur usb3), par contre ça fonctionne nickel sur un DS713+. (même bios que le DS412+ R1)


Intel (R) Granite Well Platform
Copyright (C) 1999-2011 Intel Corporation. All rights reserved.

Product Name       : GRANITE WELL
Processor          : Intel(R) Atom(TM) CPU D2701   @ 2.13GHz
Current Speed      : 2.12 GHz
Total Memory       : 4096 MB
Intel BLDK Version : Tiano-GraniteWell (SynOrefie-R1.3.3)
 -------------------------
 Miscellaneous Info
 -------------------------
 Memory Ref Code Version      : 1.00
 CDV Ref Code Version         : 0.9.0-1
 P-Unit Firmware Version      :
 P-Unit Location in Flash     : 0xFFFB0000
 P-Unit Location in RAM       : 0xBF6F0000
 No of SATA ports available   : 6
 No of SATA ports enabled     : 6
 -------------------------


Press F10 in 5 seconds to list all boot options
Any other key to active boot...
Press F10 in 4 seconds to list all boot options
Any other key to active boot...
Press F10 in 3 seconds to list all boot options
Any other key to active boot...
Press F10 in 2 seconds to list all boot options
Any other key to active boot...
Press F10 in 1 seconds to list all boot options
Any other key to active boot...
Enumerating boot devices ... done.


Boot Options :

 -------------------------
  \[ 1 \] - EFI Internal Shell
 -------------------------
    Boot from----> 1

Booting from EFI Internal Shell \[Fv(30D9ED01-38D2-418A-90D5-C561750BF80F)/FvFile(C57AD6B7-0515-40A8-9D21-551652854E37)\]
EFI Shell version 2.30 \[1.0\]
Current running mode 1.1.2
Device mapping table
  fs0  :HardDisk - Alias hd24a32768a1 blk0
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0)/HD(1,GPT,0348C95B-D9C7-4D26-BD6B-DB009EE8D670,0x800,0x100000)
  blk0 :HardDisk - Alias hd24a32768a1 fs0
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0)/HD(1,GPT,0348C95B-D9C7-4D26-BD6B-DB009EE8D670,0x800,0x100000)
  blk1 :HardDisk - Alias (null)
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0)/HD(2,GPT,62348F70-0F65-45B7-A097-BCF4D0C71713,0x100800,0x4000000)
  blk2 :BlockDevice - Alias (null)
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0)

Press ESC in 1 seconds to skip startup.nsh, any other key to continue.
Booting Debian DS412+ (SynOrefie) ...

Loading Linux 6.12.85-ds412-r1.3.0 ...
Loading initial ramdisk ...
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
[    0.000000] Linux version 6.12.85-ds412-r1.3.0 (orefie@orefie-ubuntu) (gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #2 SMP Wed Jul 29 09:51:35 CEST 2026
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.12.85-ds412-r1.3.0 root=

~~~~~~~~~~~~

[   15.198591] e1000e 0000:01:00.0 eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
         Starting chrony.service - chrony, an NTP client/server...
         Starting ds412-leds-ready.service …Power solid, Status green solid)...
         Starting ksmbd.service - ksmbd userspace daemon...
[  OK  ] Started monit.service - Pro-active…onitoring utility for unix systems.
         Starting nginx.service - A high pe…erver and a reverse proxy server...
         Starting openmediavault-issue.serv… - Generate the prelogin message...
         Starting rpc-statd-notify.service - Notify NFS peers of a restart...
[  OK  ] Finished ds412-leds-ready.service … (Power solid, Status green solid).
[  OK  ] Started ksmbd.service - ksmbd userspace daemon.
[  OK  ] Started rpc-statd-notify.service - Notify NFS peers of a restart.
[  OK  ] Started nginx.service - A high per… server and a reverse proxy server.
[  OK  ] Started chrony.service - chrony, an NTP client/server.

openmediavault 8.5.5-1 (Synchrony) ds412 ttyS0
Copyright (C) 2009-2026 by Volker Theile. All rights reserved.

To manage the system visit the openmediavault workbench:

eth0: 192.168.0.13
eth1: 192.168.0.12

By default the workbench administrator account has the
username 'admin' and password 'openmediavault'.
It is recommended that you change the password for this account
within the workbench or using the 'omv-firstaid' CLI command.

For more information regarding this appliance, please visit the
web site: https://www.openmediavault.org

ds412 login: