Hallo,
wie das gerne oft so ist, die Sammelbestellung bei Mouser ist vorgestern
raus und jetzt brauche ich schnell ein Ersatzteil: Einen Intel WGI211AT
Ethernet controller für ca. 3€.
Den gibt es zwar preiswert aus China, aber das dauert dann leider 3
Wochen. Bestellt vielleicht jemand die Tage bei Mouser oder hat so ein
Teil übrig?
Viele Grüße
Das war mir leider nicht klar :(. Ist wohl doch komplexer als gedacht.
Auf der Synology scheint es ethtool zu geben. Vielleicht kann ich
versuchen den alten Chip auszulesen, falls er noch mit sich reden lässt.
Oder evt. auf einer anderen NAS einen funktionstüchtigen Chip auslesen
und die MAC anpassen? Hab sowas noch nie gemacht. Aber wo ein Wille ist,
ist auch ein Weg :)
Das wird noch komplizierter...
1.Der i211 hat internes iNVM Flash.
Wenn ich mcih richtig erinnere ist das OTP. Also wenn dein ausgelesenes
Image nicht passt, wirds teuerer bei jedem nötigen Versuch...
2. Ich weiß nicht ob ethtool den iNVM komplett vollständig auslesen
kann.
Die Software im i211 ist mit Checksummen gesichert wodurch halt alles
zusammen passen muss. Mit ethtool lässt sich die MAC ändern / schreiben
zumindest bei uns (i210 mit externem Flash, welches nicht OTP ist).
3. Ethtools kann den i211 wahrscheinlich nicht beschreiben. Ein leeres
i210 / i211 meldet sich nicht als Ethernet Schnittstelle sondern als
leeres i210/i211 PCIe Device. Schreiben geht aber glaube mit "flashrom"
https://www.flashrom.org/Flashrom/1.1/Supported_Hardware
Aber ob das alles so passt weiß ich gerade nicht.
Wir nutzen das offizielle Intel Tool für ARM zumindest das gibts nur mit
NDA über den FAE und dazu passend haben wir vom FAE auch die Intel
Production Images welche dann geflasht werden und die MAC Adresse
geändert. Aber halt alles NDA daher kann ich dir dabei nicht helfen.
Du kannst versuchen selber über Intel Forum / FAE daran zu kommen.
Wenn du aber pech hast nimmt deine Synology nicht einfach nur die Intel
Images sondern irgendwas angepasstes. Und dann musst du noch irgendwie
falshrom oder das Intel tool drauf bekommen..
Das x86 Intel Tool findet man ggf mit google für unser ARM hatte ich
kein Glück mit Google..."intel eeprom access tool"
Ich würde mal schauen ob da beim i211 nicht irgendwo noch in Footprint
für ein SPI Flash ist. Dann kann man wenigstens einen i210 verbauen +
externes SPI Flash und mehrmals das Image/die Images testen..
Sehr interessant. Vielen Dank für diese Einblicke!
Soweit ich das aus dem Datenblatt herauslesen konnte, ist der i211 quasi
OTP. Er hat wohl ein paar Speicherzellen mehr als nötig und man kann
"ein paar mal" schreiben, aber wenn die aufgebraucht sind, ist Ende.
Darauf kann man sich wohl nicht verlassen.
Im Anhang die Daten, die ich mit dem ethtool auf der funktionierenden
NAS auslesen konnte. Bei der anderen wird der i211 gar nicht
initialisiert, da ist wohl nichts mehr zu holen.
Einen Footprint für nen SPI Flash gibt es leider nicht auf dem PCB. Die
entsprechenden Pins gehen an Testpads bzw. Widerstände. Man könnte also
evt. einen externen Speicher dranfummeln wenn man sich für einen i210
entscheidet. Sehe ich das richtig, dass der i211 eigentlich nur eine
abgespeckte Variante ist? Die Device ID wird eine andere sein, aber da
auf der Synology einfach nur ein igb Treiber läuft, müsste der ja mit
der gesamten Familie klar kommen.
Was ich gerade gefunden habe, sind die intel bootutils
(https://downloadcenter.intel.com/de/download/29137/Ethernet-Intel-Ethernet-Connections-Boot-Utility-Preboot-Bilder-und-EFI-Treiber?product=64404).
Das Binary läuft auf der NAS, beschwert sich aber über einen fehlenden
Treiber.
Den kann ich auf der Maschine leider nicht direkt bauen weil dazu der
Compiler fehlt. Wenn ich den Treiber auf meinem PC kompiliere, mag die
NAS ihn nicht.
Wird wohl an der völlig anderen Kernel Version liegen und vielleicht ist
es auch das falsche Tool ;).
Im Intel Forum könnte ich mal nett nach dem "intel eeprom access tool"
fragen und "flashrom" schaue ich mir auch mal an.
Genau der i211 ist die "low cost" variante des i210 und der igb treiber
sollte mit beiden klar kommen.
Wahrscheinlich hat synology sogar den i210 drauf gehabt in den
prototypen und dann nen Flash mit Nadeln dran gehabt oder so.
Genau man kann den i211 mehfach beschreiben bzw. mehrmals die
konfiguration hintereinander wenn man die "alte/falsche" komplett glaub
mit 1 vollschreibt oder so war es. Der fängt irgendwie bei einer
bestimmten kombination / magic word an die Konfiguration einzulesen.
Bei dem Tool kann ich dir nicht weiterhelfen, wie gesagt ich bin auf ARM
unterwegs aber zumindest die Konsolen Ausgabe sieht sehr ähnlich aus.
Was der QV triber ist weiß ich nicht. Habe das Tool einfachheithalber
statisch für unsere Plattform gebaut und kopiere es in der Produktion
rein mit dem passenden i210 image / ist im produktions test image schon
mit drauf und beschreibe bei uns das externe i210 spi falsh und setzte
anschließend die MAC mit den ethtools. Dann fliegt das Tool und das
Image wieder runter...
Bei x86 kann ich dir nicht weiterhelfen..
Ob dein Dump da oben korrekt ist kann ich momentan nicht beurteilen.
Ich schau mal ob ich ein diff machen kann für deinen dump mit den images
die ich habe...
Edit: Brauch ich kein Diff machen.. Da ist ja quasi alles FF..
Zu den i211 hab ich kein image, es sind nur .txt Dateien mit einem Intel
spezifischen "Assembler" Code welcher die standard konfigurationen an
bestimmte stellen schreibt. Aber wie gesagt wir nutzen den i210 mit
extern flash und dazu sind es .hex bzw. .img Dateien.
Falls keiner dir in dem Intel Forum helfen mag...
Entweder du besorgst dir günstig eine Netzwerkkarte mit dem i211 oder
halt i210:
https://www.idealo.de/preisvergleich/OffersOfProduct/5663008_-gigabit-ethernet-karte-i210-t1-intel.html
Und holst dir da das Flash + i210 runter und bastelst es auf deine NAS.
Oder aber du kaufst dir einen i210 und bastelst dir das Flash mit dran
liest eine Netzwerkkarte (sofern du eine findest) mit i210 flash aus und
schreibst das image in das drangebastelte Flash und hoffst das es geht.
Auch hier würde ich eher mit flashprog statt ethtools arbeiten...
Oder ich schau mal ob ich dir gegen Portoerstattung ein fertig
programmiertes Flash für einen i210 besorgen kann. MAC Adresse kannst du
ja selber mit den ethtools dauerhaft setzen.
Weißt du was deine NAS alles für Management features untersützt?
Ich weiß halt leider nicht, inwieweit die Standard Firmware images zu
einer synology nas passen. Was die da alles ggf. verändert /angepasst
haben damit es geht. Ggf. lesen die auch irgendwas aus um zu prüfen ob
es ein "original" ist, damit man nicht zusätzliche Management Features
aktivieren kann welche ggf. nur die "größeren NAS" unterstützen
(sollen)..
Dazu passend, in der Intel Standard Konfigurationsdatei gibt es unter
anderem folgenden Punkt für den i211:
Subsystem Vendor ID and Subsystem ID - Uncomment the following lines and
insert the values.
Also synology könnte damit ihr eigenes image anpassen um darauf ggf.
abzufragen...
Bei den i210 gibt es unterschiedliche device ids ob invm oder extern
falsh genutzt wird. kann ggf. auch im Treiber / Software abgefragt
werden...
Ich kann dir ggf. doch noch einfacher helfen.
Hab hier eines unserer Boards mit Intel i210 + Flash.
Wenn ich das Flash entferne kann ich auch das iNVM vom i210
programmieren. Anschließend ablöten und dir zuschicken.
Wäre zumindest ein Versuch.
Ließ Mal mit lspci bei deiner funktionierenden Synology die Devise ID
usw. aus.
Ich schau mal welche der register vom Register dump in der konfiguration
setzbar sind bzw. schau du Mal anhand von Datenblatt was in deinem
eeprom dump an den Stellen wo kein fffffff ist normalerweise steht...
Hallo,
das wäre großartig. Vielen Dank für deine Hilfsbereitschaft!
Ansonsten scheint es wirklich sinnvoll zu sein, eine preiswerte i210
Karte zu kaufen und als "Programmer" zu benutzen. Das ist ne gute Idee.
Mit Management läuft da nicht viel auf der DS218+, das ist eher ein
Produkt für Heimanwender. WOL ist schon das höchste der Gefühle. Von
daher denke ich, dass eine ganz rudimentäre Konfiguration funktionieren
könnte.
lspci liefert zum Glück die Standard ID für einen programmierten i211:
Was den eeprom-dump angeht, da bin ich gar nicht sicher ob die Daten
überhaupt sinnvoll sind. Ich kann nicht mal die MAC darin
wiederfinden... der Output ist aber konsistent, also bei mehrmaligem
Auslesen immer derselbe.
Ich werde jetzt auch noch mal durch die Registerlisten blättern und
schauen, ob das doch irgendwie sinnvoll aussieht.
Grüße
Hier steht auch noch eine Qnap NAS. Rate, welche Ethernet Chips darin
werkeln... genau, 2x i211 :).
Deren eeprom dump sieht etwas anders aus. In den ersten 6 Bytes steht
wirklich die MAC. Vermutung: Synology nutzt das MAC Feld irgendwie
anders und überschreibt die Adresse dann beim booten... keine Ahnung.
Hier mal spaßeshalber der Diff zwischen Synology und Qnap (Letzte MAC
Bytes durch 0x112233 ersetzt): https://www.diffchecker.com/gyirtosv
Such mal im Netz nach den Intel quartzville tools. Dich interessiert
davon Lanconf und/oder eeupdate. Gibts für Dos, efishell und Windows
Dosbox. Es gibt dazu Beispieldateien in Textform um den invm bzw flash
zu füllen.
Das habe ich schon mehrfach danach versucht, aber letztendlich lande ich
immer auf dubiosen Seiten in nicht-lateinischem Alphabet, die mit Google
übersetzt aber nicht mehr richtig funktionieren. Bevor ich mir einen
Virus einfange, lass ich das lieber. Aber wenn du einen konkreten Tipp
hast... :)
Problematisch wäre aber auch, dass diese Tools wohl nicht für Linux zur
Verfügung stehen und daher auch nicht nativ auf der Synology laufen
würden. Vielleicht kann man es irgendwie über eine VM mit direktem
Zugriff auf den PCI Bus hinbekommen?
Interessant ist ja auch, dass der igb Treiber Funktionen zum Auslesen
des iNVMs mitbringt:
https://github.com/torvalds/linux/search?q=invm&unscoped_q=invm Ich habe
allerdings noch nie solche low-level Zugriffe probiert.
Sooo,
hab dich nciht vergessen und gerade mal an unserem Board probiert.
Also unser externes Flash runtergelötet und er erkennt ein i210 mit
iNVM.
Bei lspci meldet es sich als leer.
Habe dann das iNVM .hex eingespielt.
Diese Files wo man mit "intel assembler" konfigurieren kann, gehen nicht
mit unserem ARM tool. Kann daraus keine hex Images erzeugen geschweige
denn das iNVM beschreiben...
Hab also ein fertiges "I210_iNVM_APM.hex" image genommen was wir beim
Tool dabei bekommen hatten und das geflashed.
Nach einem Reboot findet er mit lspci ein "programmiertes" i210 device.
Aber der igb treiber gibt zeigt mir keine Netzwerkschnittstelle mehr an.
Diese war aber vorher mit dem externen Flash vorhanden.
Da ich keine Netzwerkschnittstelle bekomme kann ich auch leider nicht
die ETHTOOLS nutzen zum dumpen.
Wenn du magst kann ich dir den i210 hier schicken und auch das externe
Flash wenn du willst. Aber ob der i210 ohne das externe Flash korrekt
programmiert ist nun weiß ich nicht. Er meldet sich ja bei lspci richtig
aber mein IGB treiber erkennt den nicht. Kann jetzt software sein oder
nicht funktionierende iNVM images/hex files...
Wie gesagt diese Konfigurationssprache um daraus iNVM Hexfiles zu
erzeugen kann ich nicht mit dem ARM Tool nutzen.
Wenn du die ICs haben willst sag per PN bescheid, denke normales
Briefporto sollte reichen, kann es aber vorher mal wiegen mit ner ESD
tüte zusammen...
Hallo
ich bin gerade an der selben Thematik dran an einer DS916+
WGi211a Defekt und der neue nicht vorprogrammiert.
Auch meine Idee war es den Chip bei einer hier vorhandenen
funktionierenden Station auszulesen und damit den neuen Chip zu
schreiben.
Laut intel soll das mit dem Tool EAT EEPROM Access Tool möglich sein.
Um dies aber von Intel zu bekommen benötigt man einen Privileged RDC
Account bei Intel.
Das Tool selber habe ich nirgends im Netz gefunden
Alternativ wurde in dem Zusammenhang auch von diesem Tool gesprochen
https://designintools.intel.com/Articles.asp?ID=259
Bis hierher ist alles pure Theorie für mich ..... ich habe noch keine
Ahnung mit was für einem Programmiergerät / Interface die Programmierung
dann gemacht wird. Absolutes Neuland für mich .
Bei einer Frage kann ich aber hier ganz klar helfen
Bei den Synology ist die Serial und Mac Adresse in dem Vender File auf
dem USB Flash Drive gespeichert. Sofern man da nichts manipuliert hat
geht diese also nicht verloren. Auch grundlegende weitere Informationen
wie zb Geräte Typ sind auf dem USB Flash Drive drauf.
Wenn man die MAC ändern will braucht man eine 2 Stellige Checksum.
Bei allen Synology fängt die MAC mit 00 11 32 an.
Die Checksum für die Serial ist 3 Stellig
Seid ihr mit der Programmierung vom WGI211A irgendwie weiter gekommen ?
Hallo Thomas,
eine gute und eine schlechte Nachricht:
- Ja, es hat funktioniert! Seitdem läuft die NAS hier 24/7!
- Ich weiß nicht mehr so ganz genau was ich gemacht habe...
Soweit ich mich noch erinnere, habe ich den Chip einfach getauscht und
er wurde sofort vom OS erkannt. Das Löten war etwas stressig, aber mit
Bismut Paste und beidseitigem Heizen ging es.
Und dann glaube ich, es war ausreichend, die MAC neu zu schreiben mit
den frei erhältlichen Tools - also direkt von der NAS aus per serieller
Konsole.
Die anderen Tools habe ich mir auch besorgt (und habe sie noch), aber
ich meine, die waren gar nicht notwendig.
Letztendlich ging es so reibungslos, dass ich mich eben kaum noch
Details erinnere :)
Grüße
Hallo,
eingelötet habe ich ihn schon - das war hier kein Problem da ich ein IR
Reworksystem Ersa IR550 zur Verfügung habe.
Ich hatte das Board noch nie mit DSM hochgefahren da es auf dem LAN Port
keine Funktion hat ( Board am Tisch und nur Power und LAN angeschlossen
) - also keine LED und der Assistant findet keine Station - muss ich
wohl mal testen ob das OS auch bei mir den Chip erkennt. Auf die Idee
bin ich noch nie gekommen.
Kannst du mir die Tools zukommen lassen ?
Ein Kabel für die Konsole habe ich auch ....... wenn das funktioniert
wäre das super. Bin Dankbar über alles woran du dich noch Erinnerst .
Ich versuche dir mal eine PM zu senden.
Bericht ..... 3 Tage gekürzt auf das wesentliche
mit Hilfe von Marco V. bin ich weiter gekommen
DS916+ mit DSM aufgespielt - Volume erstellt und einen Ordner erstellt
In den Ordner das File lanconf64e abgelegt
Per Terminal SSH LAN1 nicht unter root in die DS916+
mit lspci -v wurden mir zumindest beide Chips angezeigt was bedeutete
der neue Chip ist richtig drin und funktioniert
01:00.0 Class 0200: Device 8086:1539 (rev 03)
Subsystem: Device 8086:0000
Flags: bus master, fast devsel, latency 0, IRQ 16lspci -v
Memory at 91300000 (32-bit, non-prefetchable) [size=128K]
I/O ports at 3000 [size=32]
Memory at 91320000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: igb
02:00.0 Class 0200: Device 8086:1532 (rev 03)
Subsystem: Device 8086:0000
Flags: bus master, fast devsel, latency 0, IRQ 255
Memory at 91200000 (32-bit, non-prefetchable) [size=128K]
I/O ports at 2000 [size=32]
Memory at 91220000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Beim LAN 2 wurde der igb Kernel Driver nicht geladen
mit dmesg -T | grep eth
war dann auch Sichtbar das der Chip zwar da ist und lebt aber nicht
konfiguriert ist. hier sollten Infos über eth0 und eth1 stehen aber eth1
wurde auch als eth0 angezeigt - also totales durcheinander
Also per CD in den Ordner mit dem File navigiert
und mit sudo ./lanconf64e das Programm aufgerufen
Driverless Mode bestätigt und im nächsten Menue stand im Klartext "I211
Blank OTP Device " und eine halb falsche Device ID ( 8086-1532 -- soll
8086-1539)
die Blank OTP device angewählt und zu EEProm/Flash navigiert und
geöffnet
Hier findet man OTP 4 Tables die alle auf 00 standen.
Ich habe an einer Intakten Unit DS916+ die 4 Tables des OTP ausgelesen
Screenshoots gemacht - es waren nur die ersten 4 Blöcke und die letzten
2 Blöcke beschrieben ( die letzten beiden in Rot angezeigt
LAN Chip 1 und 2 haben einen identischen OTP
unter 00 und 08 habe ich dann per Hand die Daten der 4 Blöcke
eingegeben
per Enter selecten es geht ein Fenster auf - Daten eintragen und mit
Enter bestätigen dann sind sie gesetzt
zum Schluss lässt er sich noch mal bestätigen das der OTP geschrieben
wird.
0x00 15391A19 34120019
0x08 78560219 BC9A0419
dann haben sich bei 0xF8 am letzten Tabel die Hex selber gesetzt. Hier
habe ich nichts geändert
Laut Datenblatt sind die nur Informativ und beeinflussen keinerlei
Funktionen.
Alle anderen Werte sind 00
Man kann den Chip mehrfach schreiben - allerdings keine geschriebenen
Blöcke überschreiben.
Danach 1 mal neu Booten
Ergebnis :
Alle Daten unter lspci -v normal , beide igb geladen
dmesg -T | grep eth zeigte jetzt auch normale eth0 und eth1 an
LAN Port funktioniert.
1000 Dank für die Hilfe
Glückwunsch zur gelungenen Reparatur! Der Aufwand scheint sich ja
gelohnt zu haben :)
Und besonders auch vielen Dank für den ausführlichen Bericht, so kann
sicher in Zukunft noch mal jemand davon profitieren.
Viele Grüße
Noch ein kleiner aber wichtiger Zusatz betreffend der MAC Adresse
Eine genaue Beschreibung findet man im Datenblatt vom WGI211
In der OTP ist auch die MAC Adresse hinterlegt
beim Booten zeigt die Synology folgendes
hier der Datensatz mit dem neuen nicht konfigurierten Chip auf LAN2 /
eth1
ich@DS916:/$ dmesg -T | grep eth
[Sun Oct 3 14:53:08 2021] usbcore: registered new interface driver
ethub
[Sun Oct 3 14:53:08 2021] ethub 3-0:1.0: USB hub found
[Sun Oct 3 14:53:08 2021] ethub 3-0:1.0: 2 ports detected
[Sun Oct 3 14:53:08 2021] ethub 4-0:1.0: USB hub found
[Sun Oct 3 14:53:08 2021] ethub 4-0:1.0: 2 ports detected
[Sun Oct 3 14:53:29 2021] igb 0000:01:00.0: added PHC on eth0
[Sun Oct 3 14:53:29 2021] igb 0000:01:00.0: eth0: (PCIe:2.5GT/s:Width
x1)
[Sun Oct 3 14:53:29 2021] igb 0000:01:00.0 eth0: MAC: 12:34:56:78:9a:bc
[Sun Oct 3 14:53:29 2021] igb 0000:01:00.0: eth0: PBA No: Unknown
[Sun Oct 3 14:53:34 2021] device ovs_eth0 entered promiscuous mode
[Sun Oct 3 14:53:34 2021] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not
ready
[Sun Oct 3 14:53:34 2021] device eth0 entered promiscuous mode
[Sun Oct 3 14:53:36 2021] init: dhcp-client (ovs_eth0) main process
(6864) kill ed by TERM signal
[Sun Oct 3 14:53:38 2021] igb 0000:01:00.0 eth0: igb: eth0 NIC Link is
Up 1000 Mbps Full Duplex, Flow Control: None
[Sun Oct 3 14:53:38 2021] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link
becomes rea dy
[Sun Oct 3 14:53:39 2021] init: dhcp-client (ovs_eth0) main process
(7040) kill ed by TERM signal
ich@DS916:/$
in diesem Fall MAC 12:34:56:78:9a:bc
Wenn man sich den OTP Table ansieht :
0x00 15391A19 34120019
0x08 78560219 BC9A0419
steht die MAC da drin
Synology verändert sie später per System auf die MAC die auf dem
USB-Flash Drive hinterlegt ist ( Vender-File )
Lanconf überschreibt normalerweise nicht die MAC. Und OTP sollte man
ernst nehmen. Der Intel hat da einige Zellen mehr spendiert so daß man
auch fehlerhafte Einträge ändern kann. Aber irgendwannmal ists ende, und
dann brauchst du ein SPI-Flash.
Hallo
Richtig Lanconf überschreibt keine MAC.
Ich habe hier 2 Geräte in denen insgesamt 4 dieser WGI211AT verbaut sind
Jeder der 4 Chips hat im OTP die selbe MAC Adresse stehen.
Synology verändert per Software die dann verwendete MAC . Diese steht
im Vender File.
Das ist allerdings Synology spezifisch.
Tom