How to upgrade kernel to use webcam that requires kernel module GSPCA-STV06xx available from openwrt-core



  • Product: Omega2
    Build: Ω-ware: 0.3.2 b239
    Kernel: Linux Omega-3245 4.14.81 #0 Thu Apr 9 14:46:56 2020 mips GNU/Linux

    I have an old logitec webcam that when I connect to my Linux desktop is identified as:

    [19898.739612] usb 3-3: new full-speed USB device number 11 using xhci_hcd
    [19898.888783] usb 3-3: New USB device found, idVendor=046d, idProduct=08f6, bcdDevice= 1.00
    [19898.888789] usb 3-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
    [19898.888793] usb 3-3: Product: Camera
    [19898.889936] gspca_main: STV06xx-2.14.0 probing 046d:08f6
    [19898.889942] gspca_stv06xx: st6422 sensor detected
    [19899.162251] input: STV06xx as /devices/pci0000:00/0000:00:14.0/usb3/3-3/input/input22
    

    I enabled the openrwt-core package distribution from /etc/opkg/distfeeds.conf:

    src/gz openwrt_core http://downloads.openwrt.org/releases/18.06-SNAPSHOT/targets/ramips/mt76x8/packages
    

    Updated opkg and then searched for that module:

    # opkg update >/dev/null && opkg list | grep -i -E "gspca.*stv06"
    kmod-video-gspca-stv06xx - 4.14.180-1 - The STV06XX USB Camera Driver (stv06xx) kernel module
    

    From the output, that module is available for kernel 4.14.180, however current omega kernel is 4.14.81.

    I've searched the community for procedures on how to upgrade the kernel whitout any luck.

    I'll appreciate if some one can point me in the right direction on how to update the kernel in order to use the kernel module available in openwrt-core

    Thanks in advance for your support.



  • @usaaib the kernel versioning issue has been long standing, the module may work fine on your current kernel. Have you tried

    opkg install --force-depends kmod-video-gspca-stv06xx

    It will still report the error but continue regardless.



  • Hi @crispyoz , I tried forcing the installation:

    # opkg install --force-depends kmod-video-gspca-stv06xx
    Installing kmod-video-gspca-stv06xx (4.14.180-1) to root...
    Downloading http://downloads.openwrt.org/releases/18.06-SNAPSHOT/targets/ramips/mt76x8/packages/kmod-video-gspca-stv06xx_4.14.180-1_mipsel_24kc.ipk
    Installing kmod-video-gspca-core (4.14.180-1) to root...
    Downloading http://downloads.openwrt.org/releases/18.06-SNAPSHOT/targets/ramips/mt76x8/packages/kmod-video-gspca-core_4.14.180-1_mipsel_24kc.ipk
    Configuring kmod-video-gspca-core.
    Configuring kmod-video-gspca-stv06xx.
    Collected errors:
     * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-video-gspca-stv06xx:
     * 	kernel (= 4.14.180-1-da4f999cff891c50c6d11774cc24f4e2) * 	kernel (= 4.14.180-1-da4f999cff891c50c6d11774cc24f4e2) *
    

    and creating symlinks into the existing 4.14.81 kernel modules folder:

    # cd /lib/modules/4.14.81 ; find /lib/modules/4.14.180 -type f -exec ln -s {} . \;
    # ll gsp*
    lrwxrwxrwx    1 root     root            35 May 26 16:54 gspca_main.ko -> /lib/modules/4.14.180/gspca_main.ko
    lrwxrwxrwx    1 root     root            38 May 26 16:54 gspca_stv06xx.ko -> /lib/modules/4.14.180/gspca_stv06xx.ko
    

    loaded both modules:

    # insmod gspca_core 
    # insmod gspca_stv06xx
    

    and checked dmesg, as you can see the stv06xx is missing some symbols

    # dmesg | grep -i gspca
    [65713.614755] gspca_main: v2.14.0 registered
    [65713.631388] Modules linked in: gspca_main pppoe ppp_async option w1_therm w1_gpio uvcvideo usb_wwan snd_usb_audio pppox ppp_generic pl2303 nf_conntrack_ipv6 lzo iptable_nat ipt_REJECT ipt_MASQUERADE ftdi_sio cp210x ch341 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_FLOWOFFLOAD wire videobuf2_v4l2 usbserial usblp usbhid ums_usbat ums_sddr55 ums_sddr09 ums_karma ums_jumpshot ums_isd200 ums_freecom ums_datafab ums_cypress ums_alauda uinput spidev snd_usbmidi_lib slhc rfcomm pwm_mediatek_ramips nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_nat nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack lzo_decompress lzo_compress iptable_mangle
    [66813.377685] gspca_stv06xx: Unknown symbol gspca_frame_add (err -2)
    [66813.384167] gspca_stv06xx: Unknown symbol gspca_debug (err -2)
    [66813.390909] gspca_stv06xx: Unknown symbol gspca_disconnect (err -2)
    [66813.397431] gspca_stv06xx: Unknown symbol gspca_dev_probe (err -2)
    


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