2026-02-28--The-Small-Device-Has-Eyes

a small device has eyes now.

well, it is actually the Anbernic RG40XXV1 that runs a modified ROCKNIX with Umfeld’s CaptureSDL capturing images from a very cheap webcam.

it runs really well :) one thing i noticed that ( at least this particular camera ) is a bit picky about the resolution. although it advertizes a wide range of different resolutions it would only properly work with 1280×720px ( with other sometimes failing silently, sometime complaining verbously ). what a small price to pay for finally adding an eye to a small device.

a bit on the technical background: ROCKNIX already mounts some USB device ( like keyboards and WiFi dongles ) but fails to recognize cameras. so, after a bit of experimentation, i managed to reconfigure the linux kernel so that it would properly recognize USB cameras ( i.e USB Video Class (UVC) ). this is what i did:

modifying kernel configurations to support UVC

the configuration needs to be handled per device. in this case i am using H700 which is the SoC of Anbernic RG40XXV:

bring up the configuration menu:

cd /mnt/rocknix/distribution # adapt as needed
make kconfig-menuconfig-H700
#make kconfig-menuconfig-RK3326

in the configuration enable the following options:

enable with `*`:
> Device Drivers > Multimedia support > Media driver > Media USB Adapters

enable with `M`:
> Device Drivers > Multimedia support > Media driver > Media USB Adapters > USB Video Class (UVC)
> Device Drivers > Multimedia support > Media driver > Media USB Adapters > GSPCA based webcams

is already enabled with `*`:
> Device Drivers > Multimedia support > Media core support > Video4Linux core

enable with `M`:
> Device Drivers > USB support > xHCI HCD (USB 3.0) support

enable with `*`:
> Device Drivers > USB support > USB announce new devices

configuration is saved to:

/mnt/rocknix/distribution/projects/ROCKNIX/devices/H700/linux//linux.aarch64.conf

add module loading ( THIS IS NOT TESTED!!! ):

mkdir -p /mnt/rocknix/distribution/projects/ROCKNIX/devices/H700/filesystem/etc/modules-load.d
echo "uvcvideo" > /mnt/rocknix/distribution/projects/ROCKNIX/devices/H700/filesystem/etc/modules-load.d/uvcvideo.conf

then rebuild.

after installation and boot check if module is loaded:

lsmod | grep uvc  # check if module is loaded
modprobe uvcvideo # if not load module manually
ls /dev/video*    # if camera is detected this should show `/dev/video...`

if you are interested in build ROCKNIX yourself you can find my forked and modified version2 at https://github.com/dennisppaul/distribution/tree/feature/sdl3

  1. i have not bothered yet to test this on other device e.g R36S. i reckon it should work the same way. with R36S and all its sibling, however, there is an issues: AFAIK they are not capable of handling USB hubs and therefore can only handle a single USB device. since they have no built in WiFi it is either WiFi or camera. again, this is not an unsolvable problem but not mine to address ATM. ↩

  2. added SDL3 and glm packages as well as UVC support ↩