Actually, the error you mentioned is 2nd state after 1st install trial.
- The first trial ends up with make/compilation error and removes the module source archives (without checking if build was successful).
- The next trials show missing kernel module source archive.
Here is the original error (full log):
make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory '/usr/src/linux-headers-3.19.0-30-generic'
LD /opt/droidcam/v4l2loopback/built-in.o
CC [M] /opt/droidcam/v4l2loopback/v4l2loopback-dc.o
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c: In function ‘attr_store_maxopeners’:
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:456:3: error: implicit declaration of function ‘strict_strtoul’ [-Werror=implicit-function-declaration]
if (strict_strtoul(buf, 0, &curr))
^
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c: At top level:
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2311:3: warning: initialization from incompatible pointer type
.vidioc_s_std = &vidioc_s_std,
^
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2311:3: warning: (near initialization for ‘v4l2_loopback_ioctl_ops.vidioc_s_std’)
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2331:3: warning: initialization from incompatible pointer type
.vidioc_s_audio = &vidioc_s_audio,
^
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2331:3: warning: (near initialization for ‘v4l2_loopback_ioctl_ops.vidioc_s_audio’)
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2333:3: warning: initialization from incompatible pointer type
.vidioc_s_audout = &vidioc_s_audout,
^
/opt/droidcam/v4l2loopback/v4l2loopback-dc.c:2333:3: warning: (near initialization for ‘v4l2_loopback_ioctl_ops.vidioc_s_audout’)
cc1: some warnings being treated as errors
scripts/Makefile.build:263: recipe for target '/opt/droidcam/v4l2loopback/v4l2loopback-dc.o' failed
make[2]: *** [/opt/droidcam/v4l2loopback/v4l2loopback-dc.o] Error 1
Makefile:1395: recipe for target '_module_/opt/droidcam/v4l2loopback' failed
make[1]: *** [_module_/opt/droidcam/v4l2loopback] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-30-generic'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2
To fix the original error, strict_strtoul
was replaced with kstrtoul
Get source
sudo apt-add-repository -s ppa:paolorotolo/droidcam
sudo apt-get update
mkdir sand_box
cd sand_box
apt-get source droidcam
cd droidcam-*/
Install build dependencies
sudo apt-get builddep droiddeb
sudo apt-get install devscripts debhelper
Replace strict_strtoul
with kstrtoul
in:
- droidcam-v4l2-x64.tar.gz : /v4l2loopback/v4l2loopback-dc.c
- droidcam-v4l2-x86.tar.gz : /v4l2loopback/v4l2loopback-dc.c
Build & install
debbuild -d -uc
sudo dpkg -i ../droidcam_*.deb
Another way, without debian package rebuild:
After you have tried installing it and got the error. If not yet, run:
sudo apt-get install droidcam
Go to /var/cache/apt/archives/
. Open its package with archive-manager and extract both droidcam-v4l2-*.tar.gz
files (or just needed arch)
Replace strict_strtoul
with kstrtoul
in:
- droidcam-v4l2-x64.tar.gz : /v4l2loopback/v4l2loopback-dc.c
- droidcam-v4l2-x86.tar.gz : /v4l2loopback/v4l2loopback-dc.c
Move both archives to /opt/droidcam/
sudo mv droidcam-v4l2-*.tar.gz /opt/droidcam/
Run installation again to rebuild it
sudo apt-get install droidcam
References:
apt-cache policy droidcam