I can use the following to list all attached USB devices.

The output will be something like the following.

Take note of Device 009, i.e. “Microsoft Corp.”. Thats an Xbox One controller plugged in to a USB port.

(Also FYI, the device known as “Logic3” is a RockCandy brand Xbox 360 controller)

I can retrieve some data about the controller as follows:

Bus 001, Device 009.

It is not controller data though. Pressing buttons does not update any of the values.

Using ‘lsusb -v‘ provides an interpretation of all attached devices (i.e. if you follow along, you’ll note the data above is the same as the data below).

An article on creating Linux Drivers (kernel modules).

lsmod can be used to list all currently installed Kernel Modules.

The other option is communicating using usbfs, but usbfs is legacy and no longer enabled on Ubuntu. Instead, Ubuntu uses udev. udev is what’s going on in the /dev/ folder. A dynamically generated file system of attached hardware.

If I do the following:

I’ll get a realtime stream of raw input data.

That’s all. Just thought this was interesting.