DOS auf Synology -- um RTL8111H LAN Chips nach Chipwechsel neu zu programmieren

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Bei einer Reparatur stehe ich wieder mal vor einer Herausforderung die ich bisher nicht lösen konnte.

Durch Blitzschäden werden die RTL8111H LAN Chips in den Geräten gegrillt.
Die Chips auszutauschen ist kein Problem. Aber sie sind programmiert - bzw die neuen müssen programmiert werden
Das LAN funktioniert mit dem neuen Chip schon aber es kommen Fehlermeldungen und auch die LED leuchten nicht wie sie sollen.

Terminal
!!! JMB585 link fail count 1 !!!
!!! JMB585 link fail count 2 !!!
!!! JMB585 link fail count 3 !!!
!!! Failed to recover JMB585 !!!

--------------------
--->> EDIT am 13.10.24 : der JMB585 ist ein SATA zu PCIE Controller - Dieser Fehler/Fehlermeldung hatte nichts mit dem LAN Fehler oder dessen Programmierung zu tun und wurde durch ein fehlerhaftes BIOS verursacht - nach Aufspielen eines neuen BIOS war der JMB585 Fehler behoben.
--------------------

man kann das DOS Diagnostic program (RSET8168) mit dem man diese Chips auslesen und Programmieren kann bei Realtek herunter laden
https://www.realtek.com/Download/List?cate_id=584

Und jetzt fangen die Probleme an weil es ein DOS Tool ist.

Unter Terminal habe ich es nicht zum laufen bekommen.

ich@DS920p:/volume1/ordner1/RSET8168$ dir
total 204
drwxrwxrwx+ 2 ich users 4096 Aug 25 18:03 .
drwxrwxrwx+ 6 root root 4096 Aug 25 18:03 ..
-rwxrwxrwx+ 1 ich users 193600 Jun 26 2015 RSET8168.EXE

ich@DS920p:/volume1/ordner1/RSET8168$ RSET8168.exe
-sh: RSET8168.exe: command not found

ich@DS920p:/volume1/ordner1/RSET8168$ start RSET8168.exe
-sh: start: command not found

ich@DS920p:/volume1/ordner1/RSET8168$ su RSET8168.exe
su: user RSET8168.exe does not exist

ich@DS920p:/volume1/ordner1/RSET8168$

oder brauche ich hier einen anderen Befehl ?


Wer hat eine Idee wie man dieses Tool auf einer Synology zu laufen bekommt - am besten Modell unabhängig.


Probiert habe ich schon es im Terminal und mit einem unter RUFUS erstellten USB Flash Modul mit freeDOS Lite ( GPT und natürlich VID PID auf F400 )
auch hier die 3 Fehlermeldungen
!!! JMB585 link fail count 1 !!!
!!! JMB585 link fail count 2 !!!
!!! JMB585 link fail count 3 !!!
!!! Failed to recover JMB585 !!!
und keine Eingaben mehr möglich - Terminal eingefroren



VM greift nicht auf die Chips zu sondern erstellet auch hier die Virtuelle Hardware. Würde also nicht helfen
Dos Box ging glaube ich nur bis DSM 6.1 ? Wäre das noch eine Idee einen Downgrade zu machen und etwas in diese Richtung zu probieren - das wäre aber Model abhängig und jedes mal extrem aufwendig .


Einen anderer Ansatzpunkt wäre vielleicht
Das Booten per CTRL+C zu unterbrechen - dann kommt die Auswahl Synology 1 und Synology 2 - kann man hier evtl ein DOS mit rein basteln

1724605767972.png

weiter gehts noch mit c
1724605795246.png
 
Zuletzt bearbeitet:

Iarn

Benutzer
Sehr erfahren
Mitglied seit
16. Jun 2012
Beiträge
3.017
Punkte für Reaktionen
428
Punkte
149
Ich denke nicht, dass Du ein DOS Programm auf der Synology zum Laufen bekommst da VMM wie gesagt kein Bare Metal Zugriff auf den NIC erlaubt..
Kannst Du nicht die Chips erst mal in anderer Umgebung programmieren und dann in die Syno einsetzen?
Ansonsten irgendwie versuchen über eine chroot Umgebung WINE auf der Syno auszuführen, aber da kriege ich schon bei der Vorstellung Gänsehaut.
 
  • Wow
Reaktionen: ctrlaltdelete

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
13.636
Punkte für Reaktionen
5.812
Punkte
524
Also für DOS auf der DS sehe ich schwarz.
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Ja ich beisse mir auch schon die Zähne daran aus.

Einer der Gedanken war auch schon die Chips auf einer externen Karte zb in einem Desktop zu programmieren also eine Karte mit einem RTL8111 zu kaufen neuen Chip einzulöten in einen Desktop einbauen und dann programmieren wieder auslöten und dann in die Synology einlöten. Dazu kommt noch das ich um die Datenbank aufzubauen aber auch intakte Chips zum auslesen auslöten müsste.
Dieser Aufwand wäre Irrsinn

Es muss doch irgend eine Möglichkeit geben diese exe auf einer Syno zum laufen zu bekommen.

was denkt ihr denn über die Idee mit der Grub Mood - könnte man so ein Free Dos oder Dos 622 zulaufen bekommen ?
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
WINE habe ich in einem Linux Zusammenhang irgendwann einmal gelesen aber null Ahnung was das ist.

Wenn du Gänsehaut hast kennst du es ..... wie wäre es mit einer Challenge ??
 
  • Like
Reaktionen: ctrlaltdelete

Benie

Benutzer
Contributor
Sehr erfahren
Mitglied seit
19. Feb 2014
Beiträge
8.492
Punkte für Reaktionen
3.517
Punkte
344
Wine ist eine Art Windows Emulator unter Linux, um auch einige Programme die sonst nur unter Windows laufen unter Linux laufen lassen zu können.
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
13.636
Punkte für Reaktionen
5.812
Punkte
524
Und unter Mac :), so läuft bei mir WinScp
@TN-Notebooks, ich schaue mir das heute mal an, versprechen kann ich nichts.
1724628326476.png
 

Benie

Benutzer
Contributor
Sehr erfahren
Mitglied seit
19. Feb 2014
Beiträge
8.492
Punkte für Reaktionen
3.517
Punkte
344
Ist das beim Mac dann auch quasi ein Mini OS wie bei Windows? Weil bei Windows da kommt ja ein guter Teil der Windows Struktur mit.
 

Iarn

Benutzer
Sehr erfahren
Mitglied seit
16. Jun 2012
Beiträge
3.017
Punkte für Reaktionen
428
Punkte
149
WINE habe ich in einem Linux Zusammenhang irgendwann einmal gelesen aber null Ahnung was das ist.

Wenn du Gänsehaut hast kennst du es ..... wie wäre es mit einer Challenge ??
Also WINE an sich ist kein Hexenwerk. Wobei ich zugeben muss, nachdem Steam mit dem auf WINE aufbauenden Proton quasi jedes Windowsspiel auf Linux zu Verfügung stellt, habe ich in den letzen Jahren seltener bei WINE hand angelegt.
Aber DSM ist ein eher verkrüppelt es und zugenagelt es Linux. Dort WINE zu installieren dürfte die größte Hürde sein. Vermutlich geht das nur mit chroot (https://de.m.wikipedia.org/wiki/Chroot). Es gab früher mal ein experimentelles Debian chroot Projekt für die Syno aber seit dem hat Synology ihr DSM immer mehr zugenagelt. Insofern glaube ich nicht daran, dass das mit halbwegs annehmbaren Aufwand zum Laufen zu bekommen ist.

Aus meiner Sicht ist bei einem kaputten NIC ein USB Adapter wahrscheinlich die pragmatischste Wahl wenn man den Treiber vorher installiert hat oder anderweitig drauf kommt.
 
  • Like
Reaktionen: DaveR

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Perfekt wäre wenn man eine 3. Option in Grub rein bekäme die dann Model unabhängig wäre
Sozusagen ein USB Flash das dann in jedem Gerät funktioniert.
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Aktueller Stand in Kurzform

bisher keine Lösung per Software auf der Synology gefunden
Problem Secure Boot
Solle aber einen Microsoft Boot Loader geben der das evtl umgehen kann
Status : In Prüfung

Zusätzliche Idee
Es soll VM Ware geben die tatsächlich auf die Hardware vom Mainboard zugreifen kann und dies per Einstellung macht - (keine emulation des LAN Chips) - Status in Prüfung

Aktuelle Lösung :
REST8168.exe mit GUI ist ein Diag und Testprogramm - nicht zum kompletten programmieren geeignet.
PG8168.exe reine Befehlszeile kann den Chip komplett programmieren
Auslesen vorhandener Chips nicht in Datei möglich - nur Bildschirmausgabe
Programmieren PG8168.exe und eine spezielle CFG Datei in der per Hand die Parameter die zu programmieren sind eingegeben werden müssen ( aus Readout Bildschirm )
beide exe reine Dos Programme , laufen nicht auf CMD win 10 - 64 - brauchen echtes Dos / free Dos Boot oder CMD win 10 -32

Erstellung CFG File
Funktionierenden chip aus synology auslöten - auf lan karte löten - in desktop auslesen - auslöten und wieder in Synology einlöten
CFG in Editor erstellen

Chip programmiern :
Neuen Chip auf lan Karte löten - mit erstellter cfg programmieren - auslöten und dann erst in die Synology einlöten
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
der Weg mit der LAN Karte ist im PC ist getestet und funktioniert
Man braucht das PG8168 PGTool für DOS und nett zu haben noch das REST8168


wenn man sie ausliest sehen Daten so aus ( 4 Bildschirme in ein Bild Kopiert )
PG8168 /efuse /v und /r die Farbigen Bildschirme sind mit RSET8168 ausgelesen

1726330306420.png

zu programmieren : zusätzlich muss man sich für den RTL8168H noch die 8168HEF.cfg anpassen
Das ist die Config Datei mit der bestimmt wird was in den Chip geschrieben wird
PG8168 /efuse /w
das ist meine Versuchsdatei für den U19 in der DS920+

1726330210374.png
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Zwischenzeitlich habe ich aber auch ein Linux Variante von dem Tool gefunden die in der Synology laufen könnte -
und wie mich alle hier schon kennen - Linux ist nicht meine Sprache - haut mich :)

Bitte nicht wundern : für den RTL8111H braucht man das PG8168 Tool - Und der Chip wird als RTL8168H angezeigt
Die Software funktioniert auch nur in einem Gerät das einen RTL8111H ( in Synology ) oder RTL8168H eingebaut hat

ich hänge das Tool mal an
eine Beschreibung ist als PDF in der Zip mit drin und noch 2 Word Docs in denen auch noch Beschreibungen sind

Hängen tue ist in der Auswahl der RTnicpg - welche brauchen wir hier
1726330954833.png


und das system braucht eine pgdrv.ko die kompiliert werden muss

4. Kompilieren Sie den PGtool-Treiber und mounten Sie
und führen Sie „make“ im PGtool-Pfad aus, um „pgdrv.ko“ zu kompilieren
Führen Sie dann „./pgload.sh“ aus und laden Sie das pgdrv.ko-Modul


1726331036569.png

Um bis an diesen Punkt zu kommen hat mich das 7 Tage gekostet.

Wer kennt sich jetzt noch aus und kann das Kompilieren und zeigen wie das geht ?

@ ctrlaltdelete @ Iarn @ Benie ??​

 

Anhänge

  • linuxpg.zip
    2,5 MB · Aufrufe: 0
  • Anleitungen RTL8111H Linux PG TOOL.zip
    2,9 MB · Aufrufe: 1
Zuletzt bearbeitet:
  • Like
Reaktionen: dil88

Benie

Benutzer
Contributor
Sehr erfahren
Mitglied seit
19. Feb 2014
Beiträge
8.492
Punkte für Reaktionen
3.517
Punkte
344
Nein, leider nicht, bin in solchen Dingen alles andere als ein Fachmann 🙁
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Ich habe es selber noch mal mit einem Freund zusammen versucht der mehr Linux kann als ich aber wir scheitern an dem Punkt das Synology den Befehl "make" nicht kann
Es sind in den Beschreibungen noch andere Wege aber das ist ganz weit über dem was wir können

Also immer noch jemand gesucht der es schafft diesen Treiber PGDRV.ko zu kompilieren
 

Anhänge

  • linuxpg.zip
    2,5 MB · Aufrufe: 2
  • Anleitungen.zip
    2,9 MB · Aufrufe: 3

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
342
Punkte für Reaktionen
119
Punkte
43
Hallo @TN-Notebooks - Der make-Befehl ist ja nur die Spitze des Eisbergs. Er ist quasi der Interpreter für die Anweisungen im makefile und da es sich hier um ein C-Programm handelt, benötigst Du folglich den C-Compiler in der passenden Version samt Bibliotheken, Headerfiles und etlichen weiteren Utilities um das Programm übersetzen zu können. In anderen Worten: es wird eine komplette Entwicklungsumgebung benötigt.

Synology setzt dabei auf eine Cross-Entwicklung, d.h. es wird nicht direkt auf dem NAS sondern auf einem eigenen System (hier Ubuntu) übersetzt.
Synology stellt dazu als Ergänzung das entsprechende Toolkit (u.a. Compiler, Bibliotheken und Headerfiles) für Entwickler zum Download zur Verfügung.
Als Einstieg sei mal diese Seite genannt: https://help.synology.com/developer-guide/getting_started/system_requirement.html

In den Anforderungen der Entwicklungsumgebung steht eindeutig beschrieben, dass man nicht direkt auf dem NAS übersetzen kann, sondern ein Ubuntu-System zur Cross-Entwicklung benötigt. Das kann auch eine VM sein, Du musst die Software ja nur auf diesem Ubuntu-System übersetzen und nicht laufen lassen. Das Ubuntu-System liefert den make-Befehl sowie die weiteren benötigten Utilities mit standardmäßig mit.
Wie Du das passende Toolkit auswählst, wird hier beschrieben: https://help.synology.com/developer-guide/compile_applications/download_dsm_tool_chain.html

Eine deiner Anleitungen beschreibt ja die Übersetzung unter Ubuntu (wobei dort direkt im Ubuntu-System der Treiber eingebunden wird, wie ich es auf die Schnelle verstanden habe).

Ob das alles wirklich funktioniert, habe ich nicht getestet, ich habe nur mal ein paar Informationen im Netz für Dich gesucht und zusammengetragen.

Das wird ein steiniger Weg. Bis Du das alles zum Laufen bekommst, kannst Du viele Chips aus- und wieder einlöten. Oder irgendwo bei eBay alte NAS-Systeme kaufen und ausschlachten. Andererseits gibt es viel zum Lernen. Viel Erfolg!
 

TN-Notebooks

Benutzer
Maintainer
Mitglied seit
30. Mai 2019
Beiträge
265
Punkte für Reaktionen
244
Punkte
93
Dank dir erst einmal - ich werde mich mal mit meinem Bekannten da dran setzen und hoffentlich schaffen wir das irgendwie.

Es macht schon Sinn diesen Weg zu gehen da jeder Lötvorgang Stress für den Chip und das PCB sind mal von dem Zeitaufwand der durch das Löten auch verursacht wird ganz abgesehen .
Außerdem kann man bei Geräten die man zum Auslesen eines intakten Chips verwendet nicht unbedingt die Chips auslöten.
Wenn ich zb die Docu für ein Neugerät mache..
Vor allem man braucht diese pgdrv.ko datei so wie ich es verstehe nur einmal kompilieren danach kann ich sie dann für alles Syno Geräte in denen der RTL8111H drin ist verwenden.
 
  • Like
Reaktionen: ctrlaltdelete

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Keine Ahnung, ob dir das hilft, da ich das Toolkit nur für den Zusammenbau meiner Pakete verwende. Da der Developer Guide jedoch teilweise etwas unübersichtlich daher kommt und man einiges kreuz und quer lesen muss um alles zu verstehen, habe ich mir eine kleine Anleitung zur Einrichtung geschrieben. Von Kompilieren selber habe ich jedoch keine Ahnung.

Diese Anleitung wurde anhand des Synology Developer Guide erstellt

Synology Toolkit installieren​

  • System updaten
    sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
  • git installieren und konfigurieren
    sudo apt-get install git
  • Im Ordner /git einen neuen Ordner mit dem Namen /toolkit erstellen und dorthin wechseln
    cd ~/git mkdir -p toolkit cd toolkit
  • Synology Toolkit herunterladen
    git clone https://github.com/SynologyOpenSource/pkgscripts-ng
  • Weitere Tools installieren
    apt-get install cifs-utils python python-pip python3 python3-pip
  • In den Ordner pkgscripts-ng wechseln
    cd ~/git/toolkit/pkgscripts-ng/

Verfügbare Environments​

  • Wenn -v nicht angegeben wird, werden die verfügbaren Plattformen für alle Versionen aufgelistet.
    ./EnvDeploy -v 7.2 --list
./EnvDeploy -v 7.2 --info platform

Environment erstellen​

  • Einen neuen Branch erstellen (je nachdem mit welcher DSM Version gearbeitet werden soll)
    git checkout DSM7.2
  • Bereitstellen des Chroot-Environment für das gewünschte NAS-Modell (Welche CPU hat mein Synology NAS?)
./EnvDeploy -v 7.2 -p geminilake

Environment updaten​

  • Zum updaten des Enviroments, einfach den o.a. Befehl erneut absetzten
    ./EnvDeploy -v 7.2 -p geminilake

Environment entfernen​

  • Um die Version und Umgebung für das gewünschte NAS-Modell zu entfernen, muss zunächst der Ordner /proc aushängt und dann der Umgebungsordner entfernt werden.
    rm -rf ~/git/toolkit/build_env/ds.geminilake-7.2
    umount ~/git/toolkit/build_env/ds.geminilake-7.2/proc
Tommes​
 
Zuletzt bearbeitet:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat