[Buildroot] [PATCH 1/1] package/swupdate: add option to enable USB install
Yann E. MORIN
yann.morin.1998 at free.fr
Sat Sep 11 16:37:00 UTC 2021
James, All,
On 2021-09-11 09:10 -0600, James Hilliard spake thusly:
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
> ---
> package/swupdate/Config.in | 7 +++++++
> package/swupdate/swupdate-usb.rules | 2 ++
> package/swupdate/swupdate.mk | 3 +++
> 3 files changed, 12 insertions(+)
> create mode 100644 package/swupdate/swupdate-usb.rules
>
> diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
> index 6b832cfcbf..54a99b73d5 100644
> --- a/package/swupdate/Config.in
> +++ b/package/swupdate/Config.in
> @@ -60,6 +60,13 @@ config BR2_PACKAGE_SWUPDATE_CONFIG
> I you wish to use your own modified swupdate configuration
> file specify the config file location with this option.
>
> +config BR2_PACKAGE_SWUPDATE_USB
> + bool "swupdate usb"
> + default y
Options should not default to 'y', unless there is a good reason for
that, in which case it should be dully explained in the commit log.
> + depends on BR2_PACKAGE_SYSTEMD
> + help
> + Enable update from USB disk.
> +
> config BR2_PACKAGE_SWUPDATE_WEBSERVER
> bool "swupdate webserver"
> default y
> diff --git a/package/swupdate/swupdate-usb.rules b/package/swupdate/swupdate-usb.rules
> new file mode 100644
> index 0000000000..b4efd0b733
> --- /dev/null
> +++ b/package/swupdate/swupdate-usb.rules
> @@ -0,0 +1,2 @@
> +ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", ENV{ID_FS_USAGE}=="filesystem", TAG+="systemd", ENV{SYSTEMD_WANTS}+="swupdate-usb@%k.service"
> +
Spurious trailing empty line.
Also, I concur with Arnout: this is a bit dangerous, and users must be
made aware, in one form or another, that they should really setup a PKI
to sign their swu, or anyone with physical access to the device will be
able to update to arbitrary firmwares.
Regards,
Yann E. MORIN.
> diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
> index c49af7ebf7..c06106e2ee 100644
> --- a/package/swupdate/swupdate.mk
> +++ b/package/swupdate/swupdate.mk
> @@ -252,6 +252,9 @@ define SWUPDATE_INSTALL_INIT_SYSTEMD
> $(TARGET_DIR)/usr/lib/systemd/system/swupdate.socket
> $(INSTALL) -D -m 644 package/swupdate/swupdate-usb at .service \
> $(TARGET_DIR)/usr/lib/systemd/system/swupdate-usb at .service
> + $(if $(BR2_PACKAGE_SWUPDATE_USB), \
> + $(INSTALL) -D -m 644 package/swupdate/swupdate-usb.rules \
I know this is not enforced everywhere, and that the CWD at runtime is
always the top-level of the buildroot tree, but I'd really like that we
refer to the package directory using the appropriate variable, rather
than hard-coding it, like $(SWUPDATE_PKGDIR):
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-usb.rules ...
Regards,
Yann E. MORIN.
> + $(TARGET_DIR)/lib/udev/rules.d/swupdate-usb.rules)
> $(INSTALL) -D -m 644 package/swupdate/swupdate-progress.service \
> $(TARGET_DIR)/usr/lib/systemd/system/swupdate-progress.service
> $(INSTALL) -D -m 644 package/swupdate/tmpfiles-swupdate.conf \
> --
> 2.25.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at lists.buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list