Hey can u provide the driver for the 4 lane imx415 module which can support 4k@60
For axon.
Okay, working on it.
Will update as check completes.
Could you send on which application you will run camera or send the command that you are going to use for your application !?
ffplay, gst-launch-1.0 etc.
I will using it with gstreamer and mediamtx
ffmpeg as well
More i will send later
run.sh (781 Bytes)
- Download in Axon.
- Give permission
sudo chmod +x ./run.sh sudo ./run.sh- You will find one overlays named as below :
Enable 8.3MP Camera (IMX415) on CSI0 4lane Alpha Axon V0.3
Let us know.
Thanks,
Actually im out of town so will test it next week.
In the mean time if u have any update of the current driver please share that as well
IMX415 @ CSI0 — 60 fps driver-mode report
Generated against: Vicharak Axon, kernel 6.1.75-axon (Ubuntu 24.04.4) Date: 2026-08-15 Audience: Vicharak support / kernel team Severity: Driver feature gap (not a hardware fault)
1. TL;DR
The imx415 driver shipped in 6.1.75-axon (v00.01.08) only exposes 2 sensor modes, and both are hard-capped at 30 fps. The IMX415 sensor itself supports 4K@60 (via 2-DOL HDR), 1080p@60 (via 2×2 binning), and other high-rate modes — these are missing from the driver. The fix is to backport the full mode table from the upstream Rockchip BSP imx415.c (or mainline drivers/media/i2c/imx415.c). The DT binding sony,imx415 does not need to change.
2. What the driver supports today (current state)
| Item | Value | Evidence |
|---|---|---|
| Sensor detected | IMX415, 4-lane MIPI | dmesg: imx415 1-0037: Detected IMX415 image sensor + detect imx415 lane 4 |
| I²C address | 0x37 on i2c-1 |
i2c_dev.txt |
| Driver version | 00.01.08 (builtin) |
dmesg: imx415 1-0037: driver version: 00.01.08 |
| DT node | &i2c0 (fea90000) → cam2-imx415@37 |
dmesg_imx.txt |
| MIPI route | sensor → rockchip-csi2-dphy0 → csi2-dphy0-hw@fedc0000 → rkcif-mipi-lvds2 → rkisp0-vir2 |
media_topology.txt |
| Link-freq menu | 5 entries: 297 / 446 / 743 / 891 / 1188 MHz per lane | v4l2_subdev_all.txt |
| Medibus codes | SGBRG10_1X10 (0x300e) + SGBRG12_1X12 (0x3010) |
v4l2_mbus_codes.txt |
| Frame sizes exposed (10bpp) | only 3864×2192 | v4l2_framesizes.txt |
| Frame sizes exposed (12bpp) | none (empty enum) | v4l2_framesizes.txt |
| Max framerate exposed | 30 fps (20 fps at 297 MHz) | v4l2_intervals.txt |
| Driver mode-table entries used | only cur_best_fit(0) under normal operation |
dmesg_modes_unique.txt |
| HDR modes exposed | none (hdr: 0 only) |
dmesg_modes_unique.txt |
| Binned / windowed modes | none | v4l2_framesizes.txt |
The full set of v4l2-ctl evidence is in v4l2_*.txt. The pipeline topology is in media_topology.txt.
3. What we need (target state)
The IMX415 datasheet supports these modes on a 4-lane MIPI CSI-2 D-PHY:
| # | Mode | Resolution | BPP | Path | Max FPS | Driver source for the mode table |
|---|---|---|---|---|---|---|
| 1 | Linear full | 3864×2192 | 10 / 12 | linear | 30 | ✓ already present (mode 0) |
| 2 | 2-DOL HDR full | 3864×2192 | 10 | hdr combine | 60 | ✗ missing — needs cur_best_fit(N) for hdr: 1 |
| 3 | 2×2 binned | 1932×1090 | 10 | binning | 60 | ✗ missing (driver only has 1944×1097@12b linear at 30) |
| 4 | 2×2 binned HDR | 1932×1090 | 10 | binning + hdr | 60 | ✗ missing |
| 5 | Windowed / cropped | 1920×1080, 1280×720, 1280×960, etc. | 10 | ROI | 60+ | ✗ missing |
| 6 | HDR windowed | 1920×1080 | 10 | ROI + hdr | 60 | ✗ missing |
The reference implementations are:
- Upstream Linux:
drivers/media/i2c/imx415.cat kernel.org — currently exposes 8 modes including all of the above. - Rockchip downstream BSP:
drivers/media/i2c/imx415.cinrk3588-linux— exposes the same mode table withmipi_freq_idxcorrectly mapped to the 5 link-freq menu already on the Axon.
4. Side-by-side: current vs. required mode coverage
| Resolution | BPP | Current driver | Needed (per IMX415 datasheet) | 4K60 path? |
|---|---|---|---|---|
| 3864×2192 | 10 | 30 fps linear | n/a (this IS the 4K frame) | |
| 3864×2192 | 12 | 20 / 30 fps linear | n/a | |
| 3864×2192 (HDR) | 10 | hdr: 1) |
60 fps 2-DOL HDR | |
| 1932×1090 | 10 | 60 fps 2×2 binned | n/a (1080p) | |
| 1944×1097 | 12 | only at 30 fps | n/a | |
| 1920×1080 | 10 | 60 fps windowed | n/a (1080p) | |
| 1280×720 | 10 | 60+ fps windowed | n/a | |
| 1280×960, etc. | 10 | 60 fps windowed | n/a |
The 297/446/743/891/1188 MHz link-freq menu is already on the Axon and has enough bandwidth headroom (1188 MHz × 4 lanes = 4.752 Gbps) for 1080p@60 and 4K@60 in HDR. The driver simply never references any output configuration that would use that bandwidth at 60 fps.
5. Live measurement (sensor under 30 fps linear)
| Probe | Result | Interpretation |
|---|---|---|
v4l2-ctl -d /dev/video11 --stream-mmap=4 --stream-count=90 |
30.00 fps (see earlier run in conversation) |
Sensor delivers exactly 30 fps in linear mode, as expected |
v4l2-ctl --set-ctrl link_frequency=4 (max 1188 MHz) |
Still 30 fps reported in ENUM | Mode table cap, not bandwidth |
v4l2-ctl --set-ctrl vertical_blanking=46 (min) |
Still 30 fps reported in ENUM | Same — min VTS still > required VTS for 60 fps |
| Force 1944×1097@12bpp + max lf + min vblanking | Still 30 fps in ENUM | Mode table is the cap, not the sensor |
6. Repro steps for the support team
# 1) Show sensor detection (4 lanes confirmed)
dmesg | grep imx415
# 2) Show only 1 frame size is exposed
v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-framesizes pad=0,stream=0,code=0x300e
# -> "Size Range: 3864x2192 - 3864x2192" (4 times, one per link-freq slot)
# 3) Show only 20/30 fps are exposed, never 60
v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-frameintervals \
pad=0,stream=0,width=3864,height=2192,code=0x300e
# -> "Interval: 0.033s (30.000 fps)" and "0.050s (20.000 fps)" only
# 4) Show only 1 driver mode (cur_best_fit(0)) is ever used
# (after letting a few seconds of operation pass)
dmesg | grep cur_best_fit | sort -u
# -> only "cur_best_fit(0)" — never 1, 2, 3, 4, 5, 6, 7
7. Why this is a driver bug, not a hardware issue
- The part is detected as a genuine IMX415 on 4 lanes (
dmesg: Detected IMX415 image sensor+detect imx415 lane 4). - The Sony IMX415 datasheet supports 4K@60 (2-DOL HDR) and 1080p@60 (2×2 binning / windowed) — the silicon can do it.
- The driver exposes a 5-step
link_frequencymenu (up to 1188 MHz/lane = 4.752 Gbps total), which is enough MIPI bandwidth for both 1080p@60 and 4K@60 in HDR. - The driver’s own
pixel_ratecontrol (read-only 356.8 MHz for mode 0) is computed from the mode table, not from the sensor — so the “max 30 fps” ceiling is a driver-side decision, not a sensor-side limit. - Manual attempts to force 60 fps (max link-freq, min vblanking, mode change to 1944×1097@12b) all return 30 fps in
ENUM_FRAMEINTERVAL— the driver itself rejects them.
8. Suggested fix
Two options, in order of preference:
Option A — Vendor backport (recommended): Pull the latest imx415.c from Rockchip’s rk3588-linux BSP. It exposes the same DT binding (sony,imx415) and the same link_frequency menu already on the Axon, but with the full mode table including 2-DOL HDR, 2×2 binning, and windowed modes. No DT changes needed.
Option B — Upstream backport: Replace with mainline drivers/media/i2c/imx415.c from kernel.org. Same binding, slightly different control IDs (exposure / analogue_gain / link_frequency) — fully backward compatible with the existing DT.
Option C — Minimal patch: If neither full backport is feasible right now, the minimum patch to add support for 1080p@60 is ~20 lines: add 2 entries to the driver’s supported_modes[] table for 1932×1090 @ 10bpp linear and 1920×1080 @ 10bpp linear, both with mipi_freq_idx = 4 (1188 MHz). A reference diff is available on request.
9. Workaround until the fix lands
We’re using the 3864×2192 @ 30 fps linear mode, which is the only mode the driver exposes. This is confirmed working at 30.00 fps via:
v4l2-ctl -d /dev/video11 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 \
--stream-mmap=4 --stream-count=90 --stream-poll
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
For higher framerates we’d need a kernel rebuild with the upstream imx415.c.
10. Files in this attachment bundle
| File | What it contains |
|---|---|
IMX415_60fps_Driver_Report.md |
This document |
system_info.txt |
uname -a and /etc/os-release |
dmesg_imx.txt |
`dmesg |
dmesg_modes_unique.txt |
Unique cur_best_fit entries the driver ever logs |
dmesg_full.txt |
First 100 lines of dmesg for context |
media_topology.txt |
media-ctl -d /dev/media0 -p (full pipeline graph) |
v4l2_subdev_all.txt |
v4l2-ctl -d /dev/v4l-subdev2 --all (full control list) |
v4l2_framesizes.txt |
ENUM_FRAME_SIZE for 10bpp + 12bpp |
v4l2_intervals.txt |
ENUM_FRAME_INTERVAL for 3864×2192 |
v4l2_mbus_codes.txt |
ENUM_MBUS_CODE |
v4l2_devices.txt |
All V4L2 devices on the system |
v4l2_video11.txt |
ISP mainpath format list + current fmt |
v4l2_video0.txt |
CIF raw path format list + current fmt |
v4l2_fps_measured.txt |
Live FPS measurement (90 frames) |
modinfo_imx.txt |
modinfo imx415 (driver build info) |
i2c_dev.txt |
I²C device tree for the sensor |
imx415_60fps_evidence.zip (11.2 KB)
Thanks for sharing the report.
We checked the current mainline driver as well. According to our review and available references, mainline also does not support 4K@60 on IMX415. It is quite different from the Rockchip kernel driver, but in this case the difference does not help for your requirement; mainline basically supports full resolution around 30 fps and does not expose the HDR/binning/windowed high-fps modes needed for 4K@60.
So the issue is not that hardware is failing. Camera detection, 4-lane MIPI, and 4K@30 are working fine. The missing part is the driver mode table / high-speed MIPI configuration for 60 fps.
We also checked other RK3588 implementations. Some boards are able to run IMX415 4K@60, but only after customizing the imx415 driver (like adding 1782 Mbps/lane mode, updated register sequence, and 4K@60 mode (3864x2192, 10-bit linear, 60 fps)). There is no ready-made patch for Axon that we can directly apply.
We will figure out the required changes and try to implement this on our side. Will update you as the check/implementation completes.
Thanks.
U can give me some pilots with changing speeds and i can test them for u
This will take time, since many other request are pending, maybe we can guide you how to do it and you can try on your own, we can actively help.
Sure please guide for something on how to start at least
Hello, I’ve compiled everything I’ve found regarding custom driver support for 4K@60fps in the following guide. You can try it here:
IMX415 4K@60 on Axon (RK3588) — Step-by-Step Guide
Target: 3864×2192 @ 60 fps (≈ 4K@60)
Platform: Vicharak Axon, kernel 6.1.x-axon
Official kernel build guide: Build Vicharak Kernel from source | Vicharak
Important notes before starting
- Current Axon driver supports 4K@30 only — this needs a kernel driver change, not just an overlay.
- Mainline
imx415.cwill NOT help — use the Rockchip-style driver in Vicharak kernel. - 4-lane MIPI is mandatory — enable overlay:
Enable 8.3MP Camera (IMX415) on CSI0 4lane - Backup your system before kernel changes.
Phase 0 — Confirm baseline (4K@30 working)
Step 0.1 — Verify sensor
dmesg | grep imx415
Expected: Detected IMX415, lane 4, driver version shown.
Step 0.2 — Check pipeline
media-ctl -d /dev/media0 -p
Step 0.3 — Confirm max fps today is 30
v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-frameintervals \
pad=0,stream=0,width=3864,height=2192,code=0x300e
Step 0.4 — Measure live fps
v4l2-ctl -d /dev/video11 --set-fmt-video=width=3840,height=2160,pixelformat=NV12 \
--stream-mmap=4 --stream-count=90 --stream-poll
Expected today: ~30.00 fps
Phase 1 — Download kernel source (Vicharak official method)
Follow Vicharak kernel guide:
https://docs.vicharak.in/vicharak_sbcs/axon/axon-linux/linux-development-guide/linux-kernel/
Step 1.1 — Install build dependencies
On Ubuntu 20.04+ / Debian 11+ (host PC or on Axon itself):
sudo apt-get update
sudo apt-get install build-essential python3 python-is-python3 libssl-dev \
git-core gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler \
gcc-aarch64-linux-gnu mtools parted llvm clang pv bc bison flex gawk
Step 1.2 — Clone Vicharak kernel (use branch 6.1)
git clone https://github.com/vicharak-in/rockchip-linux-kernel -b 6.1 --recursive
cd rockchip-linux-kernel
This is the same repo and branch mentioned in the official Vicharak doc.
Step 1.3 — Initialize build script (optional but recommended)
git submodule update --init
Phase 2 — Patch IMX415 driver for 4K@60
Driver file:
drivers/media/i2c/imx415.c
Backup first:
cp drivers/media/i2c/imx415.c drivers/media/i2c/imx415.c.backup
Step 2.1 — What to add
| Item | Value |
|---|---|
| Resolution | 3864 × 2192 |
| Format | RAW10 (SGBRG10_1X10) |
| FPS | 60 (10000/600000) |
| HDR | OFF (NO_HDR) |
| MIPI | 4 lanes |
| Lane rate | 1782 Mbps/lane |
Stock mode uses 891 Mbps/lane → 30 fps.
4K@60 needs 1782 Mbps/lane register set from Sony datasheet / community patches.
Step 2.2 — Add 1782M register table
Add register sequence, for example:
static __maybe_unused const struct regval imx415_linear_10bit_3864x2192_1782M_regs[] = {
/* 4-lane RAW10, 1782Mbps, 60fps - from reference patch */
{0x3002, 0x00},
{0x3008, 0x7F},
{0x300A, 0x5B},
{0x3031, 0x00},
{0x3032, 0x00},
/* ... full list from reference ... */
{REG_NULL, 0x00},
};
Reference patch:
Step 2.3 — Update link frequency table (if needed)
#define MIPI_FREQ_1782M 1782000000
static const s64 link_freq_items[] = {
MIPI_FREQ_297M,
MIPI_FREQ_446M,
MIPI_FREQ_743M,
MIPI_FREQ_891M,
MIPI_FREQ_1188M,
MIPI_FREQ_1782M, /* add if missing */
};
Step 2.4 — Add 4K@60 mode in supported_modes[]
{
.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
.width = 3864,
.height = 2192,
.max_fps = {
.numerator = 10000,
.denominator = 600000,
},
.exp_def = 0x08ca - 0x08,
.hts_def = 0x0226 * IMX415_4LANES * 4,
.vts_def = 0x08ca,
.global_reg_list = NULL,
.reg_list = imx415_linear_10bit_3864x2192_1782M_regs,
.hdr_mode = NO_HDR,
.mipi_freq_idx = 5, /* verify index matches 1782M entry */
.bpp = 10,
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
.xvclk = IMX415_XVCLK_FREQ_37M,
},
Important: mipi_freq_idx, hts_def, and vts_def must match the register table. Wrong values cause black screen or stuck at 30 fps.
Phase 3 — Build kernel (Vicharak official method)
Doc: Build Vicharak Kernel from source | Vicharak
Method A — Vicharak build script (recommended)
cd rockchip-linux-kernel
git submodule update --init
./vicharak/build.sh lunch
# Select: 3) rk3588_axon.mk
./vicharak/build.sh kernel
Success output files:
out/arch/arm64/boot/Image
out/arch/arm64/boot/dts/rockchip/rk3588-axon-linux.dtb
out/modules_rk3588_axon/lib/modules/
Method B — Manual build
cd rockchip-linux-kernel
export CROSS_COMPILE=aarch64-linux-gnu-
make O=out ARCH=arm64 rockchip_linux_defconfig
./scripts/kconfig/merge_config.sh -m out/.config arch/arm64/configs/rk3588_axon.config
make O=out ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
Note: If building natively on Axon, you can skip CROSS_COMPILE.
Build modules (if needed):
make O=out ARCH=arm64 modules_install INSTALL_MOD_PATH=modules -j$(nproc)
Warning from Vicharak doc: If kernel source has local changes, version may become 6.1.75+ instead of 6.1.75. Always update both Image and matching modules together.
Phase 4 — Install built kernel on Axon board
Doc section: How to flash compiled Linux Kernel
Step 4.1 — Check current kernel on board
On Axon:
uname -r
Example: 6.1.75-axon
Step 4.2 — Backup current kernel on board
sudo mv /boot/Image-6.1.75-axon /boot/bak-Image-6.1.75-axon
Replace 6.1.75-axon with your uname -r output.
Step 4.3 — Copy built files to board
If built on host PC:
scp out/arch/arm64/boot/Image <user>@<device-ip>:~/
scp out/arch/arm64/boot/dts/rockchip/rk3588-axon-linux.dtb <user>@<device-ip>:~/
scp -r out/arch/arm64/boot/dts/rockchip/overlays <user>@<device-ip>:~/
scp out/modules_rk3588_axon.tar.gz <user>@<device-ip>:~/
If built directly on Axon, use paths under out/ locally.
Step 4.4 — Flash kernel on board
On Axon:
sudo cp ~/Image /boot/Image-$(uname -r)
sudo cp ~/rk3588-axon-linux.dtb /boot/rk3588-axon-linux-$(uname -r).dtb
sudo cp -r ~/overlays /boot/overlays-$(uname -r)/
Install modules (if packaged):
sudo tar -xvf modules_rk3588_axon.tar.gz -C /
Step 4.5 — Reboot
sudo reboot
Phase 5 — Validate 4K@60
Step 5.1 — Check frame intervals
v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-frameintervals \
pad=0,stream=0,width=3864,height=2192,code=0x300e
Success: 60.000 fps or 10000/600000
Step 5.2 — Check media graph
media-ctl -d /dev/media0 -p
Look for: 3864x2192@10000/600000
Step 5.3 — Check MIPI rate in dmesg
dmesg | grep -E "imx415|data_rate"
Success: data_rate_mbps 1782 (approx)
Step 5.4 — Measure fps
grep '' /sys/class/video4linux/video*/name | grep mainpath
v4l2-ctl -d /dev/video11 --set-fmt-video=width=3840,height=2160,pixelformat=NV12 \
--stream-mmap=4 --stream-count=120 --stream-skip=30 --stream-poll
Success: 60.00 fps
Phase 6 — Test GStreamer / ffmpeg / MediaMTX
GStreamer
gst-launch-1.0 v4l2src device=/dev/video11 ! \
video/x-raw,format=NV12,width=3840,height=2160,framerate=60/1 ! \
fpsdisplaysink video-sink=autovideosink sync=false
ffmpeg
ffmpeg -f v4l2 -input_format nv12 -video_size 3840x2160 -framerate 60 \
-i /dev/video11 -t 10 -y test_4k60.nv12
Then integrate with MediaMTX for streaming.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Still 30 fps | Mode not selected | Check supported_modes[] and default mode |
| Black screen | Wrong regs / mipi index | Match 1782M table + mipi_freq_idx |
| MIPI CRC errors | Lane rate mismatch | Fix link freq + DPHY timing |
| Sensor 60, ISP 30 | Pipeline limit | Check rkisp load / output node |
| Boot failure after flash | Image/modules mismatch | Flash Image + modules together, restore backup if needed |
To restore backup kernel:
sudo cp /boot/bak-Image-6.1.75-axon /boot/Image-6.1.75-axon
sudo reboot
Reference links
Vicharak kernel build (official):
https://docs.vicharak.in/vicharak_sbcs/axon/axon-linux/linux-development-guide/linux-kernel/
Kernel source:
git clone https://github.com/vicharak-in/rockchip-linux-kernel -b 6.1 --recursive
4K@60 driver reference patch:
Rockchip Toybrick 4K@60 thread:
LubanCat RK3588 guide:
https://www.171host.com/762253.html
Quick checklist
[ ] Camera works at 4K@30 on Axon (4-lane overlay enabled)
[ ] Cloned kernel: git clone ... rockchip-linux-kernel -b 6.1 --recursive
[ ] Patched drivers/media/i2c/imx415.c (1782M regs + 60fps mode)
[ ] Built kernel using Vicharak build script or manual method
[ ] Backed up old kernel on board
[ ] Flashed new Image + dtb + modules
[ ] Rebooted and verified uname -r
[ ] v4l2 shows 60fps interval
[ ] video11 measures ~60.00 fps
[ ] GStreamer / ffmpeg / MediaMTX tested
Summary
| Step | Action |
|---|---|
| 1 | Confirm 4K@30 baseline |
| 2 | Clone Vicharak kernel 6.1 branch |
| 3 | Patch imx415.c for 4K@60 |
| 4 | Build kernel (Vicharak script or manual) |
| 5 | Backup and flash Image + dtb + modules on Axon |
| 6 | Reboot and validate 60 fps |
| 7 | Test GStreamer / ffmpeg / MediaMTX |
Bottom line: Use Vicharak kernel 6.1 repo, patch imx415.c, build and flash per official Vicharak kernel guide. Overlay alone cannot enable 4K@60.
Thanks for the guide i will try all of this and keep u updated on any issue i face
Please dont close this thread for now
test.zip (8.0 KB)
please try this i have included a patch which needs to be installed on imx415.c please review and test.
also i think overlay i created is wrong so please check that as well.
Sure, I’ll apply and test the patch and also review the overlay. and update you.
Any update regarding the issue?
Hi Namit, I have reviewed patch and overlay, no overlay change is needed for 4K@60: please use the same official setup we shared with run.sh, i.e., enable “Enable 8.3MP Camera (IMX415) on CSI0 4lane Alpha Axon V0.3”, which already brings up IMX415 on I2C1 @ 0x37 with 4-lane MIPI and the full pipeline path. 4K@60 is added only in the driver (1782 Mbps/lane + 60 fps mode in imx415.c), not via a new overlay., so your custom overlay (37.125 MHz clock, fragment layout, explicit NO_HDR, etc.) repeats what the official overlay already covers and is not required for this patch.
Your driver patch looks correct; apply it to the Vicharak kernel (Build Vicharak Kernel from source | Vicharak), rebuild and flash per the Vicharak kernel guide, keep the official overlay enabled, reboot, and test with the steps shared earlier (dmesg, media-ctl, v4l2-ctl frame intervals, and ~60 fps on /dev/video11, then GStreamer/ffmpeg/MediaMTX).
We’re currently at full capacity, so we’re unable to test this fully., please test on your end and share the exact logs or any issues you encounter.
run.sh (781 Bytes)
- Download on Axon.
- Give permission:
sudo chmod +x ./run.sh - Run:
sudo ./run.sh - You will find an overlay named as below:
Enable 8.3MP Camera (IMX415) on CSI0 4lane Alpha Axon V0.3
Please can u give me the kernal as im having some trouble
here is deb package of kernel with your driver patch applied:
linux-image-6.1.75-axon_20260831-axon_arm64.deb
follow this to install it on Axon:
https://docs.vicharak.in/vicharak_sbcs/axon/axon-linux/linux-development-guide/linux-kernel/#how-to-flash-compiled-linux-kernel
after successfully installed, then install that overlay with run.sh again. enable it and reboot and then test it.