Category
Short deck for the post. Keep this aligned with the card summary on the tutorials landing page.
Introduction
The IQ9 EVK packs 8 Cortex-A78 cores at 1.9 GHz, 12 GB RAM, and 110 GB storage — powered by a single USB-C cable and easy to carry around. I was short of a local ARM build machine, and the IQ9 EVK was right there. So why not? This blog covers two things:- Local ARM build — using the IQ9 EVK itself as the ARM native build machine for mainline kernel
- Mainline kernel debugging — more importantly, the board runs what it builds, making it a self-contained platform for mainline kernel bring-up and debugging
1. Local ARM Build on IQ9 EVK
The IQ9 EVK ships with Qualcomm Linux (QLI 2.0) — a Yocto-based image designed for running prebuilt apps. It’s locked down by design: noapt-get, no opkg.
2. Mainline Kernel Debugging on IQ9 EVK
We only have one IQ9 EVK — no backup machine, no second board. The goal: debug mainline kernel without bricking the board, with a clean fallback to the release Ubuntu image.What we tried (and why it didn’t work)
a. kexec — the IQ9 watchdog kicks in and forces a reboot before the debug kernel can fully boot. b. fastboot boot — not supported on IQ9 yet, and requires a separate host machine anyway. c. GRUB menu with concatenated kernel + DTB — DTB couldn’t be passed through correctly this way.What worked: custom GRUB menu entry
Add a new GRUB entry pointing to the debug kernel and DTB:*Ubuntu_debug to boot into the mainline kernel.
Verify
- Boot into
Ubuntu_debugto test mainline kernel - Reboot → back to stable release automatically
- Iterate, fix, repeat

