Integrated Webcam not detected by applications on Advent Netbook running FreeBSD 14.4

I have been running FreeBSD on this 32 bit Netbook for a few years. It actually runs surprisingly well for such an old device but the Webcam is not available to Firefox or Guvcview (or any other application.)
Code:
simon@MinilaptopBSD
  ` `.....---.......--.```   -/    -------------------
  +o   .--`         /y:`      +.   OS: FreeBSD 14.4-RELEASE-p4 i386
   yo`:.            :o      `+-    Uptime: 1 hour, 37 mins
    y/               -/`   -o/     Packages: 1217 (pkg)
   .-                  ::/sy+:.    Shell: bash 5.3.9
   /                     `--  /    Resolution: 1024x600
  `:                          :`   DE: Xfce 4.20
  `:                          :`   WM: Xfwm4
   /                          /    WM Theme: Greybird-dark
   .-                        -.    Theme: Greybird-dark [GTK2/3]
    --                      -.     Icons: elementary-xfce [GTK2/3]
     `:`                  `:`      Terminal: xfce4-terminal
       .--             `--.        Terminal Font: Monospace 12
          .---.....----.           CPU: Intel Atom N270 (2) @ 1.600GHz
                                   GPU: Mobile 945GSE Express Integrated Graphics Controller
                                   Memory: 1552MiB / 2014MiB

When I use
Code:
sudo usbconfig
, it is listed as a device but there is no entry on /dev/video for it. There is a toggle on one of the function keys but I am aware of this and have tried switching on and off without result.

Code:
ugen4.3: <BisonCam NB Pro 1300 Bison Electronics Inc.> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
 
Since my first post, I have managed to get the device recognised.

Code:
#webcamd -l
webcamd [-d ugen4.3] -N Generic-USB2-0-CRW -S 20071114173400000 -M 0

Still won't show video on guvcview or cheese etc.

Bash:
$ guvcview
ENCODER: no video codec detected for Theora (ogg theora)
GUVCVIEW: setrlimit returned result = -1
GUVCVIEW: version 2.2.2
GUVCVIEW: couldn't open /home/simon/.config/guvcview2/video0 for read: No such file or directory
V4L2CORE: couldn't determine device (/dev/video0) list index
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (UVCIOC_CTRL_MAP) Error: Invalid argument
V4L2_CORE: (VIDIOC_QUERYBUF) Unable to query buffer[0]: Invalid argument
         try with read method instead
V4L2_CORE: (VIDIOC_QBUFS) Unable to query buffers: Invalid argument
GUCVIEW: could not set the defined stream format
GUCVIEW: trying first listed stream format
V4L2_CORE: (VIDIOC_QUERYBUF) Unable to query buffer[0]: Invalid argument
 
Cheese seems broken alot for me when testing.
I think the best really basic FreeBSD webcam viewer is multimedia/pwcview as shown on the webcamd wlki

pwcview -s xvga

Code:
Usage: pwcview [ options ]

Options:
 -?               Display this help message
 -h               Run in headless mode
 -p               Enable webcam snapshot button
 -k               Add time date string to picture

 -x               Create window without frame
 -y               Use IYUV overlay instead of YV12 overlay
 -z               Create the video surface in system memory (SDL_SWSURFACE)
 -a               Always use video surface (SDL_ANYFORMAT)
 -b <bpp>         Bits per pixel to setup SDL video surface with (default: 0)

 -r               Enable motion detection recording
 -m               Show detected motion
 -j <command>     Command to execute when motion is detected (default: none)
 -g <interval>    Minimum time in seconds between motion commands (default: 60)
 -u <sensitivity> Motion detection sensitivity (default: 1000)
 -t <threshold>   Motion detection threshold (default: 1)
 -l <frames>      Recording margin (default: 15)

 -c <count>       Number of jpeg snapshots to take (default: 0 (-1=unlimited))
 -i <interval>    Jpeg snapshot interval in milliseconds (default: 3000)
 -q <quality>     Quality of jpeg output image (range: 0-100, default: 75)
 -o <outfile>     Filename for jpeg output (default: /tmp/%Y%m%d%H%M%S.jpg)
 -e <command>     Command to execute after each snaphot (default: none)

 -d <device>      Video device to open (default: /dev/video0)
 -s <size>        Video size to use (default: sif)
 -f <fps>         Video framerate to use (default: 5)

 See the pwcview(1) man page for details
 
GUVCVIEW: couldn't open /home/simon/.config/guvcview2/video0 for read: No such file or directory
You need to work out your video device. That path looks wrong. It should be /dev/video0

How about you post your output for webcamd command please.
Then show us the command you are using to start webcamd.
Best to start it manually then add settings to /etc/rc.conf
 
Here is the Wiki:

So pkg install pwcview. Then run it.

pwcview -d /dev/video0 -s vga

If you get a message like this:
Code:
pwcview -s svga
Failed to access webcam: No such file or directory
***********************************************************
Make sure you have connected your webcam to the root hub
or to a USB 1.1 hub, also check your dmesg for any errors.
***********************************************************
webcamd is not running for the webcam.

So time to see what webcamd has for devices (THIS IS MY SAMPLE-- USE YOUR OUTPUT)
Code:
# webcamd
Available device(s):
webcamd [-d ugen0.1] -N Intel-XHCI-root-HUB -S unknown -M 0
webcamd [-d ugen1.1] -N Intel-XHCI-root-HUB -S unknown -M 1
webcamd [-d ugen0.2] -N vendor-0x0cf3-product-0xe006 -S unknown -M 0
webcamd [-d ugen0.3] -N CN0FFMHC8LG0001EB0RKA01-IntegratedWebcamHD -S 200901010001 -M 0
webcamd [-d ugen0.4] -N ASIX-AX88179A -S 00C70A20 -M 0

Ok it is apparent there is a IntegratedWebcam device at "ugen0.3". So use this information to start webcamd with.

First load cuse module
kldload cuse
Now start webcamd in the background.
webcamd -B -d ugen0.3

Now check for your video device again.
pwcview -d /dev/video0 -s vga
 
I've never been able to get cheese to work on FreeBSD with webcamd. But OBS Studio and VLC, I have had working in 13,14,15 Release with webcamd. Not sure what's the issue with cheese.
 
You are going to be facing problems with a 32bit version of FreeBSD. Video Acceleration or lack of it on a desktop.. I would start at CIF and work up to higher resolutions.

I've never been able to get cheese to work on FreeBSD with webcamd
I have it working but I had to jigger QUARTERLY to LATEST for a patched gstreamer thing and then I changed settings back to QUARTERLY.

I can't seem to find the PR but here is the command I used:

pkg upgrade gstreamer1-plugins-v4l2

Update: Found it https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236673
 
Handbook says this:
pw groupmod webcamd -m username
Make sure your "username" is in the video group as well.
Good chance this is a permissions issue.
 
Back
Top