Adding support for XUNISON Exigo D50 5G / ZEARTS D50 5G (IPQ5018)

Can you check if the modem works with the luci-proto-quectel package: https://github.com/testuser7/wwan-packages/tree/mhi ?
There are updated drivers in the repository for what QModem uses.

OK, I'll check later these updates. My current image has the old luci-proto-quectel, drivers, and quectel-cm, but this setup is very processor-intensive and limits performance. I haven't tested it myself, but apparently qmodem doesn't have these problems and can achieve much higher speeds.

The main problem with quectel packages that we are using right now, is that quectel-cm sets core 0 as the main core, and it also forcibly sets google’s dns, yours have that also.

All this is related to the scripts that are used to establish the connection and not to quectel-cm directly: https://github.com/testuser7/wwan-packages/tree/mhi/utils/quectel-cm/files

QModem also uses quectel-cm to establish a connection: https://github.com/FUjr/QModem/blob/main/application/qmodem/files/usr/share/qmodem/modem_dial.sh#L986

There is also luci-app-modem: https://github.com/Siriling/5G-Modem-Support/tree/main/luci-app-modem

Yes, but i personally tested the QModem feed from FUjr, and the cpu usage was spread more evenly there. Also, quectel-cm from that feed doesn’t have those scripts and sets up dhcp server as well when establishing connection.

This could be caused by the script: smp-affinity-mhi-pcie.sh

What is the CPU usage when using quartel-cm from the CLI?

On core 0 it hits pretty much 90 to 100 percent. Core 1 it's 20 to 30 max. On FUjr QModem, it's 65-75 core 0 and 45-55 core 1. That's with hardware offloading enabled.

I just tested again, and on quectel packages that i compiled and IceG is using as well, i’m getting 380-420 download speed. On FUjr QModem, i’m getting 500-520, and cpu usage is core 0 55-65 percent and core 1 pretty much the same.

What’s the status on this device now? Is the modem working?
If the wan led is all that’s left, I’ll take a look at adding support for it during the week

Modem works but not on upstream drivers. I can’t get it to work for the life of me on mhi_pci_generic. Everything else works nice, if the wan led could be supportable, then that would be great. And i think the clean up of bootscript, make file and dts are neccesary.

whats wrong with the bootscript or the make recipe .. aside from the default packages ?

I’m not sure if it’s the make recipe or bootscript, but during flashing it says that gl.inet script failed or something when the serial console is connected. Should it stay that way ? Otherwise, it’s working great.

that happens because your a flashing a sysupgrade.bin, so it fails the glinet fit image check and thus defaults to the normal sysupgrade procedure, as the later part of the message states. This is perfectly normal.

This device could use the default sysupgrade logic ...however, if the user was to flash the oem or openwrt .img file in luci, it would be accepted and flashed by luci, resulting in a softbricked device.

The glinet img check prevents this by extracting the ubi from the .img, before flashing ... preventing the softbricked devices and adding the safe option to revert to oem via luci.

Ok, thanks for explaining, one more thing. Sometimes, at least on my device, it is very slow or completely fails to boot without uart connected to it. When uart is connected, it boots up everytime and quickly. You have a idea what could be causing that ?

I have never seen that before, hard to say what could be the cause that ...

about the only things that come to mind is, it could dropping into uboot cli and waiting for input. Or if it happens irregularity ( every other boot) it may be something with the bootconfig .. though bootconfig is not utilized in any of the images i have extracted and looked at.

perhaps a dmesg and logread of a "very slow" boot may produce some hints. Or wait for it to freeze up then start a serial session and check the logs

Alright, thanks for explaining everything. Also, thank you for your hard work. Without you, this device wouldn’t accept openwrt images, let alone boot them. We are very grateful :folded_hands:

@georgem83 Check the PR / my Github the latest source code is there.

I guess the WAN LED and the Wi-Fi LED (one LED - two frequencies to show activity) will need to be changed in the dts file. I described them as best I could, both work, but they probably don't conform to current guidelines. There are problems with modem, but in the minimal version it can be run on USB 2.0.

I received a D50 5G just today. Ideally I would like to build OpenWrt from source and flash it. This would be my first time building OpenWrt from source. I followed this guide on IceG's source, but I am not sure what to select in the menu options. With the default options it produces a lot of BIN files, which one should I flash. Do you have any pointers?

EDIT: I made a few steps forward. I will post my procedure here, in case it might be useful to someone else.

  1. Target System: Qualcomm Atheros 802.11ax WiSoC-s
    Subtarget: Qualcomm Atheros IPQ50xx
    Target Profile: Xunison Exigo Hub D50 5G
  2. Flash IceG's latest factory.img build according to his instructions
  3. apk list --installed to list build packages, this list is also available here

I then started selecting those packages one by one, before getting tired. For now I will be using IceG's build, which so far seems to work great as expected.

If anyone's interested, I've released a new image (factory.img or sysupgrade.bin).

If anyone's interested, I've released a new image r34373-b7af9b49f8 [Build: 10.05.2026] (factory.img or sysupgrade.bin).

P.S.
I expect further updates following any changes to the DTS file or to correct errors in translations.