Fast mode.
Fast mode runs Linux programs as native ARM64 code instead of interpreting them: about 4.8× faster on average in our benchmarks on an M4 Mac. It is optional, and it needs a free helper app called StikDebug.
Why a helper? iPadOS lets an app create native code only while a debugger is attached to it. StikDebug provides that debugger on the iPad itself. LinPad contains no debugger; it only asks StikDebug to attach, through StikDebug's stikdebug://enable-jit link. Without it, everything works, slower, in Compatibility mode.
One-time setup
Install StikDebug
Get it from stikdebug.xyz or its GitHub releases, and install it with SideStore or AltStore like LinPad. It counts as one of a free Apple ID's 3 sideloaded apps.
Install LocalDevVPN
From the App Store. If you installed with SideStore you have it already. It is a loopback VPN: it lets StikDebug reach the iPad's own debugging service, and no traffic leaves your iPad. It uses the iPad's VPN slot, so another VPN cannot be on at the same time.
Turn on Developer Mode
SettingsPrivacy & SecurityDeveloper Mode If you installed with SideStore it is on already.
Give StikDebug a pairing file
A pairing file lets StikDebug talk to your iPad. Make it once on a computer, with the iPad unlocked and connected by cable: iloader can create it, as can JitterbugPair. Import it in StikDebug following StikDebug's instructions.
Connect LocalDevVPN
Open LocalDevVPN and tap Connect. It needs to be connected whenever you start LinPad in fast mode.
Start LinPad in fast mode
Let LinPad ask (the default)
Open LinPad as usual. Its boot screen says “Enabling fast mode via StikDebug…”, StikDebug comes to the front for a moment, then LinPad continues. Settings › Fast Mode is set to “Automatic (StikDebug)” unless you changed it.
Or start it from StikDebug
Quit LinPad, open StikDebug, tap Enable JIT and pick “Linux for iPad”.
LinPad's own checklist, in Settings › Fast Mode, checks each step it can see: that StikDebug and LocalDevVPN are installed, that the VPN is connected and that your install lets a debugger attach. It cannot see the pairing file. Test now asks StikDebug for fast mode and times a short loop in Linux.
How to tell it is on
- The boot screen and Quick Settings show Performance: Native JIT ✓.
- Settings › Fast Mode › Status says On, or “On for programs started from now on” after a retry.
- Off, they say Compatibility mode.
Troubleshooting
LinPad starts in Compatibility mode and says “Fast mode is off”
LinPad waits about 20 seconds for StikDebug, then boots anyway. Check that LocalDevVPN is connected and that StikDebug opens without an error, then tap Retry fast mode in the message. Programs you start after that use fast mode; restart ones that were already open.
StikDebug shows a connection or heartbeat error
LocalDevVPN is not connected, or Wi-Fi is off. Connect both and try again.
It worked before, and stopped after an iPadOS update
Pairing files can stop working after an update or a reset. Make a new one on a computer with the iPad unlocked, and import it in StikDebug again.
StikDebug does not open at all when LinPad starts
Settings › Fast Mode › Status says why: fast mode set to Off, StikDebug not installed, or an install that does not allow a debugger. Reinstall LinPad with SideStore, AltStore, iloader or Xcode, which sign it so a debugger may attach.
LinPad does not launch from StikDebug
Refresh both apps in SideStore if either has expired, connect LocalDevVPN, and pick “Linux for iPad” in StikDebug's app list again.
Fast mode has not been benchmarked on an iPad yet. The 4.8× figure is the geometric mean of our benchmarks on an M4 Mac with the command-line build; Node.js was about 12× faster, tsc 5.4×, vite build 3.5×.