Repository navigation
Home
In one sentence: this project puts a real Linux system (Ubuntu or OpenWrt) on the ZTE F50 / MU300 and the ZTE U30 Air pocket 5G hotspots, next to Android, so the little box becomes a Linux router and server with its own 5G modem.
Your hotspot is a tiny computer. Out of the box it runs Android, hidden behind a web page, and does one job: share mobile internet. This project adds a second system, Linux, in a part of the storage Android does not use. When the device starts, it starts Linux. If Linux ever fails to start a few times in a row, the device quietly goes back to Android on its own. Android is never removed, and one command brings it back for good.
Think of it as a Raspberry Pi that already has a 5G modem, a Wi-Fi access point and 32 GB of storage inside.
| If you want to… | Read |
|---|---|
| understand what you need and install it | Installation |
| pick between Ubuntu, OpenWrt and OpenWrt with the control panel | Choosing a System |
| pick a kernel (5.4, 6.18 or 7.2) | Kernels |
| get mobile data working, set an APN | Mobile Data and APN |
| change the hotspot, or join another Wi-Fi | Wi-Fi Hotspot and Client |
| read and send text messages | SMS |
| route everything through a VPN | VPN |
| use the web control panel | Control Panel (LuCI) |
| update, or roll an update back | Updating |
| go back to Android, or remove Linux | Going Back to Android |
| fix something | Troubleshooting and FAQ |
| look up a word | Glossary |
| know how the hardware behaves | Hardware Notes |
| build it yourself or help out | Building from Source, Contributing |
There is also an illustrated website with the same information for beginners, in English, Turkish and Chinese: https://kaandikec.com/mu300-linux/
| ZTE F50 / MU300 | ZTE U30 Air | |
|---|---|---|
| Chip | Unisoc T760 (UMS9620), board ums9620_2h10_feimao
|
the same |
| Power | USB only | battery (4050 mAh) |
| USB network address | 192.168.77.1 |
192.168.78.1 |
| SD card | yes: Linux can live on the card | no card slot |
The installer recognises which device it is talking to. The U30 Pro is a different chip (UMS9632) and is not supported. More in Hardware Notes.
You get: Ubuntu 24.04 or 26.04 LTS, or OpenWrt 25.12 (plain or with a control panel for the modem); three
kernels to choose from; 5G/LTE internet shared over Wi-Fi and USB; SSH, and adb over USB if you turn it on; Bluetooth;
SMS and USSD; an optional VPN module; a web panel on Ubuntu too (Cockpit with an MU300 page, optional); a
raspi-config-like menu called mu300-toolkit; automatic fallback to Android; updates on the device.
The release of 2026-10-21 (a prerelease first, promoted once a board has run it). Mostly fixes. What it changes, and where to read on:
-
F50: the internal SIM can be selected instead of the card in the slot:
mu300-sim select internal(or the SIM source field of the wan interface in LuCI), with that card's own APN. It takes effect at the next boot, the external card stays the default, and nothing is written to the modem or the SIM. docs/SIM-SELECTION.md - Kernel 5.4 no longer panics when a network namespace goes away (Docker containers, sandboxes; issue #103). Troubleshooting
-
The Wi-Fi driver can be unloaded on 6.18 and 7.2:
rmmod sprd_wlan_comboused to crash the device (issue #146). Troubleshooting -
Quieter logs: the Wi-Fi driver's routine lines (
sc2355_dump_survey,bssid not found,data len is...) are no longer errors indmesgandlogread, on every kernel (issue #140). Troubleshooting -
mu300-updateruns one at a time: a second run started meanwhile is refused and names the first one's pid. Updating - Kernels: 5.4 rebuilt with the two fixes above; 6.18.56 and 7.2.10 with rebuilt modules. Kernels
The release of 2026-10-20 (a prerelease first, promoted once a board has run it). What it adds, and where to read on:
-
Updates keep the packages you installed (
apk add,apt install): they come back at the first boot, with their settings and their services' state; the panel shows it under System > Packages after an update. Updating - The control panel gets a VPN section (Overview, Profiles, Subscriptions, Engines, Settings, Logs), System > Terminal (a root shell in the browser, LAN only), Wi-Fi clients with their speeds on the home page, the Power page's reasons in your language, and it no longer freezes when an AT command gets stuck: on OpenWrt an AT command now takes 0.13 s instead of a second. Control Panel (LuCI)
-
A web panel for Ubuntu: Cockpit with an MU300 page, as the
panelextra. Control Panel (LuCI) -
VPN module v2.0.0: a core plus engine extras (
vpn-xray,vpn-singbox,vpn-mihomo,vpn-dae), subscriptions, and an IPv6 guard so nothing leaks beside a tunnel that carries no IPv6. VPN - Kernels 6.18.56 and 7.2.10, with BTF and the eBPF hooks dae needs. Kernels
-
U30 Air: a charge limit of 0-100 % (
mu300-power charge-limit N), and faster charging on Type-C ports that offer 1.5 or 3 A (mainline kernels). Hardware Notes - The hotspot never lands on a DFS channel any more (it used to fail to start there). Wi-Fi Hotspot and Client
-
adb to Linux over USB (
mu300-usb adb on; off by default, your computer's key must be authorised). Installation - The installers copy the boot chain of Android's slot to the Linux slot after an Android update (issue #86). Installation
-
Hardening: the Android modem daemons run under their own account (
mu300vnd) and nothing in/devbelongs to the login user any more;sms deletesends only a message index to the modem. Hardware Notes, SMS
You lose: nothing that was there. Android on these boxes has no screen, no speaker and no HDMI either; all Linux takes is your last excuse for not having a 5G Linux server in your pocket. Installing it costs you nothing; not trying it costs you the server.
- Android stays. Only one of the two runs at a time, and a reboot switches between them.
- The hardware stays what it is, under either system: no screen output (HDMI over USB-C does not work), no speaker or microphone (voice calls with audio are work in progress), about 1.4 GB of the 2 GB RAM usable, because the modem keeps the rest.
This is an experimental hobby project. It is not a product, it has no support line and it comes with no warranty of any kind. Rooting and unlocking the device are not part of this project and are done at your own risk. Writing to a phone-class device can leave it unusable; keep a backup and do not install on a device you cannot afford to lose. Nothing here is endorsed by ZTE, Unisoc or any operator. Read the full notice in the README.
- Source code and README: https://github.com/dikeckaan/mu300-linux
- Releases (prebuilt images): https://github.com/dikeckaan/mu300-linux/releases
- VPN module: https://github.com/dikeckaan/mu300-linux-vpn
- Deep technical notes: docs/FINDINGS.md
- Issues: https://github.com/dikeckaan/mu300-linux/issues
MU300 Linux is an experimental hobby project with no warranty of any kind. Not endorsed by ZTE, Unisoc or any
operator. · Website · Source ·
Issues · 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