Acties:
  • +2 Henk 'm!

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 29-04 20:53
[work in progress]
Intro
De Synology DS1515+ gaat stilaan richting end of support. Dus ik dacht ofwel verkoop ik hem, ofwel kijk ik eens of ik met reasonable effort er een Linux NAS of zelfs proxmox server van kan maken. Met de hardware is iig niets mis (ik heb eentje waar de atom bug niet in zit), dus hij mag zeker blijven als ik er Linux op zou krijgen en met een recente kernel/software zelf verder kan tot 16GB ook niet meer voldoende is om een headless Linux te draaien 8) .

Ik was zelf op zoek naar iemand die dit al had gedaan, maar ik kon zo op internet niemand vinden met deze 1515+. Iemand heeft het al klaar bijv. de 220+ maar ik weet niet in hoeverre dat gelijk gaat lopen.

Ik veronderstel dat op t.net wel meerdere mensen blij zouden worden van een complete tutorial hoe je't moet aanpakken. (in de veronderstelling dat het me gaat lukken natuurlijk :+


Hier zou ik ook een diclaimer willen zetten: neen laat maar, ik vermoed dat als je dit leest best wel een idee hebt of je al dan niet hieraan wilt beginnen ;).
Consolekabel connecteren
Je hebt een USB - FTDI chip nodig die op 3V kan werken. Je hebt er waar je een jumper het voltage kan kiezen, 5v of 3V.
Dus onderaan de DS1515+ zit een plastic klepje waar conveniently "console" op staat (had ik dat maar eerder gezien). De 3 kabeltjes dichtst bij de buitenkant van de behuizing moet je hebben, de rij dus het dichtst tegen het moederbord. Van de achterkant van de NAS naar voren: GND, TX, RX. De middelste pin zendt dus console output, de voorste pin dient dus om input (keystrokes) te accepteren. TX op de nas moet verbonden worden met RX op de FTDI chip, en omgekeerd.

Afbeeldingslocatie: https://tweakers.net/i/dbsD5-6gEgpVDZwMYxDVClUY_K8=/800x/filters:strip_exif()/f/image/skaBWYQwdSYghvNTU7RznG4M.png?f=fotoalbum_large
Connecteren op de console
Je wil nu natuurlijk de console output zien. Dus je gaat naar je Linux PC die met de FTDI-USB adapter op de console pins is geconnecteerd. Als root of met sudo, doe je "dmesg -Tw" en steek de FTDI-usb convertor in de computer. Je ziet nu hoogstwaarschijnlijk /dev/ttyUSB0 of /dev/ttyUSB1 voorbij schieten de moment dat je'm in de USB poort steekt, die moet je onthouden. Nu kan je met screen connecteren:
code:
1
screen /dev/ttyUSB0

(let wel, dit gaat alleen werken als je de juiste permissies op het device /dev/ttyUSBx hebt. Stel dat je een permission denied krijgt, kan je eens gaan kijken wat de output is van "ls -lah /dev/ttyUSB*". Dan kan je als root een chown doen ofwel met sudo ofwel met root het commando uitvoeren. Enfin, ik vermoed dat je dit wel zal weten als je al zover geraakt bent ;).

Maar goed, de consolekabel is aangesloten, screen draait, tijd om de Synology nas te booten: powerknop indrukken en op CTRL-C duwen om het bootproces te onderbreken als je een boot scherm te zien krijgt. Als het goed is zou je nu in grub 0.97 moeten zitten (toch voor de DS1515+). Nu heb ik al gemerkt dat hij na een paar minuten zonder keystrokes gewoon tock boot. Dus je moet blijven typen als je in grub wil blijven.

Als je nu op 'c' duwt, krijg je een GRUB command prompt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
grub> root (hd0,0)                                                             
 Filesystem type is fat, partition type 0x83

grub> root (hd0,1)                                                             
 Filesystem type is fat, partition type 0x83

grub> root (hd0,2)                                                             

Error 22: No such partition

grub> root (hd1,0)                                                             

Error 21: Selected disk does not exist

grub> root                                                                     
 (hd0,1): Filesystem type is fat, partition type 0x0

grub>


Ik weet zelf niet hoe het komt maar backspace werkt niet, je moet CTRL-H gebruiken. Ik heb dat nog al eens bij oudere switches gezien. Geen idee waarom dat is en hoe je er rond kan werken. Maar het is eerder vervelend dan een blocker dus niet belangrijk :)

En hier stopt het al even voor mij |:( . Ik heb geprobeerd om zowel een USB-stik en een RPI4cm in boot mode eraan te hangen zodat er een powered USB disk aan zou hangen. Nu heb ik het commando "root" zonder argumenten uitgevoerd en ik krijg alleen root (hd0,0) te zien (ik weet niet zeker of dat dan alleen de huidig ingestelde root gaat weergeven of alle devices). Als ik het commando root (hd1,0) tot en met root (hd16,0) uitvoer, krijg ik "Selected disk does not exist". Dus ik vermoed dat er iets met USB gaat zijn waardoor hij de USB disk niet ziet.

Ik moet me wat verder in GRUB Legacy inlezen hoe het nu verder moet.
GRUB aanpassen
Net dit ontdekt in de huidige install. Hier gaan veel vragen mee opgelost geraken volgens mij :)

Opgelet: die "cd /dev" is echt nodig, anders werkt mount niet. Bad superblock krijg je dan als error. 8)7
code:
1
2
3
4
5
6
7
8
9
10
11
root@ruimteschip2:/mnt/tmp# cd /dev/
root@ruimteschip2:/dev# mount synoboot1 /mnt/tmp/
[ 8165.411089] FAT-fs (synoboot1): FAT: nls_disk load default table
[ 8165.411089] 
[ 8165.421856] FAT-fs (synoboot1): FAT: nls_io load default table
[ 8165.421856] 
[ 8165.446048] FAT-fs (synoboot1): fat_set_state: set=1 process=mount pid=23041
root@ruimteschip2:/dev# cd /mnt/tmp/
root@ruimteschip2:/mnt/tmp# ls
EFI  GRUB_VER  rd.gz  zImage
root@ruimteschip2:/mnt/tmp#



Zelf even extra menu optie toegevoegd en hij gaat nu volgens mij by "default" de laatste booten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@ruimteschip2:/mnt/tmp/EFI/boot# cat SynoBootLoader.conf 
serial --unit=1 --speed=115200
terminal serial
default 2
timeout 3
verbose
hiddenmenu
fallback 0

title SYNOLOGY_1
        root (hd0,0)
        kernel /zImage root=/dev/md0 ihd_num=0 netif_num=4 pwrctl_pin=N0754N0850 DiskIdxMap=020006 syno_hw_version=DS1515+
        initrd /rd.gz

title SYNOLOGY_2
        root (hd0,1)
        cksum /grub_cksum.syno
        vender /vender show
        kernel /zImage root=/dev/md0 ihd_num=0 netif_num=4 pwrctl_pin=N0754N0850 DiskIdxMap=020006 syno_hw_version=DS1515+
        initrd /rd.gz

title TWEAKERS.NET FTW
        root (hd0,1)
        cksum /grub_cksum.syno
        vender /vender show
        kernel /zImage root=/dev/md0 ihd_num=0 netif_num=4 pwrctl_pin=N0754N0850 DiskIdxMap=020006 syno_hw_version=DS1515+
        initrd /rd.gz
root@ruimteschip2:/mnt/tmp/EFI/boot#


En jawel hoor, reboot na deze file aan te passen, geen "update-grub" nodig en :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    GNU GRUB  version 0.97  (540K lower / 2074236K upper memory)

 +-------------------------------------------------------------------------+
 | SYNOLOGY_1                                                              |  
 | SYNOLOGY_2                                                              |
 | TWEAKERS.NET FTW                                                        |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |
 |                                                                         |  
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, 'a' to modify the kernel arguments
      before booting, or 'c' for a command-line.


En de puzzelstukjes beginnen wat in elkaar te vallen. Nog 86MB over voor een Linux kernel en een andere init ram image. Dat moet lukken :). Alleen vraag ik me dan nog af, waarom heb je een externe HDD nodig om van te booten (gesteld dat het me niet uit maakt dat Synology DSM van de disks mag).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@ruimteschip2:/mnt/tmp# df -h /mnt/tmp/
Filesystem      Size  Used Avail Use% Mounted on
synoboot2        94M  8.2M   86M   9% /mnt/tmp
root@ruimteschip2:/mnt/tmp# ls -lah .
total 8.2M
drwx------ 2 root root  16K Jan  1  1970 .
drwxr-xr-x 3 root root 4.0K Jan  1 05:36 ..
-rwx------ 1 root root  112 May 20  2022 checksum.syno
-rwx------ 1 root root   55 May 20  2022 grub_cksum.syno
-rwx------ 1 root root 5.3M May 20  2022 rd.gz
-rwx------ 1 root root  512 Jul 24  2018 Sone.9
-rwx------ 1 root root  64K Apr  3  2018 vender
-rwx------ 1 root root 2.9M May 20  2022 zImage
root@ruimteschip2:/mnt/tmp#


Dan is er ook nog veel te doen en me voorlopig onduidelijk:
  • Kan ik de /boot/grub/menu.lst aanpassen zodat hij permanent niet meer DSM gaat proberen booten?
  • Hoe zorg ik ervoor dat ik de USB disk aan krijg? Ik las op de link van de DS220+ die ik eerder postte al dat je gpio's moet activeren. Ik logde al in op de "live" DSM van de disks (dus volledig geboot) maar ik vind geen /sys/class/gpio directory ...
  • initial ramdisk maken, dat wordt volgens mij ook nog een leuke. :X
  • De dupont kabels die ik gebruik hier, zijn eigenlijk te dik. Als iemand me een link kan geven waar ik een correcte kan vinden, die trouwens ook niet te hoog eruit steekt, want nu kan ik de NAS niet meer plat zetten omdat de kabels lager komen dan de pootjes van de NAS
Maar iig alle input is welkom. Ik zou de eerste post willen houden als complete tutorial. (nogmaals: als het me lukt natuurlijk :) )

Ik ontdek net deze post. What have I gotten myself into |:( O-)

En misschien kan deze post nog interessant zijn om de DOM relatief eenvoudig te "hacken" Dan kan ik'm aan USB hangen en images gewoon op kopieren en backups maken. Alleen weet ik niet goed hoe ik met de pinout nu een USB connectie kan maken. Ik vermoed dat het gewoon een oude USB-kabel openknippen is en een connector solderen zal zijn. En dan rijst een 2e vraag, als dat gewoon een USB-stick is. Kan ik dan niet een USB drive van de juiste connector voorzien en daarop prikken? Of zo's connector naar USB? Ik vermoed dat het net zo simpel noet gaat zijn, want ik ga de enige toch niet zijn die dit bedacht heeft ...

... to be continued dus :) ...

[ Voor 39% gewijzigd door bucovaina89 op 22-04-2023 10:36 ]