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
Du weißt aber das der programmiert werden muss?
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.
1 | Connection to QV driver failed - please reinstall it! |
2 | |
3 | Intel(R) Ethernet Flash Firmware Utility |
4 | BootUtil version 1.7.21.0 |
5 | Copyright (C) 2003-2020 Intel Corporation |
6 | |
7 | Saving flash firmware image on port 1 to file test.FLB... |
8 | ERROR: Unsupported feature |
9 | |
10 | Port Network Address Location Series WOL Flash Firmware Version |
11 | ==== =============== ======== ======= === ============================= ======= |
12 | 1 001132557678 1:00.0 Gigabit YES FLASH Not Present |
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.
1 | insmod: ERROR: could not insert module /lib/modules/iqvlinux.ko: Invalid module format |
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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...
:
Bearbeitet durch User
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:
1 | 01:00.0 Class 0200: Device 8086:1539 (rev 03) |
2 | Subsystem: Device 8086:0000 |
3 | Flags: bus master, fast devsel, latency 0, IRQ 16 |
4 | Memory at 91100000 (32-bit, non-prefetchable) [size=128K] |
5 | I/O ports at 2000 [size=32] |
6 | Memory at 91120000 (32-bit, non-prefetchable) [size=16K] |
7 | Capabilities: <access denied> |
8 | Kernel driver in use: igb |
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.
:
Bearbeitet durch User
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
:
Bearbeitet durch User
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.