Zurück zur Startseite

Firmware-Modifikation D-Link DWR-M921 RTL8197F

Der Artikel analysiert den Bootlog des D-Link DWR-M921 Routers auf dem RTL8197F-Chipset. Beschreibt die MTD-Partitionsstruktur, USB- und WLAN-Initialisierung, Firmware-Modifikationsbeschränkungen. Vektoren zur Injektion benutzerdefinierter Software wie AdGuardHome werden vorgeschlagen.

Bootlog und Firmware-Modifikation D-Link DWR-M921
Advertisement 728x90

D-Link DWR-M921: Firmware-Analyse und Modding-Anleitung (RTL8197F)

Der D-Link DWR-M921 basiert auf dem Realtek RTL8197F-Chipset mit 128 MB DDR2 bei 400 MHz und 8 MB SPI NOR-Flash vom Typ Winbond W25Q64. Der MIPS 24Kc-Prozessor (00019385) taktet unter Linux 3.10.90 mit 999 MHz und wurde mit gcc 4.4.7 aus dem Realtek MSDK kompiliert.

Die integrierte UART-Schnittstelle ermöglicht das Abfangen des Bootlogs, der das MTD-Partitionslayout offenlegt:

  • 0x00000-0x30000: "boot+cfg+linux"
  • 0x30000-0x80000: "rootfs"
  • 0x80000-0xb0000: "boot+cfg+linux2" (deaktiviert)
  • 0xb0000-0x100000: "rootfs2" (deaktiviert)

Aktiver Bootbank=1. Der Kernel wird von 0x80a00000 geladen, rootfs wird als Squashfs auf /dev/mtdblock1 gemountet.

Google AdInline article slot

Analyse der Subsystem-Initialisierung

Der Bootlog durchläuft die Initialisierung schrittweise:

  • Speicher und Cache: 114 MB frei von 128 MB, SLUB mit HWalign=32.
  • USB-Controller: EHCI (Bus 1), OHCI (Bus 2), DWC OTG (Bus 3) mit PHY-Patches für 40 MHz Oszillator.
  • Netzwerk: Realtek WLAN (RFE TYPE=0, 512 RX/TX-Deskriptoren), FastPath v1.03, VLAN 802.1Q.
  • Dateisysteme: Squashfs 4.0, exFAT 1.2.9, NTFS Lese-/Schreibzugriff.
  • Treiber: PPP, L2TP, GobiNet/Serial für Modems, nf_conntrack.

Spezifische USB-PHY-Register:

port 0 reg e0=e2, e1=31, e2=33, e3=8d, e4=c9, e5=19, e6=c1, e7=91
port 0 reg f0=fc, f1=8c, f2=0, f3=11, f4=9b, f5=4, f6=0

Ethernet-Ports eth0-eth4 sind VLANs mit FastPath-Beschleunigung zugeordnet.

Google AdInline article slot

Firmware-Layout und Hürden

Die Firmware nutzt ein Dual-Bank-Setup, Bank 2 ist jedoch gesperrt. Fehlender Open-Source-Code von D-Link und lückenhafte OpenWRT-Unterstützung für RTL8197F erschweren Custom-Builds. Versuche mit veraltetem Realtek SDK (rtl819x auf SourceForge) scheitern.

Wichtige Bootlog-Specs:

  • Kernel-Commandline: console=ttyS0,38400 root=/dev/mtdblock1
  • DRAM: 128MB DDR2@400MHz
  • Flash: w25q64@29MHz (max_speed_hz=29000000Hz)
  • CPU: 660.68 BogoMIPS

Modding-Ansätze

  • UART/JTAG-Dump: Vollständiges Image für Reverse Engineering sichern.
  • Squashfs-Patching: Rootfs entpacken, AdGuardHome oder Custom-Pakete einbinden.
  • Bootloader-Hooks: U-Boot oder proprietären Loader für alternativen Root anpassen.
  • SDK-Exploits: Realtek MSDK für kompatible Images nutzen.
  • TFTP-Wiederherstellung: Modifizierte Images über Netzwerk laden, falls aktiviert.

Der RTL8197F bietet PCIe (Link-Up fehlschlägt), USB OTG und GPIO für Low-Level-Hacks.

Google AdInline article slot

Wichtige Erkenntnisse

  • RTL8197F-Chipset: MIPS 24Kc@999MHz, 128MB RAM, begrenzte OpenWRT-Unterstützung.
  • MTD-Partitionen: Nur boot+cfg+linux (0x300KB) und rootfs (0x500KB) aktiv.
  • USB-PHY-Patches: Essentiell für stabile EHCI/OHCI/DWC OTG.
  • Realtek WLAN: RFE=0, 512 Deskriptoren, Adaptivity 9.3.4.
  • Kernel-Version: 3.10.90 (2021), veraltete Treiber (gcc 4.4.7).

— Editorial Team

Advertisement 728x90

Weiterlesen