# [Solved] Module uvcvideo does not exist in menuconfig

## letto

I recently bought a Genius FaceCam 1000X and I tried to make it work on Gentoo. 

I first booted a Knoppix live USB stick to see if it works as it should and it worked perfectly. I was able to use it with some uvc testing program and I saw it filming. I then went ahead to check what kernel modules it was using and found out that it is using the uvcvideo kernel module. 

The problem was when I tried to compile it in the Gentoo kernel. I searched for "uvc" with nconfig/menuconfig/xconfig and the results i get were:

```

 │ Symbol: USB_CONFIGFS_F_UVC [=y] 

 │ Type  : bool      

 │ Prompt: USB Webcam function                                                                                               

 │   Location:                                                                                                               

 │     -> Device Drivers                                                                                                     

 │       -> USB support (USB_SUPPORT [=y])                                                                                   

 │         -> USB Gadget Support (USB_GADGET [=y])                                                                           

 │           -> USB Gadget functions configurable through configfs (USB_CONFIGFS [=y])                                       │

 │   Defined at drivers/usb/gadget/Kconfig:445                                                                               │

 │   Depends on: USB_SUPPORT [=y] && USB_GADGET [=y] && USB_CONFIGFS [=y] && VIDEO_V4L2 [=y] && VIDEO_DEV [=y]               │

 │   Selects: VIDEOBUF2_VMALLOC [=y] && USB_F_UVC [=y]                                                                       │

 │                                                                                                                           

 │

 │ Symbol: USB_F_UVC [=y]                                                                                                    

 │ Type  : tristate                                                                                                          

 │   Defined at drivers/usb/gadget/Kconfig:203                                                                               

 │   Depends on: USB_SUPPORT [=y] && USB_GADGET [=y]                                                                         

 │   Selected by [y]:                                                                                                        

 │   - USB_CONFIGFS_F_UVC [=y] && USB_SUPPORT [=y] && USB_GADGET [=y] && USB_CONFIGFS [=y] && VIDEO_V4L2 [=y] && VIDEO_DEV [=│

 │   - USB_G_WEBCAM [=y] && <choice> && VIDEO_V4L2 [=y] 

```

As you can see, there is no "uvcvideo" in the kernel, so I can not compile it. I tried searching around, both in the kernel and trough portage and couldn't find any "uvcvideo". Anyway the required files are in the kernel, as this command shows:

```

$ locate uvcvideo | grep src

/usr/src/linux-4.17.13-gentoo/Documentation/media/v4l-drivers/uvcvideo.rst

/usr/src/linux-4.17.13-gentoo/drivers/media/usb/uvc/uvcvideo.h

/usr/src/linux-4.17.13-gentoo/include/uapi/linux/uvcvideo.h

```

I can't figure out how to compile it tough...

Here is the output of dmesg related to the webcam:

```

[    1.112095] usb 8-2: new high-speed USB device number 2 using xhci_hcd

[    1.391971] usb 8-2: New USB device found, idVendor=0458, idProduct=708f, bcdDevice= 0.04

[    1.392214] usb 8-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[    1.392363] usb 8-2: Product: FaceCam 1000X

[    1.392502] usb 8-2: Manufacturer: KYE Systems Corp.

[   86.856484] usb 8-2: USB disconnect, device number 2

[   89.327034] usb 8-2: new high-speed USB device number 3 using xhci_hcd

[   89.605706] usb 8-2: New USB device found, idVendor=0458, idProduct=708f, bcdDevice= 0.04

[   89.605709] usb 8-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[   89.605711] usb 8-2: Product: FaceCam 1000X

[   89.605713] usb 8-2: Manufacturer: KYE Systems Corp.

```

[Moderator edit: changed [quote] tags to [code] tags to preserve output layout. -Hu]Last edited by letto on Fri Aug 10, 2018 8:54 am; edited 1 time in total

----------

## NeddySeagoon

letto,

You need 

```
 CONFIG_USB_VIDEO_CLASS:                                                                                                 │  

  │                                                                                                                         │  

  │ Support for the USB Video Class (UVC).  Currently only video                                                            │  

  │ input devices, such as webcams, are supported.                                                                          │  

  │                                                                                                                         │  

  │ For more information see: <http://linux-uvc.berlios.de/>                                                                │  

  │                                                                                                                         │  

  │ Symbol: USB_VIDEO_CLASS [=n]                                                                                            │  

  │ Type  : tristate                                                                                                        │  

  │ Prompt: USB Video Class (UVC)                                                                                           │  

  │   Location:                                                                                                             │  

  │     -> Device Drivers                                                                                                   │  

  │       -> Multimedia support (MEDIA_SUPPORT [=m])                                                                        │  

  │         -> Media USB Adapters (MEDIA_USB_SUPPORT [=y])                                                                  │  

  │   Defined at drivers/media/usb/uvc/Kconfig:1                                                                            │  

  │   Depends on: USB [=y] && MEDIA_SUPPORT [=m] && MEDIA_USB_SUPPORT [=y] && MEDIA_CAMERA_SUPPORT [=y] && VIDEO_V4L2 [=m]  │  

  │   Selects: VIDEOBUF2_VMALLOC [=m]                                           
```

The  Depends on: boolean expression must evaluate to true before the kernel option is visible.

Go into menuconfig

Press 'z' to toggle the display of hidden symbols. 

The Search will work, so you can read the help but the option will remain unselcatable. The Symbol will be 

```
- -
```

Read the depends on in the help and enable the needed options. You may need to apply this process recursively as the options in the  Depends on: way be hidden by their Depends on: ... and so on.

----------

## letto

Hi NeddySeagoon,

I did as you said and pressed z to enable the hidden options. However I still didn't get the "uvcvideo" option to set. Searching for "uvc" gives me the same results. I tried to search for it manually in both the USB options and the MEDIA options, but I couldn't find it. 

Then i tried to search for the name that I get for it from both lsusb and dmesg: "KYE Systems Corp. (Mouse Systems)". I searched for "kye" and found it in: 

```
Device Drivers -> HID support -> HID bus support -> Special HID drivers -> KYE/Genius devices. 
```

It seems that it was exactly what it needed to run correctly. 

However it seems that there is still no uvcvideo driver anywhere. Maybe it could be some driver that i have built into the kernel, but I doubt it... Edit: It was the fact that a driver was not built as a module. 

Anyway, thank you very much for your help.   :Smile: 

----------

## Gentobobbyuk

HI Thanks for the info on the post i have pressed the z button inside my kerbel And UVC is there but hidden i  have never used the z key bore. 

Is there any reason why i am unable to seletc UVC

----------

## Gentobobbyuk

I am struggling to understand some of the words your using above are you able to explain in a less complicated way for me, 

And im kind of thinking unless something has been set elsewhere theese options are hidden ? 

The z command is very usefull which i had known about this before 

Still unsure to how i fix them but its a great start

----------

