Skip to content

Detection & Drivers

This page walks through everything Linux does when the Pengo HDMI Grabber is plugged in, and how to confirm everything is healthy.

Plug it in

Plug the included USB cable into a USB 3.0 port on your computer. The front blue LED on the grabber should illuminate immediately.

Within ~1 second, the kernel will enumerate the device, load the right modules, and create device nodes.

Confirm with lsusb

lsusb

You should see something like:

Bus 002 Device 003: ID 1e4e:701f Cubeternet Pengo HDMI Grabber

Two other devices (048d:8595 and 048d:8950, both ITE) may also appear — they're auxiliary chips inside the grabber. They use the generic USB hub driver and don't need anything special.

For verbose info (descriptors, endpoints, current configuration):

lsusb -v -d 1e4e:701f

Confirm with v4l2-ctl

v4l2-ctl is the standard tool for talking to V4L2 devices.

# Arch / Manjaro / CachyOS:
sudo pacman -S v4l-utils

# Debian / Ubuntu / Mint:
sudo apt install v4l-utils

Then list video devices:

v4l2-ctl --list-devices

Expected output:

Pengo HDMI Grabber: Pengo HDMI  (usb-0000:80:14.0-2.2):
        /dev/video0
        /dev/video1
        /dev/media0

Two /dev/videoN nodes is normal — the grabber exposes one for the main stream and one for metadata. Use /dev/video0 for everything.

Full probe of the device (formats, frame rates, controls):

v4l2-ctl --device=/dev/video0 --all

This gives you, among other things:

Driver name      : uvcvideo
Card type        : Pengo HDMI Grabber: Pengo HDMI
Driver version   : 7.2.2
Capabilities     : 0x84a00001
Format Video Capture:
    Width/Height      : 1920/1080
    Pixel Format      : 'YUYV' (YUYV 4:2:2)
    Bytes per Line    : 3840
    Size Image        : 4147200
Streaming Parameters Video Capture:
    Frames per second: 60.000 (60/1)

To see every resolution and pixel format the grabber advertises:

v4l2-ctl --device=/dev/video0 --list-formats-ext

Expected:

[0]: 'MJPG' (Motion-JPEG, compressed)
    Size: Discrete 1920x1080
        Interval: Discrete 0.017s (60.000 fps)
        Interval: Discrete 0.033s (30.000 fps)
[1]: 'YUYV' (YUYV 4:2:2)
    Size: Discrete 1920x1080
        Interval: Discrete 0.017s (60.000 fps)
        Interval: Discrete 0.033s (30.000 fps)

Which format should you pick?

  • MJPG (Motion-JPEG): compressed, lighter on USB bandwidth, reliable 1080p60. Default choice for recording and for AI vision pipelines.
  • YUYV (4:2:2 uncompressed): slightly better colour fidelity per frame but a 4147200-byte payload per 1080p frame, which can drop frames on marginal USB ports. Use it when you need every pixel exact and your USB port is solidly USB 3.0.

Confirm audio

arecord -l

Expected (your card numbers will differ):

card 1: Grabber [Pengo HDMI Grabber], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  subdevice #0: subdevice #0

Record 5 seconds of audio straight to disk to verify:

arecord -D hw:1,0 -f S16_LE -r 48000 -c 2 -d 5 test.wav
aplay test.wav

If you hear the audio from your source, the audio path is healthy. If not, see Audio capture →.

Kernel modules in use

You don't have to load anything manually, but if you're curious:

lsmod | grep -E 'uvcvideo|snd_usb_audio|usbcore'

Expected:

uvcvideo              188416  0
snd_usb_audio         180224  2
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_v4l2         45056  1 uvcvideo
videobuf2_common       98304  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
videodev              438272  2 videobuf2_v4l2,uvcvideo
mc                     94208  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common

Permissions

On most distros, normal users can read /dev/video0 out of the box. If yours can't:

sudo usermod -aG video $USER
# log out and back in

For audio:

sudo usermod -aG audio $USER

Quick live preview

Confirm the image end-to-end:

# ffplay is part of ffmpeg
ffplay -f v4l2 -input_format mjpeg -framerate 60 -video_size 1920x1080 /dev/video0

A window should pop up showing your HDMI source. ESC to quit.


Next: FFmpeg & GStreamer → for recording, streaming and processing pipelines.