[PATCH 1/1] ramips/mt76x8: Add support for TPLINK TL-WR841Nv13

mail at adrianschmutzler.de mail at adrianschmutzler.de
Sa Apr 11 23:44:01 CEST 2020


Hallo Dominik,

zunächst vorab:

Ich finde es nicht unbedingt erstrebenswert, jetzt noch "neu" Support für ein 4/32-Gerät hinzuzufügen.

Das mt76x8-(Sub)target hat zudem kein "small_flash" in OpenWrt aktiviert, d.h. bestimmte direkt in den Kernel eingebaute Features, die bei ar71xx-tiny deaktiviert werden, sind hier noch vorhanden, und machen das Image größer. Zudem hat man hier für ein einzelnes 4/32-Gerät dann einen Sonderfall, um den man sich nochmal extra kümmern muss, wenn es darum geht, Support für diese Geräte generell zu erhalten.

Selbst wenn das Gerät jetzt (offensichtlich) noch unterstützt werden kann, sendet dies in meinen Augen das falsche Signal aus.
Außerdem gibt es schon länger einen v14, wir unterstützen hiermit also nicht mal die "aktuellste" Version.

Ich werde den Support deshalb nicht blockieren, wenn jemand anderes dies als sinnvoll erachtet. Ich wollte nur meine Bedenken äußern.

Nun zum Content:

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Dominik Heidler
> Sent: Freitag, 10. April 2020 00:27
> To: franken-dev at freifunk.net
> Cc: Dominik Heidler <dheidler at gmail.com>
> Subject: [PATCH 1/1] ramips/mt76x8: Add support for TPLINK TL-WR841Nv13

"TP-Link TL-WR841N v13"

Ich will hier jetzt nicht auf der Commit Message rumreiten, für den speziellen Fall der Mediatek-Geräte wäre es aber erstrebenswert, hier "Flashing instructions" mit einzubauen; man muss zwar scheinbar nur TFTP verwenden, aber es ist dennoch eine gewisse Abweichung vom gewohnten WebUI-Flashing, daher würde ich das an der Stelle highlighten. Für meinen Geschmack würde es reichen, einfach die Flashing-Instruktionen vom OpenWrt-Commit hier reinzukopieren:

https://github.com/openwrt/openwrt/commit/24043a0d2e01b9843c0dc529205b3b0bc7ecbbf9

> 
> From: Dominik Heidler <dheidler at gmail.com>
> 
> Signed-off-by: Dominik Heidler <dominik at heidler.eu>

Die Mail-Adressen für Author und Signed-off sind unterschiedlich. Das ist für uns zwar wurscht, aber FYI. (Bei OpenWrt müssten die gleich sein.)

> ---
>  bsp/board_mt76x8.bsp                          |  6 ++++
>  bsp/mt76x8/.config                            | 29 +++++++++++++++++++
>  .../files/etc/uci-defaults/15-fff-boardname   |  3 ++
>  .../fff-network/ramips/network.tl-wr841-v13   |  9 ++++++
>  4 files changed, 47 insertions(+)
>  create mode 100644 bsp/board_mt76x8.bsp  create mode 100644
> bsp/mt76x8/.config  create mode 100644 src/packages/fff/fff-
> network/ramips/network.tl-wr841-v13
> 
> diff --git a/bsp/board_mt76x8.bsp b/bsp/board_mt76x8.bsp new file mode
> 100644 index 0000000..bf8d236
> --- /dev/null
> +++ b/bsp/board_mt76x8.bsp
> @@ -0,0 +1,6 @@
> +machine=mt76x8
> +chipset=ramips
> +subtarget=mt76x8
> +images=("openwrt-${chipset}-${subtarget}-tplink_c50-v3-squashfs-
> sysupgrade.bin"

Das überschneidet sich mit dem C50 v3. Ist aber wurscht, das kann man beim Applien hinbasteln, je nachdem, wer zuerst dran kommt.

> +        "openwrt-${chipset}-${subtarget}-tl-wr841n-v13-squashfs-
> sysupgrade.bin"
> +        )
> diff --git a/bsp/mt76x8/.config b/bsp/mt76x8/.config new file mode 100644
> index 0000000..c908b98
> --- /dev/null
> +++ b/bsp/mt76x8/.config
> @@ -0,0 +1,29 @@
> +# Generated using "./buildscript config openwrt".
> +# Do no edit manually
> +#
> +CONFIG_TARGET_ramips=y
> +CONFIG_TARGET_ramips_mt76x8=y
> +CONFIG_TARGET_MULTI_PROFILE=y
> +CONFIG_TARGET_DEVICE_ramips_mt76x8_DEVICE_tplink_c50-v3=y
> +CONFIG_TARGET_DEVICE_PACKAGES_ramips_mt76x8_DEVICE_tplink_c50-
> v3=""
> +CONFIG_TARGET_DEVICE_ramips_mt76x8_DEVICE_tl-wr841n-v13=y
> +CONFIG_TARGET_DEVICE_PACKAGES_ramips_mt76x8_DEVICE_tl-wr841n-
> v13=""
> +CONFIG_BUSYBOX_CUSTOM=y
> +CONFIG_TARGET_PER_DEVICE_ROOTFS=y
> +# CONFIG_BUSYBOX_CONFIG_BRCTL is not set #
> CONFIG_BUSYBOX_CONFIG_CROND
> +is not set # CONFIG_BUSYBOX_CONFIG_CRONTAB is not set #
> +CONFIG_BUSYBOX_CONFIG_FEATURE_FAST_TOP is not set #
> +CONFIG_BUSYBOX_CONFIG_FEATURE_NTPD_SERVER is not set
> +CONFIG_CLEAN_IPKG=y # CONFIG_DROPBEAR_CURVE25519 is not set #
> +CONFIG_FASTD_ENABLE_CIPHER_SALSA2012 is not set #
> +CONFIG_FASTD_ENABLE_MAC_GHASH is not set #
> +CONFIG_FASTD_ENABLE_MAC_UHASH is not set #
> +CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC is not set #
> +CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC is not set #
> +CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC is not set #
> +CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC is not set #
> +CONFIG_PACKAGE_ALFRED_VIS is not set CONFIG_PACKAGE_opkg=m
> +CONFIG_STRIP_KERNEL_EXPORTS=y
> diff --git a/src/packages/fff/fff-boardname/files/etc/uci-defaults/15-fff-
> boardname b/src/packages/fff/fff-boardname/files/etc/uci-defaults/15-fff-
> boardname
> index a96c05a..5213c1e 100644
> --- a/src/packages/fff/fff-boardname/files/etc/uci-defaults/15-fff-
> boardname
> +++ b/src/packages/fff/fff-boardname/files/etc/uci-defaults/15-fff-board
> +++ name
> @@ -29,6 +29,9 @@ case "$BOARD" in
>          BOARD=tl-wr841-v11
>          grep "v12" /var/sysinfo/model && BOARD=tl-wr841-v12
>          ;;
> +    tl-wr841n-v13)
> +        BOARD=tl-wr841-v13
> +        ;;

Dieses Umbenennen macht für ramips keinen Sinn.
Bei den anderen (ar71xx) 841ern ist der Grund für das Umbennen, dass der Name im Image (tl-wr841-vX) vom board name abweicht (tl-wr841n-vX).
Bei ramips ist das nicht der Fall, sondern der Image-Name ist zum Boardnamen konsistent. Insofern macht es mehr Sinn, hier nicht umzubenennen, und die Inkonsistenz bei unseren Namen in Kauf zu nehmen, anstatt erst hier A nach B zu ändern und bei sysupgrade dann wieder B zu A.

Dabei ist auch zu beachten, dass mit Wechsel von ar71xx auf ath79 und für mt76x8 mit Wechsel zum nächsten OpenWrt-stable Branch die Benennung ohnehin wieder anders ist.

>      nanostation-m)
>          BOARD=ubnt-nano-m
>          ;;
> diff --git a/src/packages/fff/fff-network/ramips/network.tl-wr841-v13
> b/src/packages/fff/fff-network/ramips/network.tl-wr841-v13
> new file mode 100644
> index 0000000..bd33c1f
> --- /dev/null
> +++ b/src/packages/fff/fff-network/ramips/network.tl-wr841-v13

Diesen Dateinamen entsprechend anpassen, wenn der board name nicht geändert wird:
-> tl-wr841n-v13

> @@ -0,0 +1,9 @@
> +PORTORDER="4 3 2 1"

Da hier der WAN-Port im Switch integriert ist, muss er mit in die Portliste. Entsprechend deiner Zuordnung unten sollte folgendes richtig sein:

PORTORDER="4 3 2 1 0"

Bisher habe ich (ohne dass dies irgendwo als Regel steht) immer den WAN-Port nach links gesetzt, also:

PORTORDER="0 1 2 3 4"

> +
> +WANDEV=eth0
> +SWITCHDEV=eth0
> +CLIENT_PORTS="6t 3 4"
> +WAN_PORTS="6t 0"
> +BATMAN_PORTS="6t 1 2"
> +
> +ROUTERMAC=$(cat /sys/class/net/eth0/address)

Bei OpenWrt überlappen die MAC-Adressen von &ethernet und &wmac. Damit wir keine kollidierenden MAC-Adressen im Mesh haben, muss daher die ETHMESHMAC ergänzt werden.

Entweder (WAN-Adresse):

. /lib/functions/system.sh
ETHMESHMAC=$(macaddr_add "$ROUTERMAC" 1)

Oder (local bit):

. /lib/functions/system.sh
ETHMESHMAC=$(macaddr_setbit_la "$ROUTERMAC")

Letzteres wurde zuletzt präferiert.

Das mit dem Mesh solltest du unbedingt noch testen. Einfach irgendeinen anderen Router als Uplink nehmen. Früher ging bei bestimmten Mediatek-Chip AP und Mesh nur einzeln, aber nicht gleichzeitig.

Beste Grüße

Adrian

> --
> 2.20.1
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : openpgp-digital-signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20200411/35a1b2bb/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev