All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Gladkov <legion@kernel.org>
To: Allen Webb <allenwebb@google.com>
Cc: Luis Chamberlain <mcgrof@kernel.org>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] modules: add modalias file to sysfs for modules.
Date: Thu, 17 Nov 2022 16:54:12 +0100	[thread overview]
Message-ID: <Y3ZZJGSsC4VruKg3@example.org> (raw)
In-Reply-To: <CAJzde06cFefEFwRxYo1ia=27rUw6yPn9ejkNChEH8YnVK1LWYQ@mail.gmail.com>

On Tue, Nov 15, 2022 at 12:40:57PM -0600, Allen Webb wrote:
> When i get the modinfo for usbhid, there are no aliases listed:
> ```
> localhost ~ # modinfo usbhid
> name:           usbhid
> filename:       (builtin)
> author:         Andreas Gal
> author:         Vojtech Pavlik
> author:         Jiri Kosina
> description:    USB HID core driver
> file:           drivers/hid/usbhid/usbhid
> license:        GPL
> parm:           quirks:Add/modify USB HID quirks by specifying
> quirks=vendorID:productID:quirks where vendorID, productID, and quirks
> are all in 0x-prefixed hex (array of charp)
> parm:           ignoreled:Autosuspend with active leds (uint)
> parm:           kbpoll:Polling interval of keyboards (uint)
> parm:           jspoll:Polling interval of joysticks (uint)
> parm:           mousepoll:Polling interval of mice (uint)
> ```

Hm. Interesting. Actually, alias gets into modules.builtin.modinfo:

$ tr '\0' '\n' <  /lib/modules/`uname -r`/modules.builtin.modinfo |grep ^crc32c_generic.alias=
crc32c_generic.alias=crypto-crc32c-generic
crc32c_generic.alias=crc32c-generic
crc32c_generic.alias=crypto-crc32c
crc32c_generic.alias=crc32c

> bluetooth however has an alias listed:
> ```
> localhost ~ # modinfo bluetooth
> filename:
> /lib/modules/5.10.154-20424-gea7532c123d8/kernel/net/bluetooth/bluetooth.ko.gz
> author:         Marcel Holtmann <marcel@holtmann.org>
> description:    Bluetooth Core ver 2.22
> version:        2.22
> license:        GPL
> alias:          net-pf-31
> vermagic:       5.10.154-20424-gea7532c123d8 SMP preempt mod_unload
> name:           bluetooth
> intree:         Y
> retpoline:      Y
> depends:        ecdh_generic
> srcversion:     F8E46CD048C50B0AA1CD471
> parm:           disable_esco:Disable eSCO connection creation (bool)
> parm:           enable_ecred:Enable enhanced credit flow control mode (bool)
> parm:           disable_ertm:Disable enhanced retransmission mode (bool)
> ```
> 
> I believe the reason for this is many modules use `#define
> MODULE_DEVICE_TABLE(type, name)` which is a noop for buildin modules.
> I have a local patch that resolves that issue here:
> See: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3840672/1/include/linux/module.h#b246
> 
> However, I probably ought to rework that patch to create the
> MODULE_ALIAS defines instead of the buildin.alias file.
> 
> On Tue, Nov 15, 2022 at 11:35 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
> >
> > On Tue, Nov 15, 2022 at 10:05:35AM -0600, Allen Webb wrote:
> > > On Mon, Nov 14, 2022 at 11:22 AM Lucas De Marchi
> > > <lucas.demarchi@intel.com> wrote:
> > > >
> > > > On Mon, Nov 14, 2022 at 10:42:50AM -0600, Allen Webb wrote:
> > > > >On Fri, Nov 11, 2022 at 12:29 PM Luis Chamberlain <mcgrof@kernel.org> wrote:
> > > > >>
> > > > >> On Fri, Nov 11, 2022 at 09:28:52AM -0600, Allen Webb wrote:
> > > > >> > USB devices support the authorized attribute which can be used by
> > > > >> > user-space to implement trust-based systems for enabling USB devices. It
> > > > >> > would be helpful when building these systems to be able to know in
> > > > >> > advance which kernel drivers (or modules) are reachable from a
> > > > >> > particular USB device.
> > > > >> >
> > > > >> > This information is readily available for external modules in
> > > > >> > modules.alias. However, builtin kernel modules are not covered. This
> > > > >> > patch adds a sys-fs attribute to both builtin and loaded modules
> > > > >> > exposing the matching rules in the modalias format for integration
> > > > >> > with tools like USBGuard.
> > > > >> >
> > > > >> > Signed-off-by: Allen Webb <allenwebb@google.com>
> > > > >>
> > > > >> Thanks for the patch Allen!
> > > > >>
> > > > >> I'd rather have something generic though, and it would seem kmod [0] already
> > > > >> does this, have you seen the kmod support for builtin.alias.bin
> > > > >>
> > > > >> Can't that be used?
> > > > >
> > > > >Probably, but I don't see the builtin.alias.bin in my build. Is it experimental?
> > > >
> > > > no. That is generated by depmod since v27 using modules.builtin.modinfo
> > > > generated by the kernel build system. Highly recommend v30 though
> > > > as there were fixes in v28 and v29 and some changes to speed up its
> > > > generation/use in v30:  See entries mentioning
> > > > builtin.alias and bultin.modinfo in
> > > > https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/tree/NEWS
> > > >
> > > > libkmod/modprobe/modinfo also have the corresponding changes to lookup that
> > > > index when resolving aliases.
> > >
> > > I see the file but it is largely missing the aliases I am interested
> > > in, so it looks like I might need to modify my patch that creates
> > > buildin.alias to add the missing alias defines in the header along
> > > with the other module metadata for builtin modules. Does this sound
> > > right to you?
> >
> > Can you clarify what is missing and why? And an RFC is welcomed if it
> > helps demonstrates what you mean.
> >
> >   Luis
> 

-- 
Rgrds, legion


  parent reply	other threads:[~2022-11-17 15:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-10 22:21 Patch to exposing modalias'es for built in kernel modules (USB) Allen Webb
2022-11-11  6:06 ` Greg Kroah-Hartman
2022-11-11  9:59 ` Christophe Leroy
2022-11-11 15:28   ` [PATCH] modules: add modalias file to sysfs for modules Allen Webb
2022-11-11 15:45     ` Greg Kroah-Hartman
2022-11-11 18:29     ` Luis Chamberlain
2022-11-14 16:42       ` Allen Webb
2022-11-14 17:22         ` Lucas De Marchi
2022-11-15 16:05           ` Allen Webb
2022-11-15 17:35             ` Luis Chamberlain
2022-11-15 18:40               ` Allen Webb
2022-11-16 20:42                 ` Allen Webb
2022-11-17 15:54                 ` Alexey Gladkov [this message]
2022-11-11 20:55     ` kernel test robot
2022-11-11 23:07     ` kernel test robot
2022-11-12  0:17     ` kernel test robot
2022-11-28 20:13     ` Allen Webb
2022-11-29  7:40       ` Greg Kroah-Hartman
2022-11-29  7:46       ` Christophe Leroy
2022-11-29 11:23       ` kernel test robot
2022-11-30  2:22       ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y3ZZJGSsC4VruKg3@example.org \
    --to=legion@kernel.org \
    --cc=allenwebb@google.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-modules@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=lucas.demarchi@intel.com \
    --cc=mcgrof@kernel.org \
    --cc=rafael@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.