Repository navigation
Control Panel (LuCI)
In one sentence: on OpenWrt you manage the device from a web page; the openwrt-luci system adds the MU300
control panel, a dashboard for the 5G modem, SIM, SMS and battery.
The simple version: LuCI is the router settings page you may know from home routers. The MU300 panel is an extra set of pages made for this device: how strong the signal is, which bands it uses, your text messages, the battery.
In a browser on a computer or phone connected to the device (USB or its Wi-Fi):
- F50 / MU300: http://192.168.77.1
- U30 Air: http://192.168.78.1
Log in as root with the password you chose at install.
OpenWrt (openwrt) |
OpenWrt with the panel (openwrt-luci) |
|
|---|---|---|
| LuCI (network, wireless, firewall, packages) | yes | yes |
| MU300 pages (dashboard, Cellular, VPN, Power, CPU, Languages, Packages, Terminal) | - | yes |
| Theme | LuCI's default | Aurora (Bootstrap stays installed) |
| IPv6 from the carrier | prefix extension | relayed (router advertisements and NAT66) |
| Magisk zip | yes | yes (since v2026.10.18) |
Pick it at install ("Which OpenWrt?" -> 2, or MU300_OPENWRT=luci), or switch an installed device with
sudo mu300-os openwrt-luci and reboot (the system must be installed).
- Status dashboard: live radio readings (signal, bands, cells, temperatures), the operator's name, the mobile data state and the current download and upload speed, every second; the Wi-Fi clients with their speeds, connected time, name and address; the carrier's DNS servers and the number of connections; on the U30 Air also the battery: level, whether it charges, and the power in watts. While the modem is busy the page keeps its last readings and says how old they are. The home page also has Switch to Android and Lock Linux (see Going Back to Android).
- Cellular > Network locks: network mode, band, cell and EN-DC locks that persist across reboots and are replayed at boot. Reset all to automatic clears them. Locks live in the modem, so they also apply in Android.
- Cellular > SMS: read, send and delete messages (see SMS for the one rule to remember).
- Cellular > SMS forwarding: pass incoming messages on to a webhook, a Telegram chat or another phone (see SMS).
-
Cellular > Data usage: mobile data per day and per billing cycle, with a reset day and a monthly cap
(
mu300-traffic, see Mobile Data and APN). - Cellular > AT terminal: guarded AT commands over the same channel the system uses. A command that scans, changes the radio, the APN or the SIM, or writes a setting that persists into Android, is explained first and sent only after a click; a network scan runs in the background and the page follows it.
- VPN (a menu of its own, with the VPN module v2): Overview (state, active profile, engine, tunnel, uptime, live rates, the exit IP behind a button, Start/Stop/Restart, the kill switch and IPv6 behind a confirmation), Profiles (add from a share link, pasted text, a file or a URL; test the latency; rename, show and edit the config, delete), Subscriptions (a URL that yields profiles, refreshed by hand or every 6 to 168 hours), Engines (Xray, sing-box, mihomo, dae: install, update, remove; online or from an uploaded tarball checked against the module's release), Settings (kill switch, IPv6, LAN ranges that bypass the tunnel, Tailscale, DNS, the per-profile options) and Logs. Without the module every page offers to install it.
-
Cellular > TTL: a fixed TTL for mobile data (
mu300-ttl). - Cellular > Device management: USB role (device or host), the USB network mode (NCM, ECM or RNDIS, applied at the next boot), and host-mode adapters that can join the LAN bridge.
- Cellular > Adapter settings: how the panel reaches the modem (AT backend, serial port, custom adapter).
- System > Languages: interface language, and the lang extra.
- System > Power: the active power profile and why (in your language), battery, power source and the charger's input current, the idle settings of the three profiles, the saver threshold and the charge limit (0-100 %, U30 Air).
-
System > CPU: the CPU profile: saving, balanced (the default) or performance (
mu300-cpu). It never touches the voltage, and the thermal protection stays in charge in every profile. Below it, read only, the kernel's thermal zones: temperatures, trip points and the cooling devices bound to them with their current state (on the mainline kernels the stocksoc-thmzone, 70/85 °C passive and 110 °C critical, throttles the three clusters at 85 °C). - System > Packages after an update: the packages you had installed yourself and what the update did with them (see Updating).
-
System > Terminal: a root shell in the browser (ttyd). It listens on the LAN
address only (port 7681; the cellular side never reaches it) and opens a shell only for a one-time token the page
gets for your logged-in panel session, so there is no second password to guess. It closes after 15 minutes without
activity (
uci set ttyd.mu300.idle=<seconds>; 0 never). A panel opened over https opens it in a tab of its own. Terminal settings is ttyd's own page;enable 0there removes the terminal.
Since v2026.10.20 one stuck AT command no longer takes the panel down: every modem read has a deadline, the pages send their calls one at a time and back off after failures, and the Device page keeps a log of the panel's recent modem operations (names and timings only). On OpenWrt an AT command takes about 0.13 s instead of a full second.
Ubuntu has no LuCI, but it can have Cockpit, Ubuntu's own web console (terminal, logs, services, networking, storage, accounts), with an MU300 page: the mobile network (operator, technology, registration, signal), mobile data on/off, data usage and live rates, battery and temperatures, SMS, the VPN (on/off, profiles), the CPU profile and power state, the hotspot's name and password, joining a Wi-Fi network, and updates. Network locks stay a feature of the OpenWrt panel.
sudo mu300-extra install panel # Cockpit from Ubuntu's archive (about 12 MB)
sudo mu300-extra install panel --from mu300-extra-panel-offline.tar.gz # offline: the release's file, Cockpit inside
sudo mu300-extra remove panelThe installer asks about it too (default no). Then open https://192.168.77.1:9090 (U30 Air: .78.1), accept
Cockpit's own certificate and log in as ubuntu; "Turn on administrative access" for the pages that need root.
Cockpit listens on the LAN only (USB and the hotspot), the firewall closes it to the cellular side anyway, root cannot
log in, and a session ends after 15 minutes idle. In English, Turkish and Chinese.
Both OpenWrt systems speak English, Turkish and Simplified Chinese out of the box. The interface starts in
English: switch under System -> System -> Language and Style, or on openwrt-luci under System -> Languages. An update
keeps your choice.
The lang extra (about 2 MB) adds LuCI in 40 more languages and the panel in 29 of them:
mu300-extra install lang # from the release of this system
MU300_EXTRA_FILE=/tmp/mu300-extra-lang.tar.gz mu300-extra install lang # from a file, offline
mu300-extra lang # which languages are offered
mu300-extra remove langThe panel's translations other than Turkish and Chinese are machine (AI) translations; corrections are welcome (see Contributing).
The panel is the work of kanoqwq (kanoqwq/mu300-linux, branch
clean-tf-7.2), ported here with the translations rewritten as standard LuCI catalogs. The theme is
Aurora by eamonxg. The app's own notes:
openwrt/luci-app-mu300/README.md.
- Never
sysupgradeor flash OpenWrt firmware images. -
apk upgradeis fine, except thekernelandkmod-*packages. - On kernel 5.4, a firewall change saved in LuCI may need
nft delete flowtable inet fw4 ft; fw4 reload(or a reboot) on older releases; v2026.10.17 fixedfw4 reload/restartwith flow offloading on 5.4.
MU300 Linux is an experimental hobby project with no warranty of any kind. Not endorsed by ZTE, Unisoc or any
operator. · Website · Source ·
Issues · Telegram channel · This wiki is kept in the
wiki/ folder of the repository; corrections go there as pull requests.
Getting started
Using it
Keeping it running
Reference
Elsewhere