Fast mode

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

  1. 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.

  2. 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.

  3. Turn on Developer Mode

    SettingsPrivacy & SecurityDeveloper Mode If you installed with SideStore it is on already.

  4. 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.

  5. Connect LocalDevVPN

    Open LocalDevVPN and tap Connect. It needs to be connected whenever you start LinPad in fast mode.

Start LinPad in fast mode

  1. 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.

  2. 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

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×.