Install and configure OpenWrt 23.05.0 in TL-MR6400 v5 with working LTE

(disculpeu-me per escriure en english…)

  • Openwrt version used: OpenWrt 23.05.0

  • DISCLAIMER: once I installed openwrt on the tp-link WR6400 v5, i haven’t been able to reinstall the original TP-link firmware!

I spent few hours to get a working connection via SIM card, and did try few configuration, before I had a working LTE connection. Being openwrt, it is proving to archeive a much more reliable LTE connection then the TP-link firmware.

This router is relatively cheap (~60.-e) but it has very little available space on /dev/mtdblock4, and uses the LTE modem in qmi mode, which is a proprietary protocol by Qualcomm :frowning: , documented at https://openwrt.org/docs/guide-user/network/wan/wwan/ltedongle.

I found that only two extra packages are needed:
qmi-utils luci-proto-qmi

In order to install the qmi-utils package, I had to rebuild the openwrt image, gaining some useful space, but dropping ipv6 support.
I used the image builder, as documented at https://openwrt.org/docs/guide-user/additional-software/imagebuilder.%C2%A0 with the following packages removed and added once compiling with make:

PACKAGES=“uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base luci-app-firewall luci-mod-admin-full luci-theme-bootstrap -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd-ipv6only qmi-utils luci-proto-qmi”

I installed openwrt on the device, following the instructions at https://openwrt.org/toh/tp-link/tl-mr6400_v5

#serve tftp-recovery image as tp_recovery.bin on 192.168.0.225/24
dnsmasq --port=0 --enable-tftp --tftp-root=/path/to/firmware/directory --tftp-no-blocksize --user=root --group=root

# check tftpd is running
netstat -lunp | grep 69

# when powering on router, with reset button pressed, as soon as possible
ifconfig eth0 192.168.0.225 up

Somehow the tftp image I built was not working, so I first installed the last official openwrt tftp .bin version, and then I did a sysupgrade with the openwrt sysupgrade .bin image I built.

Once succesfuly installed, I removed eth0.2 from the wan interface, and assigned the qmi interface as wan in /etc/config/network:

config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option apn 'YOUR APN NAME'
        option pincode '****' # your pin code numbers
        option auth 'none'
        option pdptype 'ipv4'
        option delegate '0'
        option dhcp '0'

(I successfully tested this configuration with digi and movistar APNs)

Once rebooted, it takes a minute for the qmi interface to connect to the LTE network and obtain an ipv4 address.

You can check the LTE signal strenght (and a lot of other stuff) with uqmi:

root@OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-signal-info
{
        "type": "lte",
        "rssi": -71,
        "rsrq": -15,
        "rsrp": -108,
        "snr": 1.400000
}

You can check the status of the network connection on the interface section in Luci or with ifconfig on the terminal:

root@OpenWrt:~# ifconfig
wwan0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.19.10.145  P-t-P:10.19.10.145  Mask:255.255.255.252
          inet6 addr: fe80::745c:fd7e:9bb7:78a4/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:893508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:447789 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1256641567 (1.1 GiB)  TX bytes:22103352 (21.0 MiB)

Finally, I wanted to have the “internet” led blinking on the router, once packages are received from an LTE connection. I added this section in /etc/config/system:

config led 'led_wan'
        option 'name'           'wan'
        option 'sysfs'          'white:wan'
        option 'trigger'        'netdev'
        option 'dev'            'wwan0'
        option 'mode'           'rx'

Next thing to do is to write a script assigning the LTE signal strength to the three “signal” leds: white: signal1 white:signal2 white:signal3

I am still able to receive and read SMS messages, via uqmi commands on the terminal:

uqmi -d /dev/cdc-wdm0 --list-messages --storage me

uqmi -d /dev/cdc-wdm0 --get-message 0 --storage me

Hola buenos días,
He encontrado ésta entrada, he intentado seguir los pasos pero en algún sitio me he debido de perder y no consigo que me funcione.
Tengo un TL-MR6400 v5 y tengo el problema que se describe, quiero instalar el servicio de openvpn pero no hay suficiente espacio, por lo que no me deja hacerlo.
¿Sería posible que me echarais una manilla?
Gracias

hola dasensio,

disculpa por el retraso en responderte.
no creo que sea una buena idea utilizar este router para openvpn, no vas a tener bastante espacio para installar todos los paquetes necesarios.
si que podrias utilizar este router para la conexion LTE, y enlazarlo a un otro router que gestione openvpn, por el estilo:

internet <> openwrt tl-mr6400 <> router vpn <> tu red

Aun que siempre es mejor reciclar productos existentes, en tu caso creo que seria mucho mas simple buscar un router mas nuevo que sea instalable con openwrt, que soporte LTE y que tenga mas ram y espacio de disco que este modelo. (por ejemplo puedes buscar “openwrt LTE router” en los sitios que venden productos desde china - controla antes de comprar si soportan “roaming LTE” por si la empresa de telefonia que utilizas necesita que actives el roaming en la sim)