[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Module aliases etc.

On 20/02/18 16:45, Lennart Sorensen wrote:
On Sat, Feb 17, 2018 at 12:05:13PM +0000, Mark Morgan Lloyd wrote:
I'm trying to disentangle some driver issues so that I can backport a module
for a colleague with a weird peripheral. Can anybody tell me what the "b"
field here is, and in particular the significance of the number (3 or 5 in
the example below)?

alias:          hid:b0003g*v0000056Ep0000010D
alias:          hid:b0003g*v0000056Ep0000010C
alias:          hid:b0003g*v0000056Ep000000FF
alias:          hid:b0003g*v0000056Ep000000FE
alias:          hid:b0005g*v0000056Ep00000061

I'd assumed from udev/hwdb that it was a bus identifier applicable to
something that was actually plugged in, but I'm curious to see it varying on
a virgin system that's never seen the peripheral in question.

Well the kernel source code says:

         return scnprintf(buf, PAGE_SIZE, "hid:b%04Xg%04Xv%08Xp%08X\n",
                          hdev->bus, hdev->group, hdev->vendor, hdev->product);


        switch (hdev->bus) {
         case BUS_USB:
                 bus = "USB";
         case BUS_BLUETOOTH:
                 bus = "BLUETOOTH";
         case BUS_I2C:
                 bus = "I2C";
                 bus = "<UNKNOWN>";

So it appears to be a bus type.  3 is USB, 5 is BLUETOOTH according to input.h

Thanks very much, got it. So apparently includes things like the 8042 keyboard controller and so on.

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

Reply to: