LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   How to disable unused device without blacklisting a module (https://www.linuxquestions.org/questions/linux-hardware-18/how-to-disable-unused-device-without-blacklisting-a-module-4175428844/)

alikasundara 09-24-2012 03:59 PM

How to disable unused device without blacklisting a module
 
Hello,

Does anyone know a general way of disabling a device without blacklisting a module/driver? The reason I am asking this is that I have two webcams (one built-in, one external) and I want to permanently disable the built-in one. Blacklisting a module is not an option cause both webcams use the same driver (uvcvideo, if that makes a difference)...
I was trying to find a way to do that using udev rule(s) but no luck so far.

Crossposted a week ago on askubuntu: http://askubuntu.com/questions/18970...n-external-one

Thanks,
Alikasundara

camorri 09-24-2012 04:10 PM

Have you looked in the BIOS to see if you can disable it there? If you can, then the OS won't see the device at all.

alikasundara 09-24-2012 04:12 PM

Quote:

Originally Posted by camorri (Post 4788327)
Have you looked in the BIOS to see if you can disable it there? If you can, then the OS won't see the device at all.

Yes, that was the first thing I tried (no luck). Sorry for not mentioning it in the original post.

Thanks,
Alikasundara

JaseP 09-24-2012 04:19 PM

This blogger wrote a udev rule to switch which one was primary...

http://windywindycitytech.wordpress....-linux-ubuntu/

You could do something similar, just not enable the one at all...

However, what about the BIOS? Many built in cameras can be disabled in the BIOS settings...

alikasundara 09-24-2012 04:30 PM

Quote:

Originally Posted by JaseP (Post 4788335)
This blogger wrote a udev rule to switch which one was primary...

http://windywindycitytech.wordpress....-linux-ubuntu/

You could do something similar, just not enable the one at all...

Thanks for your reply, but I am looking to disable the device completely for paranoia reasons ;-)

Quote:

However, what about the BIOS? Many built in cameras can be disabled in the BIOS settings...
I have checked that already. Unfortunately my BIOS seems to be very limited and does not support disabling the webcam...

Thanks,
Alikasundara

camorri 09-24-2012 04:38 PM

You might look into unplugging the web cam. Most manufacturers have doc on how to remove and replace parts. If you are handy, and have some physical kill, you may be able to simply unplug the device.

JaseP 09-24-2012 05:04 PM

Quote:

Originally Posted by alikasundara (Post 4788341)
Thanks for your reply, but I am looking to disable the device completely for paranoia reasons ;-)

If in the udev rules,... you "send it to never-never land," by not defining a valid rule that will allow its use, it will be functionally disabled. That means modifying the blogger's udev rules to define the built-in camera such that it will not get picked up by uvcvideo.

If a device is not properly defined by the system's udev rules,... and cannot be found, it doesn't exist as far as the system is concerned. Unuseable. It's just an unknown device...

Only someone with root access would be able to fix it...

Short of physically removing it, only cutting power to it will "completely" disable it,... and that's a (missing) BIOS function.

alikasundara 09-24-2012 05:25 PM

Quote:

Originally Posted by JaseP (Post 4788357)
If in the udev rules,... you "send it to never-never land," by not defining a valid rule that will allow its use, it will be functionally disabled. That means modifying the blogger's udev rules to define the built-in camera such that it will not get picked up by uvcvideo.

Sounds promising... This rule matches the device:

Code:

SUBSYSTEM=="usb", ATTRS{idVendor}=="5986", ATTRS{idProduct}=="0361"
Any idea how to make it "invalid" enough?

Thank you!

JaseP 09-24-2012 05:28 PM

Start by commenting it out... the # in the beginning of it's line...

alikasundara 09-24-2012 05:32 PM

Quote:

Originally Posted by JaseP (Post 4788377)
Start by commenting it out... the # in the beginning of it's line...

The webcam was enabled without any udev configuration, so commenting out the rule I have just created will not help...

alikasundara 09-24-2012 05:53 PM

Quote:

Originally Posted by camorri (Post 4788345)
You might look into unplugging the web cam. Most manufacturers have doc on how to remove and replace parts. If you are handy, and have some physical kill, you may be able to simply unplug the device.

I will do that as a last resort ;-)
It just seems unbelivable to me that there is no easy way to disable a particular device on OS level.

JaseP 09-24-2012 06:24 PM

Are you sure that there is no udev rule regarding this camera? Did you check within the /etc/udev/rules.d/ directory? They might just ID the camera by vendor...

I'm not sure how uvcvideo works, but I would assume that udev has to ID the device first, before it just starts using it... uvcvideo is part of the v4l2 subsystem, ... and one would assume that this device is getting assigned to something like /dev/video0 or something ...

alikasundara 09-25-2012 02:50 AM

Quote:

Originally Posted by JaseP (Post 4788405)
Are you sure that there is no udev rule regarding this camera? Did you check within the /etc/udev/rules.d/ directory? They might just ID the camera by vendor...

Positive. The only udev rules I have cover persistent net device naming.

Quote:

I'm not sure how uvcvideo works, but I would assume that udev has to ID the device first, before it just starts using it... uvcvideo is part of the v4l2 subsystem, ... and one would assume that this device is getting assigned to something like /dev/video0 or something ...
It is assigned to /dev/video0 without any rules at all. I am guessing that's because video0 is the default name for this device. Udev man page states that "If no matching rule is found, the default kernel device name is used". I think that's exactly the case here, cause with udev stopped the /dev/video0 node is not created (it's actually removed whenever I stop udev).

Thanks,
Alikasundara

JaseP 09-25-2012 10:25 AM

That just doesn't sound right...

What about in...
/usr/lib/udev/rules.d
???

My understanding was that udevadm handled all the /dev namings... ?!?!
But then again, I don't know whether the udev developers even fully understand udev...

JaseP 09-25-2012 10:41 AM

Alright,... Following up my own post...

See here,...

http://content.hccfl.edu/pollock/AUnix1/udev-info.htm

Third paragraph,... I suppose it is possible for the driver to produce its own dev namings...

So, there's either a rule in one of the rules.d directories, or there's a listing in the driver's data file for the major and minor device node numbers, or the UVC driver is doing it directly. If it's the two former scenarios, you need to edit those files. If it's the latter, you either patch UVC to NOT pick up that device, or you're S-O-L, unfortunately.


All times are GMT -5. The time now is 04:37 AM.