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!
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) |
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!
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).
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?
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."
}
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.
I would like to continue fixing this package but I am apparently removed as co-maintainer, could I be added back?
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')
Full AUR patch here
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}"
}
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!
Pinned Comments