E750 custom Openwrt NAND image not booting

I’m compiling a custom NAND image for the e750 using the openwrt repo:

Branch openwrt-19.07.7 / firmware 3.201

firmware compiled size is ~15MB with extra kernel extensions.
Loading the img through uBoot sometimes lets the e750 boot, but most of the time it does not. Compiling the same image for NOR boots successfully and reliably.
Any ideas how to get the NAND image booting reliably - is it related to kernel size?

Can you share your configuration?


"packages": {
	"basic": "libustream-openssl -dnsmasq dnsmasq-full -wpad-mini iwinfo kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8 kmod-nf-nathelper kmod-nf-nathelper-extra ethtool fcgi lighttpd lighttpd-mod-access lighttpd-mod-cgi lighttpd-mod-expire lighttpd-mod-fastcgi lighttpd-mod-proxy unzip wpa-cli bridge ip-full -unbound stubby mwan3 -wpad-basic wpad-openssl -PCI_SUPPORT -luci -luci-mod-rpc ipset",
	"vpn": "openvpn-openssl wireguard gl-wg gl-wg-server gl-vpn gl-vpn-server -gl-ss -gl-ss-server",
	"storage": "blkid kmod-fs-ext4 kmod-fs-ntfs kmod-fs-vfat kmod-fs-exfat ntfs-3g -samba36-server -minidlna",
	"usb": "kmod-usb-storage-uas kmod-usb-storage kmod-usb-uhci kmod-usb2 kmod-usb-ohci kmod-usb-acm kmod-usb-net-huawei-cdc-ncm comgt chat comgt-directip comgt-ncm kmod-usb-serial kmod-usb-serial-cp210x kmod-usb-serial-option kmod-usb-serial-wwan kmod-usb-serial-sierrawireless kmod-rt2800-usb usb-modeswitch kmod-mppe kmod-usb-net kmod-usb-net-cdc-ether kmod-usb-net-rndis kmod-usb-net-qmi-wwan uqmi kmod-usb-net-ipheth libusbmuxd libimobiledevice usbmuxd",
	"glinet": "-gl-airkiss gl-crond gl-s2s gl-portal gl-cloud-ui gl-route-policy gl-qos-internal gl-tertf gl-fw gl-base-files -gl-files-brower gl-firewall gl-modem gl-repeater gl-sdk gl-software gl-ui gl-util gl-wan-detect gl-wifi-core gl-monitor gl-ipv6 rtty-openssl gl-upload",
	"glinet_vixmini": "gl-sdk gl-base-files -gl-files-brower gl-firewall gl-repeater gl-software -gl-ui gl-ui-vixmini gl-util gl-wan-detect gl-wifi-core gl-monitor",
	"basic_vixmini": "dnsmasq -wpad-mini iwinfo -kmod-nls-cp437 -kmod-nls-iso8859-1 -kmod-nls-utf8 kmod-nf-nathelper-extra -luci luci-mod-rpc ethtool fcgi lighttpd lighttpd-mod-openssl lighttpd-mod-access lighttpd-mod-cgi lighttpd-mod-expire lighttpd-mod-fastcgi lighttpd-mod-proxy unzip wpa-cli wpad bridge ip-full mwan3",
	"custom_oneboxx": "iptables-mod-ipsec kmod-crypto-authenc kmod-crypto-cbc kmod-crypto-ctr kmod-crypto-deflate kmod-crypto-des kmod-crypto-ecdh kmod-crypto-echainiv kmod-crypto-gcm kmod-crypto-gf128 kmod-crypto-ghash kmod-crypto-hmac kmod-crypto-iv kmod-crypto-kpp kmod-crypto-md5 kmod-crypto-rng kmod-crypto-seqiv kmod-crypto-sha256 kmod-crypto-wq kmod-ipsec kmod-ipsec4 kmod-ipsec6 kmod-ipt-ipsec kmod-iptunnel4 kmod-iptunnel6 kmod-lib-zlib-deflate kmod-lib-zlib-inflate libaio libatomic libiwinfo-lua liblua liblucihttp-lua liblucihttp liblzma libncurses libstdcpp libubus-lua lua luci-app-firewall luci-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp luci-theme-bootstrap luci nano nginx openssh-sftp-server php7-cli php7-fpm php7-mod-curl php7-mod-hash php7-mod-iconv php7-mod-json php7-mod-opcache php7-mod-openssl php7-mod-pdo-mysql php7-mod-pdo php7-mod-phar php7-mod-session php7-mod-shmop php7-mod-simplexml php7-mod-zip php7 rpcd-mod-rrdns rpcd strongswan-charon strongswan-default strongswan-ipsec strongswan-libtls strongswan-mod-aes strongswan-mod-attr strongswan-mod-ccm strongswan-mod-cmac strongswan-mod-connmark strongswan-mod-constraints strongswan-mod-curl strongswan-mod-curve25519 strongswan-mod-des strongswan-mod-dnskey strongswan-mod-eap-identity strongswan-mod-eap-md5 strongswan-mod-eap-mschapv2 strongswan-mod-eap-tls strongswan-mod-fips-prf strongswan-mod-gcm strongswan-mod-gmp strongswan-mod-hmac strongswan-mod-kernel-netlink strongswan-mod-md4 strongswan-mod-md5 strongswan-mod-nonce strongswan-mod-openssl strongswan-mod-pem strongswan-mod-pgp strongswan-mod-pkcs1 strongswan-mod-pubkey strongswan-mod-random strongswan-mod-rc2 strongswan-mod-resolve strongswan-mod-revocation strongswan-mod-sha1 strongswan-mod-sha2 strongswan-mod-socket-default strongswan-mod-sshkey strongswan-mod-stroke strongswan-mod-updown strongswan-mod-x509 strongswan-mod-xauth-generic strongswan-mod-xcbc strongswan terminfo uhttpd-mod-ubus uhttpd zoneinfo-africa zoneinfo-asia zoneinfo-atlantic zoneinfo-australia-nz zoneinfo-core zoneinfo-europe zoneinfo-india zoneinfo-northamerica zoneinfo-pacific zoneinfo-poles zoneinfo-simple zoneinfo-southamerica",
	"built_oneboxx": "uclibcxx libreadline libaio libmysqlclient mysql-server"
"profiles": {
            "oneboxx": {
		"profile": "glinet_gl-e750-nor-nand",
		"version": "3.201",
		"imagebuilder": "3.5/openwrt-imagebuilder-ath79-nand_3.5",
		"packages": "kmod-GobiNet kmod-GobiSerial gl-base-files-ar gl-base-files-e750 $basic $vpn $storage $usb $glinet gl-e750-mcu gl-tor gl-upload rtty-openssl $custom_oneboxx $built_oneboxx",
		"files": "/home/builder/oneboxx-e750/files"


Your kernel may exceed 2MB. If it exceeds 2MB, you need to write firmware via uboot.

I am writing the firmware via uBoot - that is when the issue happens (and via sysupgrade)

Does it require custom compiled uBoot?

No. Uboot should not be changed

My kernel is probably larger than 2MB, but I still experience same problem when loading via uBoot (sometimes boot correctly after install, then not after restart).

@jammmet Hello . Tell me please, did you manage to create a custom rom with the programs that you wrote above? Or something didn’t work?

This post is over a year old. Even if it worked back than, I really doubt it will do today.

You should start a new thread with specific questions, to get your answer.
To start you maybe can try the script, mentioned above. But do not expect a working result.

@LupusE Thank you very much for your reply. I created a topic Custom firmware build Mudi GL-E750 but the developers do not help, I don’t understand why)) If they asked me, I would know the answer, I would gladly help. I would write in detail how to do it. I do not understand what the problem is to tell the user (that is, me) how to build custom rom. Moreover, I bought their device for 200$. Why then a forum if the developers can not help))

It is not that simple. Here I am a volunteer, I can write what I want. No guarantee, no responsibility.
When I write with all my expertise in the forum of my employer, I am responsible for every single word. If something goes wrong, my company can get sued, because of my post.

It is political, not technical.

On the downside I channel more workforce in GL.iNet without any payment (not really true, I get a great travel router with a pretty stable firmware), than support and help ‘my customers’. Even if I could answer a lot deeper and more in the other forum.

@LupusE Thank you for your reply. Correctly I understood you, you want to say that there are no exact answers on the forum on setting up the router that I bought? I don’t ask on the forum how to set up windows)) In my case, the firmware does not work stably, I already created a topic Vpn instruction not working (mullvad) Trouble setting up TOR and saw that many people also talk about this problem, plus a lot of programs that I don’t need. To avoid all this, I came to the conclusion that I need to compile my firmware with the programs that I will use.

As for liability. I understand that all responsibility is on my side, in this case I need advice or instructions from the user who has done this way or knows how to do it.

Or should I not ask anything here because none of the developers will help and go to the OpenWRT forum?

At first, it really doesn’t matter what I say/write/think. I am a GL.iNet customer as well… I just want to tell what my experiences are.

Even if I have no E750 (too expensive for my use cases), I’ve took a look at your post.
From the view of a technician. What?

As far as I can see you don’t want support, you want a manual for a very specific use case.

You bought a router for 200[currency]. The router works as sold. Period. You totally got what you paid for, or does any promised feature does not work?
You want use it in another way, and just because one guy with unknown (to me) background get the base (OpenWRT) unofficial customized work, your expectation is, someone tell you how to do it.

The right way would be: Try to compile the plain OpenWRT, ask the OpenWRT guys (who are much more) for help. And of they have no answer, because the issue is GL.iNet specific, ask a specific question here…
And don’t expect it will work after a week. This project can take half a year or more. Depending on your (free) time and knowledge.

Sorry, if this is not what you want to hear. But I started with customizing, compiling, debugging, too. Ant it was a wild journey. I was disappointed, nobody wanted to tell me what ‘I needed to know’… Today I am telling others that nobody knows what they ‘need to know’.


@LupusE Thank you very much for your honest answer. Your opinion sounds logical) You understood well what I need. Yes, that’s right, I bought the device, it does not work 100%, which is confirmed by private publications about poor or unstable work, or as you saw my bridge where I could not set up vpn through the browser for an hour, but using the manual method, I did it in 30 seconds and wrote instructions for others users.
I don’t blame anyone for this, since this is a very complex technical device, and over time, if the developers are more active with users, this issue will be resolved)) Therefore, I decided not to wait for an answer from them and build my own image and include in it the programs that I need, so that there are no freezes and similar problems.

I understand you, I’ll have to go to another forum to tell me how to assemble and configure my image)) Some of my friends showed me a small piece of paper when they ordered MUDI, it was written there that it was not recommended to reinstall the firmware))

I understood now, your issue is longer lasting.
I focused on ‘creating an own image’.

Maybe I am the wrong person to talk to, because I am also not using Mullvad.
I can imagine a small change also can break other things. It needs to be tested. Even it it works for you, is it still useable for all setups? I don’t know if Mullvad is operating to the rules of the protocols or doing some own magic… In that case it even needs more testing to build a general workaround.

I’m using my own Wireguard Server. If this won’t work, I would be disappointed too. But the outcome would be the same: Else GL.iNet needs to support this Wireguard or Wireguard needs to support GL.iNet… we as customers are only in the middle (until we are able to write patches against the used OpenSource solutions).

@LupusE Thanks for the reply. As for Mullvad, it was just a test on my part of how the MUDI interface works. Naturally, it is better to connect to your server. In any case, thanks for the answer, I will look at other forums on how to build the image.