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: 1.26
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 .. 38 Next › Last »

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!

Lukhas commented on 2025-03-12 23:34 (UTC) (edited on 2025-03-12 23:35 (UTC) by Lukhas)

According to others online, audio used to work with the command pactl load-module module-alsa-source device=hw:0,1,0 (or whichever your hardware identifier is). I've never been able to make it work as the second I try to do anything with the resulting audio device (like hovering over the sound system icon in the KDE taskbar), the module just unloads itself before you can do anything with the device at all. You can see that behaviour with pactl list sources short : you load the module, it appears in the list, you try to use the mic and it's gone.

However if you address it specifically like by using arecord -D hw:0,1,0 with a sample rate of 16kHz, I can actually record with it. I doubt this is going to see much updates considering the developer has moved on to a new version of the app and package based on OBS. https://github.com/dev47apps

Still works as a webcam though.

peetwastaken commented on 2024-07-26 09:21 (UTC)

The most recent rolling upgrade moved ffmeg to version 7, which does not ship libswscale.so.7 anymore. This makes droidcam not start anymore when this package was installed before the release. Solution: Reinstall the droidcam package to force a rebuild.

Maybe the version of the package can be bumped to force a rebuild for all users?

mnyolt commented on 2024-06-12 08:59 (UTC)

The sha256sum of the release sources do not match what is in the PKGBUILD.

86d18029364d8ecd8b1a8fcae4cc37122f43683326fe49922b2ce2c8cf01e49d droidcam-linux-client-2.1.3.tar.gz

Also, the repository seems to have moved to https://github.com/dev47apps/droidcam-linux-client.