Problems installing USB webcam driver (gspca_zc3xx)
I have a Logitech Communicate STX webcam (device ID:
046d:08ad) that I would like to use with my Omega, but am having issues installing packages. This site: https://linuxtv.org/wiki/index.php/Gspca_devices shows that it requires module
gspca_zc3xxwhich is supported on OpenWrt using
kmod-video-gspca_zc3xxas per this link https://wiki.openwrt.org/doc/howto/usb.video.
Sadly, this package won't install but I can't work out why (the other dependencies installed without error):
root@Omega:~# opkg install kmod-video-gspca-zc3xx Installing kmod-video-gspca-zc3xx (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/kmod-video-gspca-zc3xx_3.18.23-1_ar71xx.ipk. Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-video-gspca-zc3xx: * kernel (= 3.18.23-1-b2f200610f46d20ef52d269421369d0c) * * opkg_install_cmd: Cannot install package kmod-video-gspca-zc3xx.
It would appear that there is some dependency on kernel
3.18.23, but I am using the latest firmware which uses the more recent
root@Omega:~# uname -a Linux Omega 3.18.36 #1 Fri Jul 8 19:37:15 UTC 2016 mips GNU/Linux
The info for the problem module is unremarkable:
root@Omega:~# opkg info kmod-video-gspca-zc3xx Package: kmod-video-gspca-zc3xx Version: 3.18.23-1 Depends: kernel (= 3.18.23-1-b2f200610f46d20ef52d269421369d0c), kmod-video-gspca-core Status: install hold,user not-installed Section: kernel Architecture: ar71xx MD5Sum: 35e3a71837512ec3b6b1db8aa379535d Size: 16005 Filename: kmod-video-gspca-zc3xx_3.18.23-1_ar71xx.ipk Source: package/kernel/linux Description: The ZC3XX USB Camera Driver (zc3xx) kernel module
This shows that the only dependencies are the kernel and
kmod-video-gspca-core, the latter is installed and up-to-date. The
kmod-video-gspca-coremodule also has the same kernel dependency, but installed without error.
Any ideas on how to fix this?
@benthenchelys This looks like the on-going/long standing issue of kernel version mismatch for some (many packages). I read the messages you get as indicating that the package you are installing specifically requires the indicated kernel version which differs from that of the Omega.
One possible thing you could do as a work around, though it is not guaranteed to work and has a small chance of additional issues is to use the
--force-dependsoption on the
opkg --force-depends install <packagename>
To get help on the
- Use it without any parameters, so:
- or seethe documentation at: https://wiki.openwrt.org/doc/techref/opkg
@benthenchelys For a bit of context, see this thread
Thanks for the reply. Seems like the kernel dependency is causing issues in a few places :slight_frown:
I tried Kit's suggestion of including
--force-dependsand it threw out a similar message, along with
failed to find a module named gspca_zc3xx:
root@Omega-23AC:/tmp/mk1/data# opkg --force-depends install kmod-video-gspca-zc3xx Installing kmod-video-gspca-zc3xx (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/kmod-video-gspca-zc3xx_3.18.23-1_ar71xx.ipk. Configuring kmod-video-gspca-zc3xx. failed to find a module named gspca_zc3xx Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-video-gspca-zc3xx: * kernel (= 3.18.23-1-b2f200610f46d20ef52d269421369d0c) *
If I try to re-run the same command, however, no error is shown:
root@Omega-23AC:/tmp/mk1/data# opkg --force-depends install kmod-video-gspca-zc3xx Package kmod-video-gspca-zc3xx (3.18.23-1) installed in root is up to date.
Now I just need to buy a USB hub to test it. Will post back results...
That's how --force-depends works - it still reports the errors it encounters, but completes installation anyway. When you run it the second time, the package is installed already according to opkg's housekeeping data, so there's nothing to do for opkg, and thus the dependencies are not checked again.
But of course, you still have a dependency mismatch in the installation, which might cause trouble when actually use the modules.
On the other hand, as long as the module in question is not using any bleeding edge kernel features, chances are good a third tier version mismatch does not matter.
Kernel dependency checking is so strict because if something does go wrong in the kernel, this might render the system unusable/unbootable up to the point that you need to do a low level debricking over ethernet. That's something you can risk (knowingly by specifying --force-depends) while experimenting, but don't want to happen otherwise. So while the strict checking is sometimes annonying, it makes a lot of sense.