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