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_zc3xx which is supported on OpenWrt using kmod-video-gspca_zc3xx as 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 3.18.36:

    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. Thekmod-video-gspca-core module 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-depends option on the opkg command so:

    • opkg --force-depends install <packagename>

    To get help on the opkg command:





  • 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-depends and 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...

    Thanks.



  • 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.



Looks like your connection to Community was lost, please wait while we try to reconnect.