[Buildroot] [PATCH v2] eudev: generate hwdb.bin at system startup
Carlos Santos
casantos at datacom.com.br
Tue Oct 16 17:00:44 UTC 2018
> From: "Matthew Weber" <matthew.weber at rockwellcollins.com>
> To: "DATACOM" <casantos at datacom.com.br>
> Cc: "buildroot" <buildroot at buildroot.org>, "Bernd Kuhls" <bernd.kuhls at t-online.de>, "Eric Le Bihan"
> <eric.le.bihan.dev at free.fr>, "Yann Morin" <yann.morin.1998 at free.fr>, "Carlos Santos" <casantos at datacom.ind.br>
> Sent: Tuesday, October 16, 2018 12:21:41 PM
> Subject: Re: [PATCH v2] eudev: generate hwdb.bin at system startup
> Carlos,
>
> On Tue, Oct 16, 2018 at 6:50 AM Carlos Santos <casantos at datacom.com.br> wrote:
>>
>> From: Carlos Santos <casantos at datacom.ind.br>
>>
>> Programs that use libudev (e.g. lsusb, from usbutils) need the hwdb.bin
>> file to work properly.
>
> Sounds like a great runtime test? I had wondered other then testing
> that the .bin generates, what's the example with those tools to show
> the bin is working?
# lsusb -V
lsusb (usbutils) 010
# lsusb
Bus 002 Device 002: ID 0951:16a3 Kingston Technology
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
dm8620# mv /etc/udev/hwdb.bin /etc/udev/hwdb.bin~
# lsusb
Bus 002 Device 002: ID 0951:16a3
Bus 002 Device 001: ID 1d6b:0003
Bus 001 Device 001: ID 1d6b:0002
>> If BR2_PACKAGE_EUDEV_ENABLE_HWDB is selected then the eudev installation
>> populates /etc/udev/hwdb.d/ but does not genarete /etc/udev/hwdb.bin. It
>> must be created running "udevadm hwdb --update" on the target device but
>> this does not work with a read-only /etc, so we need these changes:
>>
>> - Add the BR2_PACKAGE_EUDEV_HWDB_BIN_PATH config, allowing the user to
>> set the location of hwdb.bin.
>> - Patch the configuration script, allowing to set the hwdb.bin path by
>> means of an environment variable (udevhwdbbinpath).
>> - Pass the value set in BR2_PACKAGE_EUDEV_HWDB_BIN_PATH to the configure
>> script by means of the udevhwdbbinpath variable.
>> - Make the S10udev init script run "udevadm hwdb --update" to recreate
>> hwdb.bin or print an error message if the operation fails (e.g. no
>> write permission on the filesystem).
>>
>> Signed-off-by: Carlos Santos <casantos at datacom.ind.br>
>> Tested-by: Matt Weber <matthew.weber at rockwellcollins.com>
>> ---
>> Changes v1->v2
>> - Incorporate fixes and improvements provided by Matt Weber
>>
>> Note: there was a discussion via email and on IRC, with suggetsions to
>> prebuild hwdb.bin at build time and to add a /etc/defaults/udev cfg file
>> instead patching S10udev (like in the recent S01logging suggested
>> updates). I like both suggestions but I'd prefer to implement them in
>> subsequent patches rather, since they woud require additional changes
>> (e.g. adding eudev as a host tool).
>
> Guessing the use of SED setting that value maybe a sticking point
> where there would be a push to use the default cfg approach. Wouldn't
> need to be an offline build in this patchset.
The problem here is that we must set a default path at build time,
since the /etc/default/<foo> files are optional. Moreover, S10udev
requires an extreme overhauling due to several bugs:
- the inclusion of /etc/udev/udev.conf does not make sense;
- poor error handling and report;
- there is no "restart" nor "reload";
- it should use start-stop-daemon to start/stop udevd.
>> ---
>> package/eudev/Config.in | 9 +++++++++
>> package/eudev/S10udev | 8 +++++++-
>> package/eudev/eudev.mk | 13 ++++++++++++-
>> 3 files changed, 28 insertions(+), 2 deletions(-)
>>
>> diff --git a/package/eudev/Config.in b/package/eudev/Config.in
>> index 2220265a55..a589a14af3 100644
>> --- a/package/eudev/Config.in
>> +++ b/package/eudev/Config.in
>> @@ -32,6 +32,15 @@ config BR2_PACKAGE_EUDEV_ENABLE_HWDB
>> help
>> Enables hardware database installation to /etc/udev/hwdb.d
>>
>> +config BR2_PACKAGE_EUDEV_HWDB_BIN_PATH
>
> I believe the dependency needs reflected here on
> BR2_PACKAGE_EUDEV_ENABLE_HWDB? Wouldn't that be the case?
Yes, I forgot this one. Sorry.
[...]
--
Carlos Santos (Casantos) - DATACOM, P&D
“Marched towards the enemy, spear upright, armed with the certainty
that only the ignorant can have.” — Epitaph of a volunteer
More information about the buildroot
mailing list