Raspberry Pi Zero, Kickstarter Autofocus camera, not showing up as webcam

  1. Where did you get the camera module(s)?
    Kickstarter / Arducam
  2. Model number of the product(s)?
    Raspberry Pi Zero and the camera from the kickstarter
  3. What hardware/platform were you working on?
    Mac
  4. Instructions you have followed. (link/manual/etc.)
    Raspberry Pi Zero USB Webcam – Tutorials of Cytron Technologies
  5. Problems you were having?
    The camera does not show up when connecting it. This works well with Raspberry Pi Zero W and the IMX477 cam that I have in my other office.
  6. The dmesg log from your hardware?
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhost-bcm2835 20202000.mmc: could not get clk, deferring probe
sdhci-pltfm: SDHCI platform and OF driver helper
ledtrig-cpu: registered to indicate activity on CPUs
hid: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Initializing XFRM netlink socket
NET: Registered protocol family 17
registered taskstats version 1
Loading compiled-in X.509 certificates
uart-pl011 20201000.serial: cts_event_workaround enabled
20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2
printk: console [ttyAMA0] enabled
bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
sdhost: log_buf @ (ptrval) (95910000)
mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
of_cfs_init
of_cfs_init: OK
uart-pl011 20201000.serial: no DMA platform data
Waiting for root device /dev/mmcblk0p2...
random: fast init done
mmc0: host does not support reading read-only switch, assuming write-enable
mmc0: new high speed SDHC card at address 59b4
mmcblk0: mmc0:59b4 00000 7.48 GiB
 mmcblk0: p1 p2
VFS: Mounted root (squashfs filesystem) readonly on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 188K
Kernel memory protection not selected by kernel config.
Run /sbin/init as init process
  with arguments:
    /sbin/init
  with environment:
    HOME=/
    TERM=linux
    modules-load=dwc2,libcomposite
systemd[1]: System time before build time, advancing clock.
NET: Registered protocol family 10
Segment Routing with IPv6
systemd[1]: systemd 247 running in system mode. (-PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK -SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -ZSTD -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
systemd[1]: Detected architecture arm.
systemd[1]: Set hostname to <piwebcam>.
random: systemd: uninitialized urandom read (16 bytes read)
systemd[1]: Initializing machine ID from random generator.
systemd[1]: Installed transient /etc/machine-id file.
systemd[1]: /usr/lib/systemd/system/uvc-webcam.service:7: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
systemd[1]: /usr/lib/systemd/system/uvc-webcam.service:8: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
systemd[1]: /usr/lib/systemd/system/usb-gadget-config.service:8: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
systemd[1]: /usr/lib/systemd/system/usb-gadget-config.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
systemd[1]: Queued start job for default target Multi-User System.
random: systemd: uninitialized urandom read (16 bytes read)
systemd[1]: Created slice system-modprobe.slice.
random: systemd: uninitialized urandom read (16 bytes read)
systemd[1]: Created slice system-serial\x2dgetty.slice.
systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
systemd[1]: Started Forward Password Requests to Wall Directory Watch.
systemd[1]: Reached target Paths.
systemd[1]: Reached target Remote File Systems.
systemd[1]: Reached target Slices.
systemd[1]: Reached target Swap.
systemd[1]: Reached target Timers.
systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
systemd[1]: Listening on Journal Socket (/dev/log).
systemd[1]: Listening on Journal Socket.
systemd[1]: Listening on udev Control Socket.
systemd[1]: Listening on udev Kernel Socket.
systemd[1]: Condition check resulted in Huge Pages File System being skipped.
systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
systemd[1]: Mounting Temporary Directory (/tmp)...
systemd[1]: Starting Load Kernel Module configfs...
systemd[1]: Starting Load Kernel Module fuse...
systemd[1]: Starting Journal Service...
fuse: init (API version 7.32)
systemd[1]: Starting Load Kernel Modules...
systemd[1]: Starting Remount Root and Kernel File Systems...
systemd[1]: Starting Coldplug All udev Devices...
systemd[1]: Starting Rule-based Manager for Device Events and Files...
systemd[1]: Mounted Temporary Directory (/tmp).
systemd[1]: [email protected]: Succeeded.
systemd[1]: Finished Load Kernel Module configfs.
systemd[1]: [email protected]: Succeeded.
systemd[1]: Finished Load Kernel Module fuse.
systemd[1]: Finished Remount Root and Kernel File Systems.
systemd[1]: Reached target Local File Systems (Pre).
systemd[1]: Mounting FUSE Control File System...
systemd[1]: Mounting Kernel Configuration File System...
systemd[1]: var.mount: Directory /var to mount over is not empty, mounting anyway.
systemd[1]: Mounting /var...
systemd[1]: Started Journal Service.
dwc2 20980000.usb: supply vusb_d not found, using dummy regulator
dwc2 20980000.usb: supply vusb_a not found, using dummy regulator
systemd-journald[60]: Received client request to flush runtime journal.
dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
dwc2 20980000.usb: DWC OTG Controller
dwc2 20980000.usb: new USB bus registered, assigned bus number 1
dwc2 20980000.usb: irq 33, io mem 0x20980000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: DWC OTG Controller
usb usb1: Manufacturer: Linux 5.10.11 dwc2_hsotg
usb usb1: SerialNumber: 20980000.usb
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mc: Linux media interface: v0.10
vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[vc_sm_connected_init]: start
[vc_sm_connected_init]: installed successfully
videodev: Linux video capture interface: v2.00
bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
bcm2835-codec bcm2835-codec: Device registered as /dev/video10
bcm2835-codec bcm2835-codec: Loaded V4L2 decode
bcm2835-codec bcm2835-codec: Device registered as /dev/video11
bcm2835-codec bcm2835-codec: Loaded V4L2 encode
bcm2835-codec bcm2835-codec: Device registered as /dev/video12
bcm2835-codec bcm2835-codec: Loaded V4L2 isp
dwc2 20980000.usb: bound driver configfs-gadget
dwc2 20980000.usb: new device is high-speed
dwc2 20980000.usb: new address 4
  1. Troubleshooting attempts you’ve made?
    Using pty to log on to the raspberry, checking the camera-ctl
# /usr/bin/camera-ctl
INFO: Ignored control: repeat_sequence_header
INFO: Ignored control: h264_i_frame_period
INFO: Ignored control: h264_level
INFO: Ignored control: h264_profile
INFO: Ignored control: compression_quality
INFO: Opening /dev/video0 device
ERROR: Device open failed: No such file or directory (2)
# ls /dev/v*
/dev/vc-mem    /dev/vcs       /dev/vcsa1     /dev/vcsu1     /dev/video12
/dev/vchiq     /dev/vcs1      /dev/vcsm-cma  /dev/video10
/dev/vcio      /dev/vcsa      /dev/vcsu      /dev/video11
# uname-a
-sh: uname-a: not found
# uname -a
Linux piwebcam 5.10.11 #1 Mon Nov 8 06:25:02 UTC 2021 armv6l GNU/Linux
# cat /etc/os-release
NAME=Buildroot
VERSION=v1.90-5-g8e9f9ac
ID=buildroot
VERSION_ID=2021.02.4
PRETTY_NAME="Buildroot 2021.02.4"

Other info requested in sticky post:

# cat /proc/meminfo
MemTotal:         409012 kB
MemFree:          377912 kB
MemAvailable:     385708 kB
Buffers:            1088 kB
Cached:            14528 kB
SwapCached:            0 kB
Active:             7812 kB
Inactive:           9728 kB
Active(anon):         52 kB
Inactive(anon):     3376 kB
Active(file):       7760 kB
Inactive(file):     6352 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          1952 kB
Mapped:             7960 kB
Shmem:              1504 kB
KReclaimable:       1404 kB
Slab:               6920 kB
SReclaimable:       1404 kB
SUnreclaim:         5516 kB
KernelStack:         328 kB
PageTables:          164 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      204504 kB
Committed_AS:       5856 kB
VmallocTotal:     614400 kB
VmallocUsed:        3160 kB
VmallocChunk:          0 kB
Percpu:               64 kB
CmaTotal:          65536 kB
CmaFree:           64176 kB
# cat /boot/config.txt
# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax

# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
start_file=start.elf
fixup_file=fixup.dat

kernel=zImage

# To use an external initramfs file
#initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
dtoverlay=dwc2
enable_uart=1
boot_delay=0
initial_turbo=10
  1. What help do you need?
    Could you please point me in the right direction to make the webcam work?

Unfortunately,
The IMX519 uses the libcamera camera stack, which is not currently supported.
If you want to adapt it yourself, you need to modify libcamera-apps to be compatible with the programs in the tutorial.