Difference between revisions of "FAQ"

From sigrok
Jump to navigation Jump to search
(→‎Logic analyzer questions: Some recommended reading.)
(21 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== What is sigrok? ==
== What is sigrok? ==


sigrok is a '''portable, cross-platform, Free/Libre/Open-Source logic analyzer software''' that supports various logic analyzer hardware products. It is licensed under the terms of the '''GNU GPL'''.
sigrok is a '''portable, cross-platform, Free/Libre/Open-Source signal analysis software suite''' that supports various device types:
 
{| border="0" style="font-size: smaller;"
|- align=left
| [[File:Saleae Logic.png|link=Supported_hardware#Logic_analyzers|100px|thumb|<small>[[Supported_hardware#Logic_analyzers|Logic analyzers]]</small>]]
| [[File:Link Instruments MSO-19 front.png|link=Supported_hardware#Mixed-signal_devices|100px|thumb|<small>[[Supported_hardware#Mixed-signal_devices|MSOs]]</small>]]
| [[File:Hantek dso-5200a device front.png|link=Supported_hardware#Oscilloscopes|100px|thumb|Scopes|<small>[[Supported_hardware#Oscilloscopes|Oscilloscopes]]</small>]]
| [[File:Voltcraft vc820 device.png|link=Supported_hardware#Multimeters|100px|thumb|<small>[[Supported_hardware#Multimeters|Multimeters]]</small>]]
| [[File:Tondaj sl-814.png|link=Supported_hardware#Multimeters|100px|thumb|<small>[[Supported_hardware#Sound_level_meters|Sound level meters]]</small>]]
|- align=left
| [[File:Rding temper front.png|link=Supported_hardware#Thermometers|100px|thumb|<small>[[Supported_hardware#Thermometers|Thermometers]]</small>]]
| [[File:EL-USB-2.png|link=Supported_hardware#Hygrometers|100px|thumb|<small>[[Supported_hardware#Hygrometers|Hygrometers]]</small>]]
| [[File:Mastech ms6252b device front.jpg|link=Supported_hardware#Anemometers|100px|thumb|<small>[[Supported_hardware#Anemometers|Anemometers]]</small>]]
| [[File:Lutron YK-2005LX.png|link=Supported_hardware#Light_meters|100px|thumb|<small>[[Supported_hardware#Light_meters|Light meters]]</small>]]
| [[File:Maul studio i device.jpg|link=Supported_hardware#Dataloggers|100px|thumb|<small>[[Supported_hardware#Dataloggers|Dataloggers]]</small>]]
|- align=left
| [[File:Siglent sdg1010 device front 8116.png|link=Supported_hardware#Function_generators|100px|thumb|<small>[[Supported_hardware#Function_generators|Function generators]]</small>]]
| [[File:Manson hcs3202 front.jpg|link=Supported_hardware#Power_supplies|100px|thumb|<small>[[Supported_hardware#Power_supplies|Power supplies]]</small>]]
| [[File:Prologix-usb.png|link=Supported_hardware#GPIB_interfaces|100px|thumb|<small>[[Supported_hardware#GPIB_interfaces|GPIB interfaces]]</small>]]
|}
 
It is licensed under the terms of the '''GNU GPL'''.


== What does the name sigrok mean? ==
== What does the name sigrok mean? ==


'''sigrok''' is a logic analyzer software that [http://en.wikipedia.org/wiki/Grok '''grok'''s] '''sig'''nals for you.
'''sigrok''' is a software suite that [http://en.wikipedia.org/wiki/Grok '''grok'''s] '''sig'''nals for you.
 
== What is the correct spelling of the name? ==
 
The name is spelled '''sigrok''' (yes, a lower-case "s", even at the beginning of sentences). It is '''not''' spelled "sigrock" or "SigRock" or "Sigrock" or "Sigrok".
 
== What is the official sigrok logo and where can I get it? ==
 
See the [[Logo]] wiki page for PNG and SVG versions of the sigrok logo, which is intended for things '''developed by the sigrok project'''.
 
If you want to advertise that '''your product can be used with sigrok''', we have a specific "[[Advertising sigrok compatible products|works with sigrok]]" logo that you can use (as long as you follow [[Advertising sigrok compatible products#Rules|certain rules]]).
 
The logo was created by [http://benbois.posterous.com/ Benjamin "wooz" Bois] (thanks!) and is licensed under the [https://creativecommons.org/licenses/by-sa/3.0/ CC-BY-SA 3.0] license.
 
<gallery>
File:Sigrok logo.svg|<small>[[Logo|sigrok logo]]</small>
File:Works with sigrok.svg|<small>[[Advertising sigrok compatible products|"Works with sigrok" logo]]</small>
</gallery>
 
== Is my measurement device supported? ==


== Is my logic analyzer supported? ==
Check the [[Supported hardware]] page for a list of supported devices, and those that are currently being worked on. Also, each device has its own wiki page, which lists the details of the hardware support for the respective device.


Check the [[Supported hardware]] page for a list of supported logic analyzers, and those that are currently being worked on. Also, each device has its own wiki page, which lists the details of the hardware support for the respective device.
== Will you add support for my measurement device? ==


== Will you add support for the XYZ logic analyzer? ==
Maybe. We generally try to support as much hardware as possible. However, as there are really [[Logic analyzer comparison|many]], [[Mixed-signal device comparison|many]], [[Oscilloscope comparison|many]], [[Multimeter comparison|many]], [[Datalogger comparison|many]], [[GPIB interface comparison|many]] devices out there, this is of course a non-trivial task. We only have limited spare time. Thus, naturally, we're happy about any code contributions for yet unsupported devices!


Maybe. We generally try to support as much hardware as possible. However, as there are [[Logic Analyzer Comparison|really many devices]] out there, this is of course a non-trivial task. We only have limited spare time, and a limited amount of money, too. Thus, naturally, we're happy about both code contributions as well as hardware donations (contact [mailto:bert@biot.com Bert Vermeulen] and [mailto:uwe@hermann-uwe.de Uwe Hermann] if you want to help out).
'''Note:''' We generally do ''not'' take requests for adding specific hardware support. We already have a huge list of hardware that we plan to support eventually, and there are only a limited amount of developers and a limited amount of time in a day. Telling us "please add support for device XYZ" is not necessary (since we already want to support all devices out there). If you want to see your ''specific'' device supported, the best method is to figure out the protocol and add the respective [[libsigrok]] driver yourself. We're happy to help with any API or protocol questions, please join us on IRC for that ([http://webchat.freenode.net/?channels=%23sigrok&uio=MT1mYWxzZQ9a #sigrok] on FreeNode).


== Do you build/sell/design logic analyzers? ==
== Do you build/sell/design logic analyzers? ==


No. The sigrok project is a pure (open-source) software project. We're not designing, building, or selling hardware. We only add software support for already existing logic analyzer hardware.
No. The sigrok project is a pure (open-source) software project. We're not designing, building, or selling hardware. We only add software support for already existing hardware.


== Which logic analyzer do you recommend buying? ==
== Which device do you recommend buying? ==


We generally don't make any buying recommendations. There are [[Logic Analyzer Comparison|many, many logic analyzers]] from different companies, with highly different capabilities and features out there, in price ranges from $60 up to $5000 or more. It all depends on your specific needs and preferences, and on the amount of money you are willing to spend.
We generally don't make any buying recommendations. There are many devices from different companies, with highly different capabilities and features out there, in price ranges from $60 up to $5000 or more. It all depends on your specific needs and preferences, and on the amount of money you are willing to spend.


However, as a small starting point for your own research in order to find a device which fits your need, we provide a [[Logic Analyzer Comparison]] table which lists some (but not all) relevant data points which you may want to compare.
However, as a small starting point for your own research in order to find a device which fits your need, we provide comparison tables for [[Logic analyzer comparison|logic analyzers]], [[Mixed-signal device comparison|mixed-signal devices]], [[Oscilloscope comparison|oscilloscopes]], [[Multimeter comparison|multimeter]], [[Datalogger comparison|dataloggers]], and [[GPIB interface comparison|GPIB interfaces]], which list some (but not all) relevant data points which you may want to compare.


= Logic analyzer questions =
= Logic analyzer questions =
Line 31: Line 71:
== What is a logic analyzer? ==
== What is a logic analyzer? ==


A '''logic analyzer''' is a device which can display and/or analyze the state of one or more signals of a circuit or target device. For details see the respective [http://en.wikipedia.org/wiki/Logic_analyzer Wikipedia page], or read [http://www.ttiedu.com/articles/tektronix_logic.pdf Tektronix: The XYZs of Logic Analyzers] (PDF) for an introduction.
[[File:Saleae logic.jpg|thumb|right|An 8-channel logic analyzer]]
 
A logic analyzer is a device which can display and/or analyze the state of one or more signals of a circuit or target device. For a quick introduction see also the respective [http://en.wikipedia.org/wiki/Logic_analyzer Wikipedia page], but make sure to read some of the documents from [[FAQ#Where_can_I_read_more_about_logic_analyzers.3F|this entry]] for more details.
 
== Where can I learn more about logic analyzers? ==
 
Here is a list of recommended readings on various topics related to logic analyzers.
 
'''Note:''' Some of the Agilent/Tektronix documents are geared towards higher-end/expensive standalone logic analyzers, i.e. not the usual USB-based ones supported by sigrok. Thus, some of the information in those documents may not necessarily be relevant or important for most people. They do also provide lots of generally useful information, though, so reading them is recommended.


Further recommended readings include:
'''Introduction to logic analyzers:'''


* [http://www.ttiedu.com/articles/tektronix_logic.pdf Tektronix: The XYZs of Logic Analyzers] (PDF)
* [http://www.ttiedu.com/articles/tektronix_logic.pdf Tektronix: The XYZs of Logic Analyzers] (PDF)
* [http://www.home.agilent.com/agilent/facet.jspx?to=80030.k.1&c=153491.i.2&cc=EN Agilent: Application Notes: Logic Analyzer]
* [http://www.eetimes.com/design/programmable-logic/4015108/A-How-To-tutorial-on-logic-analyzer-basics-for-digital-design EE Times/Agilent: A "How To" tutorial on logic analyzer basics for digital design]
** [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=871043&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Application Note 1589: Evaluating Logic Analyzers Objectively]
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=1000001806%3Aepsg%3Aapn&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Application Note 1337: Feeling Comfortable with Logic Analyzers] (PDF)
** [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=695572&lc=ger&cc=DE&nfr=-536902443.0.00 Agilent: 6 Tips for Successful Logic Analyzer Probing] (PDF)
 
** ...
'''Samplerate, bandwidth, timing issues:'''
 
* [http://www.eetimes.com/electronics-news/4196919/How-Much-Bandwidth-Does-Your-Logic-Analyzer-Need- EE Times/Agilent: How Much Bandwidth Does Your Logic Analyzer Need?]
* [http://www.testequity.com/documents/pdf/tla_timing.pdf Tektronix: The Importance of Timing Accuracy in a Logic Analyzer] (PDF)
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=851070&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Application Note 1582: Logic Analyzer Specifications: How Much Timing Speed Do You Need?] (PDF)
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=1000069912%3Aepsg%3Adow&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Reliable State Measurements on High Speed Buses] (PDF)
* [http://www2.tek.com/cmswpt/tidetails.lotr?ct=TI&cs=Primer&ci=14174&lc=EN Tektronix: Fundamentals of Signal Integrity Primer] (PDF, you need to provide some info before download)
 
'''Comparing or buying logic analyzers:'''
 
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=871043&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Application Note 1589: Evaluating Logic Analyzers Objectively] (PDF)
* [http://www.janatek.co.za/faq_buying_logic_analyzer.html Janatek: F.A.Q: What to consider before buying a logic analyzer]
* [http://www.janatek.co.za/faq_buying_logic_analyzer.html Janatek: F.A.Q: What to consider before buying a logic analyzer]
* [http://www.eetimes.com/electronics-news/4196919/How-Much-Bandwidth-Does-Your-Logic-Analyzer-Need- EE Times/Agilent: How Much Bandwidth Does Your Logic Analyzer Need?]
 
* [http://www.eetimes.com/design/programmable-logic/4015108/A-How-To-tutorial-on-logic-analyzer-basics-for-digital-design EE Times/Agilent: A "How To" tutorial on logic analyzer basics for digital design]
'''Triggers:'''
 
* [http://www.home.agilent.com/agilent/redirector.jspx?action=doc&lc=ger&cc=DE&id=1000001305-1%3Aepsg%3Atcn&ltype=External%20File HP/Agilent: Insight article: Volume 4, Issue 3: Understanding Logic Analyzer Triggering] (PDF)
 
'''Probing issues:'''
 
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=695572&lc=ger&cc=DE&nfr=-536902443.0.00 Agilent: Application Note 1501: 6 Tips for Successful Logic Analyzer Probing] (PDF)
* [http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=237671&lc=eng&cc=US&nfr=-536902443.0.00 Agilent: Application Note 1450: Logic Analyzer Probing Techniques for High-Speed Digital Systems] (PDF)
 
'''Other:'''
 
* [http://www.home.agilent.com/agilent/facet.jspx?to=80030.k.1&c=153491.i.2&cc=EN Agilent: Application Notes: Logic Analyzer] (list of documents)
* [http://www.tek.com/learning/logic-analyzer-tutorial/ Tektronix: Logic Analyzer Tutorials] (list of documents)
 
== What kind of logic analyzer probes are available? ==
 
[[File:Probes various.jpg|thumb|right|<small>Small probe collection.</small>]]
 
There are many logic analyzer probes of varying quality and price on the market (see photo for a small subset).
 
See [[Probe comparison]] for more information about the usefulness and quality of various probe types, where to buy them, and so on.
 
= Multimeter questions =
 
== What is a multimeter? ==
 
[[File:Voltcraft vc820 device.jpg|thumb|right|A digital multimeter]]
 
A '''multimeter''' or '''digital multimeter''' (DMM) or '''Volt-Ohm meter''' (VOM) is a measurement device which can measure multiple things (such as voltage, current, resistance, temperature, and others). We won't go into all the details here, see the [https://en.wikipedia.org/wiki/Multimeter multimeter page on Wikipedia] for more information.
 
== Where can I learn more about multimeters? ==
 
Here's a small selection of good video tutorials on multimeters:
 
* [https://www.youtube.com/watch?v=bF3OyQ3HwfU Afrotechmods: THE BEST Multimeter tutorial (HD)]
* [https://www.youtube.com/watch?v=BW3Wj7UD-_s makemagazine: MAKE presents: The Multimeter]
* [https://www.youtube.com/user/mjlorton/videos Youtube videos by mjlorton (M. J. Lorton)]:
** [https://www.youtube.com/watch?v=ZBbgiBU96mM How to use a Multimeter for beginners: Part 1 - Voltage measurement]
** [https://www.youtube.com/watch?v=EVFkKBFJsZg How to use a Multimeter for beginners: Part 2a - Current measurement] ([https://www.youtube.com/watch?v=JID_6JSNwoQ part 2b])
** [https://www.youtube.com/watch?v=InJhgwmj2So How to use a Multimeter for beginners: Part 3 - Resistance and Continuity]
** [https://www.youtube.com/watch?v=JlZtn2PTuYo How to use a multimeter for advanced measurements: Part 1 - Diodes]
** [https://www.youtube.com/watch?v=Kqa51Femytw&feature=relmfu How to use a multimeter for advanced measurements: Part 2 - Current Probes / clamps / transducers]
** [https://www.youtube.com/watch?v=jC_Qhmj8XDc Multimeter Review / buyers guide / tutorial]
* [https://www.youtube.com/playlist?list=PL4F0B97C59B1D2509&feature=plcp Youtube videos by EEVblog (David L. Jones): Multimeter Reviews] (list)
** [https://www.youtube.com/watch?v=U4JFeU-o2kc EEVblog: #26 – Multimeter Counts, Accuracy, Resolution & Calibration] ([http://www.eevblog.com/2009/08/21/eevblog-26-multimeter-counts-accuracy-resolution-calibration/ comments])
** [https://www.youtube.com/watch?v=gh1n_ELmpFI EEVblog: #75 – Digital Multimeter Buying Guide] ([http://www.eevblog.com/2010/04/14/eevblog-75-digital-multimeter-buying-guide/ comments])
 
Some information about [https://en.wikipedia.org/wiki/Multimeter#Safety multimeter safety] and the IEC61010 categories:
 
* [http://www.electroline.com.au/articles/26521-The-ABCs-of-multimeter-safety ElectronicsOnline: The ABCs of multimeter safety] (seems to be adapted from [http://support.fluke.com/SW-Common/SW-Find_It.asp this Fluke PDF])
* [http://www.fluke.com/fluke/usen/training/safety/default.htm Fluke: Electrical Measurement Safety Program] (various articles)
 
= Miscellaneous =
 
== Getting a usable lsusb for USB HID devices ==
 
Sometimes you might see output like this in an lsusb of a USB HID device:
 
<small>
Report Descriptors:
** UNAVAILABLE **
</small>
 
In order to get HID descriptor output in lsusb on Linux you need to perform one of the steps descibed below:
 
'''Option 1 (recommended):'''
For each HID device, also a ''hidraw'' device is registered. The corresponding sysfs entry also contains a report descriptor:
 
<small>
'''hexdump /sys/bus/usb/drivers/usbhid/1-1\:1.0/0003\:1A86\:E008.0008/report_descriptor'''
</small>
 
A more readable representation can be generated using the [http://eleccelerator.com/usbdescreqparser/ USB Descriptor and Request Parser]
 
'''Option 2:'''
 
Just '''unbind a specific driver instance'''. This will leave all other USB HID devices on your system in a working state.
 
Example:
 
<small>
$ '''ls /sys/bus/usb/drivers/usbhid'''
3-2:1.0  4-3:1.4  5-3:1.0  bind  module  new_id  uevent  unbind
$ '''echo 5-3:1.0 > /sys/bus/usb/drivers/usbhid/unbind'''
</small>
 
(you'll have to find out which number refers to your device using e.g. lsusb and checking the contents of the '''/sys/bus/usb/drivers/usbhid''' directory; in this case it is '''5-3:1.0''')
 
'''Option 3 (easier, but will disable ''all'' USB HID devices):'''
 
You can run '''rmmod usbhid'''. However, this will disable ''all'' USB HID devices, including your USB keyboard/mouse! Do this only if you are sure you can recover from this again (i.e. run '''modprobe usbhid''') afterwards. This can be achieved by logging in via ssh or a serial console, or by using a PS/2-attached keyboard instead of a USB-attached keyboard.

Revision as of 18:05, 9 March 2019

General sigrok questions

What is sigrok?

sigrok is a portable, cross-platform, Free/Libre/Open-Source signal analysis software suite that supports various device types:

It is licensed under the terms of the GNU GPL.

What does the name sigrok mean?

sigrok is a software suite that groks signals for you.

What is the correct spelling of the name?

The name is spelled sigrok (yes, a lower-case "s", even at the beginning of sentences). It is not spelled "sigrock" or "SigRock" or "Sigrock" or "Sigrok".

What is the official sigrok logo and where can I get it?

See the Logo wiki page for PNG and SVG versions of the sigrok logo, which is intended for things developed by the sigrok project.

If you want to advertise that your product can be used with sigrok, we have a specific "works with sigrok" logo that you can use (as long as you follow certain rules).

The logo was created by Benjamin "wooz" Bois (thanks!) and is licensed under the CC-BY-SA 3.0 license.

Is my measurement device supported?

Check the Supported hardware page for a list of supported devices, and those that are currently being worked on. Also, each device has its own wiki page, which lists the details of the hardware support for the respective device.

Will you add support for my measurement device?

Maybe. We generally try to support as much hardware as possible. However, as there are really many, many, many, many, many, many devices out there, this is of course a non-trivial task. We only have limited spare time. Thus, naturally, we're happy about any code contributions for yet unsupported devices!

Note: We generally do not take requests for adding specific hardware support. We already have a huge list of hardware that we plan to support eventually, and there are only a limited amount of developers and a limited amount of time in a day. Telling us "please add support for device XYZ" is not necessary (since we already want to support all devices out there). If you want to see your specific device supported, the best method is to figure out the protocol and add the respective libsigrok driver yourself. We're happy to help with any API or protocol questions, please join us on IRC for that (#sigrok on FreeNode).

Do you build/sell/design logic analyzers?

No. The sigrok project is a pure (open-source) software project. We're not designing, building, or selling hardware. We only add software support for already existing hardware.

Which device do you recommend buying?

We generally don't make any buying recommendations. There are many devices from different companies, with highly different capabilities and features out there, in price ranges from $60 up to $5000 or more. It all depends on your specific needs and preferences, and on the amount of money you are willing to spend.

However, as a small starting point for your own research in order to find a device which fits your need, we provide comparison tables for logic analyzers, mixed-signal devices, oscilloscopes, multimeter, dataloggers, and GPIB interfaces, which list some (but not all) relevant data points which you may want to compare.

Logic analyzer questions

What is a logic analyzer?

An 8-channel logic analyzer

A logic analyzer is a device which can display and/or analyze the state of one or more signals of a circuit or target device. For a quick introduction see also the respective Wikipedia page, but make sure to read some of the documents from this entry for more details.

Where can I learn more about logic analyzers?

Here is a list of recommended readings on various topics related to logic analyzers.

Note: Some of the Agilent/Tektronix documents are geared towards higher-end/expensive standalone logic analyzers, i.e. not the usual USB-based ones supported by sigrok. Thus, some of the information in those documents may not necessarily be relevant or important for most people. They do also provide lots of generally useful information, though, so reading them is recommended.

Introduction to logic analyzers:

Samplerate, bandwidth, timing issues:

Comparing or buying logic analyzers:

Triggers:

Probing issues:

Other:

What kind of logic analyzer probes are available?

Small probe collection.

There are many logic analyzer probes of varying quality and price on the market (see photo for a small subset).

See Probe comparison for more information about the usefulness and quality of various probe types, where to buy them, and so on.

Multimeter questions

What is a multimeter?

A digital multimeter

A multimeter or digital multimeter (DMM) or Volt-Ohm meter (VOM) is a measurement device which can measure multiple things (such as voltage, current, resistance, temperature, and others). We won't go into all the details here, see the multimeter page on Wikipedia for more information.

Where can I learn more about multimeters?

Here's a small selection of good video tutorials on multimeters:

Some information about multimeter safety and the IEC61010 categories:

Miscellaneous

Getting a usable lsusb for USB HID devices

Sometimes you might see output like this in an lsusb of a USB HID device:

Report Descriptors:
** UNAVAILABLE **

In order to get HID descriptor output in lsusb on Linux you need to perform one of the steps descibed below:

Option 1 (recommended): For each HID device, also a hidraw device is registered. The corresponding sysfs entry also contains a report descriptor:

hexdump /sys/bus/usb/drivers/usbhid/1-1\:1.0/0003\:1A86\:E008.0008/report_descriptor

A more readable representation can be generated using the USB Descriptor and Request Parser

Option 2:

Just unbind a specific driver instance. This will leave all other USB HID devices on your system in a working state.

Example:

$ ls /sys/bus/usb/drivers/usbhid
3-2:1.0  4-3:1.4  5-3:1.0  bind  module  new_id  uevent  unbind

$ echo 5-3:1.0 > /sys/bus/usb/drivers/usbhid/unbind

(you'll have to find out which number refers to your device using e.g. lsusb and checking the contents of the /sys/bus/usb/drivers/usbhid directory; in this case it is 5-3:1.0)

Option 3 (easier, but will disable all USB HID devices):

You can run rmmod usbhid. However, this will disable all USB HID devices, including your USB keyboard/mouse! Do this only if you are sure you can recover from this again (i.e. run modprobe usbhid) afterwards. This can be achieved by logging in via ssh or a serial console, or by using a PS/2-attached keyboard instead of a USB-attached keyboard.