rknn-toolkit2 2.3.2 Conversion Runs Natively on arm64 — and the Two Gotchas Nobody Documents
TL;DR
If you’ve read that Rockchip’s rknn-toolkit2 model converter “only runs on x86,” that
was true once and isn’t anymore. On version 2.3.2 the official aarch64 wheel
installs, imports, and converts an ONNX model to a .rknn end-to-end — I did it on a
plain arm64 Ubuntu 24.04 host (Python 3.12), no x86 anywhere, no cross-machine dance.
The conversion itself is boring, which is the point. What isn’t boring is the two things that stop you before you get there — both undocumented, both a fast dead end if you don’t know them:
pip install 'setuptools<81'. rknn-toolkit2 2.3.2 importspkg_resourcesat load; modern setuptools deleted it, sofrom rknn.api import RKNNblows up before you write a line of your own code.- Your output
.rknnwon’t match anyone else’s md5 — and that’s normal. rknn files aren’t byte-reproducible. If you “verify” a fresh conversion by diffing checksums against a reference, you’ll scare yourself for no reason. The real check is elsewhere.
The rest is the walk-through and the reasoning.