Package Details: v4l2loopback-dc-dkms 1:2.1.4-1

Git Clone URL: https://aur.archlinux.org/droidcam.git (read-only, click to copy)
Package Base: droidcam
Description: v4l2-loopback kernel module - DroidCam version
Upstream URL: https://github.com/dev47apps/droidcam-linux-client
Keywords: android ios webcam
Licenses: GPL-2.0-or-later
Provides: V4L2LOOPBACK-MODULE
Submitter: marquicus
Maintainer: mhdi
Last Packager: mhdi
Votes: 143
Popularity: 0.53
First Submitted: 2011-06-29 20:31 (UTC)
Last Updated: 2025-06-25 06:12 (UTC)

Required by (4)

Sources (3)

Pinned Comments

Latest Comments

1 2 3 4 5 6 .. 39 Next › Last »

crovaxon commented on 2025-10-12 16:54 (UTC)

ffmpeg 2:8.0-3.1 (CachyOS has optimized rebuilds so AFAIK it's just 2:8.0-3)

Cleared my cache and reinstalled droidcam, that indeed did the trick, Thank you!

Levitating commented on 2025-10-12 16:40 (UTC)

What's your ffmpeg version? Try reinstalling the package.

If you need help, my email is in the PKGBUILD (click on "View PKGBUILD" on the right-hand side).

crovaxon commented on 2025-10-12 16:35 (UTC) (edited on 2025-10-12 16:37 (UTC) by crovaxon)

Hello, still rather new to Arch :)

I have issues getting droidcam to run on a current install (CachyOS). ffmpeg seems to have updated recently, resulting in the following error when trying to run droidcam or droidcam-cli:

error while loading shared libraries: libswscale.so.8: cannot open shared object file: No such file or directory

I traced back libswscale to belonging to ffmpeg. Does that mean droidcam requires a rebuild with new ffmpeg?

insign commented on 2025-08-18 17:37 (UTC)

I've made a zsh script to automate the installation. Note that there is an error with pkgbuild that I fixed using dos2unix. The main reason of this script is to use FULL HD resolution:


#
# Installs and configures Droidcam from the AUR, with the resolution modified to 1080p.
#
# USAGE:
#   install_droidcam
#
# WHAT IT DOES:
# 1. Creates a safe, temporary working directory.
# 2. Checks for and installs the 'dos2unix' dependency if needed.
# 3. Downloads the Droidcam build files from the AUR.
# 4. Uses 'sed' to change the resolution to 1920x1080 in the PKGBUILD.
# 5. Fixes the file format (dos2unix) to prevent errors.
# 6. Updates checksums (updpkgsums) to ensure validation.
# 7. Compiles and installs the package non-interactively (makepkg -si --noconfirm).
# 8. Loads the kernel module with the new settings.
# 9. Cleans up the temporary working directory upon completion.
#
install_droidcam() {
  # Stop the script if any command fails
  set -e

  # Create a safe temporary directory to avoid cluttering the home folder
  local build_dir
  build_dir=$(mktemp -d -t droidcam-build-XXXXXX)
  echo ">>> Using temporary build directory: ${build_dir}"

  # Ensure the temporary directory is removed on exit, even on error
  trap 'echo ">>> Cleaning up build directory..."; rm -rf -- "$build_dir"' EXIT

  # Enter the temporary directory
  cd "$build_dir"

  echo -e "\n[ STEP 1/7 ] Checking for 'dos2unix' dependency..."
  if ! command -v dos2unix &> /dev/null; then
    echo "--> 'dos2unix' not found. Installing via pacman..."
    sudo pacman -S --noconfirm dos2unix
  else
    echo "--> 'dos2unix' is already installed."
  fi

  echo -e "\n[ STEP 2/7 ] Downloading Droidcam files (AUR)..."
  paru -G droidcam

  # Enter the package directory
  cd droidcam

  echo -e "\n[ STEP 3/7 ] Modifying PKGBUILD for 1920x1080 resolution..."
  sed -i 's/width=640 height=480/width=1920 height=1080/g' PKGBUILD
  echo "--> Modification complete."

  echo -e "\n[ STEP 4/7 ] Correcting file format (dos2unix)..."
  dos2unix PKGBUILD

  echo -e "\n[ STEP 5/7 ] Updating checksums in PKGBUILD..."
  updpkgsums

  echo -e "\n[ STEP 6/7 ] Building and installing the package (may ask for your password)..."
  makepkg -si --noconfirm

  echo -e "\n[ STEP 7/7 ] Loading the kernel module (may ask for your password)..."
  sudo modprobe -v v4l2loopback_dc

  # The 'trap' will handle the cleanup
  set +e

  echo -e "\n✅ Process complete! Droidcam has been successfully installed and configured."
}

FranciX commented on 2025-08-12 08:01 (UTC)

On both of my machines, the installation uses the v4l2loopback-dkms module instead of v4l2loopback-dc-dkms. This works perfectly for me, but in this case, in the /etc/modules-load.d/droidcam.conf file, the line containing v4l2loopback-dc must be changed to v4l2loopback.

Levitating commented on 2025-06-19 11:40 (UTC)

I would like to continue fixing this package but I am apparently removed as co-maintainer, could I be added back?

jan-one commented on 2025-06-19 09:41 (UTC)

The build issue is fixed in the new release 2.1.4

diff --git a/PKGBUILD b/PKGBUILD
index 380cd23..454b0a8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,8 +7,8 @@
 pkgbase=droidcam
 pkgname=(droidcam v4l2loopback-dc-dkms)
 _name=droidcam-linux-client
-pkgver=2.1.3
-pkgrel=2
+pkgver=2.1.4
+pkgrel=1
 epoch=1
 pkgdesc="A tool to turn your phone/tablet into a wireless/usb webcam"
 arch=('x86_64')
@@ -20,7 +20,7 @@ optdepends=('android-tools: for Android USB connection'
 source=("${pkgbase}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
         "dkms.conf"
         "${pkgbase}.conf")
-sha256sums=('86d18029364d8ecd8b1a8fcae4cc37122f43683326fe49922b2ce2c8cf01e49d'
+sha256sums=('785c2d760b410b90b78a4f9604656e462a5c2eb9c1a351c61237dd57c36c0a4a'
             '20de9d14877732f2f75c21bdd4c335c71dcaeccab4ce348c6c0a210f622ceed2'
             '1d4b3ff98b4af9de77a24d1b6fad6e004deadf1f157eb800aa878ba1e7693dac')

Davius commented on 2025-06-15 15:21 (UTC) (edited on 2025-06-15 15:26 (UTC) by Davius)

Full AUR patch here

https://bpa.st/DULA

Davius commented on 2025-06-15 13:37 (UTC) (edited on 2025-06-15 14:28 (UTC) by Davius)

Upstream Links for issue with kernel 6.15 :

https://github.com/dev47apps/droidcam-linux-client/issues/291

https://github.com/dev47apps/droidcam-linux-client/pull/292

Can be patched with this commit : https://github.com/dev47apps/droidcam-linux-client/commit/1d09ede5b9315b989b3b1472ad2e9196612f3c5d

Here the PKGBUILD Patch. Usage : patch PKGBUILD < PKGBUILD.patch

TESTED OK.

--- PKGBUILD    2025-06-15 16:21:19.107771015 +0200
+++ droidcam.PKGBUILD   2025-06-15 16:15:32.566556358 +0200
@@ -10,6 +10,7 @@
 pkgver=2.1.3
 pkgrel=2
 epoch=1
+_commit=1d09ede5b9315b989b3b1472ad2e9196612f3c5d
 pkgdesc="A tool to turn your phone/tablet into a wireless/usb webcam"
 arch=('x86_64')
 url="https://github.com/dev47apps/droidcam-linux-client"
@@ -17,10 +18,10 @@
 makedepends=('alsa-lib' 'ffmpeg' 'gtk3' 'libappindicator-gtk3' 'libjpeg-turbo' 'libusbmuxd' 'speex')
 optdepends=('android-tools: for Android USB connection'
             'usbmuxd: for iOS USB connection')
-source=("${pkgbase}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
+source=("${pkgbase}-${pkgver}.tar.gz::${url}/archive/${_commit}.tar.gz"
         "dkms.conf"
         "${pkgbase}.conf")
-sha256sums=('86d18029364d8ecd8b1a8fcae4cc37122f43683326fe49922b2ce2c8cf01e49d'
+sha256sums=('SKIP'
             '20de9d14877732f2f75c21bdd4c335c71dcaeccab4ce348c6c0a210f622ceed2'
             '1d4b3ff98b4af9de77a24d1b6fad6e004deadf1f157eb800aa878ba1e7693dac')

@@ -30,13 +31,13 @@

   sed "s/@PKGVER@/${pkgver}/" -i dkms.conf

-  cd "${_name}-${pkgver}"
+  cd "${_name}-${_commit}"
   sed 's|/opt/droidcam-icon.png|/usr/share/pixmaps/droidcam.png|' -i src/droidcam.c
   sed -e 's|/usr/local/bin/||' -e 's|/opt/droidcam-icon.png|droidcam|' -i droidcam.desktop
 }

 build() {
-  cd "${_name}-${pkgver}"
+  cd "${_name}-${_commit}"

   # All JPEG* parameters are needed to use shared version of libturbojpeg instead of
   # static one.
@@ -48,7 +49,7 @@
 package_droidcam() {
   depends=('alsa-lib' 'ffmpeg' 'glib2' 'glibc' 'gtk3' 'libappindicator-gtk3' 'libjpeg-turbo' 'libusbmuxd' 'libx11' 'pango' 'speex' 'V4L2LOOPBACK-MODULE')

-  cd "${_name}-${pkgver}"
+  cd "${_name}-${_commit}"
   # Install droidcam program files
   install -Dm755 "${pkgname}" "${pkgname}-cli" -t "${pkgdir}/usr/bin"
   install -Dm644 icon2.png "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
@@ -69,6 +70,6 @@
   install -Dm644 "${pkgbase}.modprobe.conf" "${pkgdir}/etc/modprobe.d/${pkgbase}.conf"

   # Install module source
-  cd "${_name}-${pkgver}/v4l2loopback"
+  cd "${_name}-${_commit}/v4l2loopback"
   install -Dm644 Makefile test.c v4l2loopback-dc.c "${srcdir}/dkms.conf" -t "${pkgdir}/usr/src/${_pkgname}-${pkgver}"
 }

dreieck commented on 2025-06-11 17:45 (UTC)

Ahoj,

with Linux 5.15.2 (vanilla kernel)/ clang 20.1.6, v4l2loopback-dc-dkms fails to build the module with
v4l2loopback-dc.c:1514:3: error: call to undeclared function 'del_timer_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]:


DKMS (dkms-3.2.1) make.log for v4l2loopback-dc/2.1.3 for kernel 6.15.2-vanilla-customconfig-clang (x86_64)
Wed Jun 11 07:39:10 PM CEST 2025

Building module(s)
# command: make -j16 KERNELRELEASE=6.15.2-vanilla-customconfig-clang all LLVM=1
make -C /lib/modules/6.15.2-vanilla-customconfig-clang/build M=/var/lib/dkms/v4l2loopback-dc/2.1.3/build modules
make[1]: Entering directory '/usr/lib/modules/6.15.2-vanilla-customconfig-clang/build'
make[2]: Entering directory '/var/lib/dkms/v4l2loopback-dc/2.1.3/build'
  CC [M]  v4l2loopback-dc.o
v4l2loopback-dc.c:1514:3: error: call to undeclared function 'del_timer_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1514 |   del_timer_sync(&dev->sustain_timer);
      |   ^
v4l2loopback-dc.c:1936:5: error: call to undeclared function 'del_timer_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1936 |     del_timer_sync(&dev->sustain_timer);
      |     ^
v4l2loopback-dc.c:2347:4: error: field designator 'vidioc_queryctrl' does not refer to any field in type 'const struct v4l2_ioctl_ops'
 2347 |   .vidioc_queryctrl         = &vidioc_queryctrl,
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
v4l2loopback-dc.c:2348:4: error: field designator 'vidioc_g_ctrl' does not refer to any field in type 'const struct v4l2_ioctl_ops'
 2348 |   .vidioc_g_ctrl            = &vidioc_g_ctrl,
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
v4l2loopback-dc.c:2349:4: error: field designator 'vidioc_s_ctrl' does not refer to any field in type 'const struct v4l2_ioctl_ops'
 2349 |   .vidioc_s_ctrl            = &vidioc_s_ctrl,
      |   ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 errors generated.
make[4]: *** [/usr/lib/modules/6.15.2-vanilla-customconfig-clang/build/scripts/Makefile.build:203: v4l2loopback-dc.o] Error 1
make[3]: *** [/usr/lib/modules/6.15.2-vanilla-customconfig-clang/build/Makefile:2003: .] Error 2
make[2]: *** [/usr/lib/modules/6.15.2-vanilla-customconfig-clang/build/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/var/lib/dkms/v4l2loopback-dc/2.1.3/build'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.15.2-vanilla-customconfig-clang/build'
make: *** [Makefile:8: all] Error 2

# exit code: 2
# elapsed time: 00:00:01
----------------------------------------------------------------

I suspect that as a workaround adding -Wno-error=implicit-function-declaration to some C-flags may help.

Regards!