* [Buildroot] [PATCH 0/5] Latest fixings to Mender
@ 2019-02-05 9:43 Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 1/5] package/mender: adding a writable location Angelo Compagnucci
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
This patch series tries to ressurect the efforts Mizra did in August
last year to have a proper mender package running on buildroot.
Here you can find a list of threads referring to the last outstanding
problems:
https://patchwork.ozlabs.org/patch/959695/
https://patchwork.ozlabs.org/patch/959705/
https://patchwork.ozlabs.org/patch/959700/
https://patchwork.ozlabs.org/patch/959703/
Angelo Compagnucci (5):
package/mender: adding a writable location
package/mender: adding systemv init file
package/mender: adding artifact_info file
package/mender: adding device_type file
package/mender: adding a readme file
package/mender/S04mender | 56 +++++++++++++++++++++++++++++++++++++++++++
package/mender/artifact_info | 1 +
package/mender/device_type | 1 +
package/mender/mender.mk | 13 ++++++++++
package/mender/mender.service | 12 +++++++++-
package/mender/readme.txt | 18 ++++++++++++++
6 files changed, 100 insertions(+), 1 deletion(-)
create mode 100644 package/mender/S04mender
create mode 100644 package/mender/artifact_info
create mode 100644 package/mender/device_type
create mode 100644 package/mender/readme.txt
--
2.7.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/5] package/mender: adding a writable location
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
@ 2019-02-05 9:43 ` Angelo Compagnucci
2019-02-05 10:39 ` Yann E. MORIN
2019-02-05 9:43 ` [Buildroot] [PATCH 2/5] package/mender: adding systemv init file Angelo Compagnucci
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
Mender needs /var/lib/mender to be writable at the service start, the
path is hardcoded and thus we cannot change it.
This patch solves the problem using the same approach we have for
dropbear.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
package/mender/mender.mk | 2 ++
package/mender/mender.service | 12 +++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/package/mender/mender.mk b/package/mender/mender.mk
index a5cece7..1f66615 100644
--- a/package/mender/mender.mk
+++ b/package/mender/mender.mk
@@ -49,6 +49,8 @@ define MENDER_INSTALL_CONFIG_FILES
$(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \
$(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f)
)
+
+ ln -snf /var/run/mender $(TARGET_DIR)/var/lib/mender
endef
MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES
diff --git a/package/mender/mender.service b/package/mender/mender.service
index 9ede55a..8b60a4f 100644
--- a/package/mender/mender.service
+++ b/package/mender/mender.service
@@ -6,7 +6,17 @@ After=systemd-resolved.service
Type=idle
User=root
Group=root
-ExecStartPre=/bin/mkdir -p -m 0700 /data/mender
+ExecStartPre=/bin/sh -c '\
+if [ -L /var/lib/mender \
+ -a "$(readlink /var/lib/mender)" = "/var/run/mender" ]; then \
+ if rm -f /var/lib/mender >/dev/null 2>&1; then \
+ mkdir -p /var/lib/mender; \
+ else \
+ echo "No persistent location to store mender data. Data will be lost\
+ echo "at reboot. Are you sure this is what you want to do?"; \
+ mkdir -p "$(readlink /var/lib/mender)"; \
+ fi; \
+fi'
ExecStart=/usr/bin/mender -daemon
Restart=on-abort
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/5] package/mender: adding systemv init file
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 1/5] package/mender: adding a writable location Angelo Compagnucci
@ 2019-02-05 9:43 ` Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 3/5] package/mender: adding artifact_info file Angelo Compagnucci
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
This patch adds a service file for the init system v.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
package/mender/S04mender | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
package/mender/mender.mk | 5 +++++
2 files changed, 61 insertions(+)
create mode 100644 package/mender/S04mender
diff --git a/package/mender/S04mender b/package/mender/S04mender
new file mode 100644
index 0000000..d5266aa
--- /dev/null
+++ b/package/mender/S04mender
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# Starts mender service.
+#
+
+start() {
+ # If /var/lib/mender is a symlink to /var/run/mender, and
+ # - the filesystem is RO (i.e. we can not rm the symlink),
+ # create the directory pointed to by the symlink.
+ # - the filesystem is RW (i.e. we can rm the symlink),
+ # replace the symlink with an actual directory
+ if [ -L /var/lib/mender \
+ -a "$(readlink /var/lib/mender)" = "/var/run/mender" ]
+ then
+ if rm -f /var/lib/mender >/dev/null 2>&1; then
+ mkdir -p /var/lib/mender
+ else
+ echo "No persistent location to store mender data. Data will be lost"
+ echo "at reboot. Are you sure this is what you want to do?"
+ mkdir -p "$(readlink /var/lib/mender)"
+ fi
+ fi
+
+ printf "Starting mender service: "
+ umask 077
+
+ start-stop-daemon -S -q -p /var/run/mender.pid \
+ --exec /usr/bin/mender -- -daemon
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+stop() {
+ printf "Stopping mender mender: "
+ start-stop-daemon -K -q -p /var/run/mender.pid
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
diff --git a/package/mender/mender.mk b/package/mender/mender.mk
index 1f66615..655342c 100644
--- a/package/mender/mender.mk
+++ b/package/mender/mender.mk
@@ -63,4 +63,9 @@ define MENDER_INSTALL_INIT_SYSTEMD
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mender.service
endef
+define MENDER_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 755 package/mender/S04mender \
+ $(TARGET_DIR)/etc/init.d/S04mender
+endef
+
$(eval $(golang-package))
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 3/5] package/mender: adding artifact_info file
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 1/5] package/mender: adding a writable location Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 2/5] package/mender: adding systemv init file Angelo Compagnucci
@ 2019-02-05 9:43 ` Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 4/5] package/mender: adding device_type file Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 5/5] package/mender: adding a readme file Angelo Compagnucci
4 siblings, 0 replies; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
In order to have the mender package working out of the box, the
/etc/mender/artifact_info should be present and should contain a
valid artifact_name value.
This patch provides a default file that can be overridden easily
from an overlay.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
package/mender/artifact_info | 1 +
package/mender/mender.mk | 3 +++
2 files changed, 4 insertions(+)
create mode 100644 package/mender/artifact_info
diff --git a/package/mender/artifact_info b/package/mender/artifact_info
new file mode 100644
index 0000000..1c84b08
--- /dev/null
+++ b/package/mender/artifact_info
@@ -0,0 +1 @@
+artifact_name=BUILDROOT_ARTIFACT
diff --git a/package/mender/mender.mk b/package/mender/mender.mk
index 655342c..3f9518e 100644
--- a/package/mender/mender.mk
+++ b/package/mender/mender.mk
@@ -50,6 +50,9 @@ define MENDER_INSTALL_CONFIG_FILES
$(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f)
)
+ $(INSTALL) -D -m 0755 package/mender/artifact_info \
+ $(TARGET_DIR)/etc/mender/artifact_info
+
ln -sf /var/run/mender $(TARGET_DIR)/var/lib/mender
endef
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 4/5] package/mender: adding device_type file
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
` (2 preceding siblings ...)
2019-02-05 9:43 ` [Buildroot] [PATCH 3/5] package/mender: adding artifact_info file Angelo Compagnucci
@ 2019-02-05 9:43 ` Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 5/5] package/mender: adding a readme file Angelo Compagnucci
4 siblings, 0 replies; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
In order to have the mender package working out of the box, the
/etc/mender/device_type should be present and should contain a
valid device_type value.
This patch provides a default file that can be overridden easily
from an overlay.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
package/mender/device_type | 1 +
package/mender/mender.mk | 3 +++
2 files changed, 4 insertions(+)
create mode 100644 package/mender/device_type
diff --git a/package/mender/device_type b/package/mender/device_type
new file mode 100644
index 0000000..a097ef2
--- /dev/null
+++ b/package/mender/device_type
@@ -0,0 +1 @@
+device_type=BUILDROOT_DEVICE
diff --git a/package/mender/mender.mk b/package/mender/mender.mk
index 3f9518e..f77e171 100644
--- a/package/mender/mender.mk
+++ b/package/mender/mender.mk
@@ -53,6 +53,9 @@ define MENDER_INSTALL_CONFIG_FILES
$(INSTALL) -D -m 0755 package/mender/artifact_info \
$(TARGET_DIR)/etc/mender/artifact_info
+ $(INSTALL) -D -m 0755 package/mender/device_type \
+ $(TARGET_DIR)/etc/mender/device_type
+
ln -sf /var/run/mender $(TARGET_DIR)/var/lib/mender
endef
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 5/5] package/mender: adding a readme file
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
` (3 preceding siblings ...)
2019-02-05 9:43 ` [Buildroot] [PATCH 4/5] package/mender: adding device_type file Angelo Compagnucci
@ 2019-02-05 9:43 ` Angelo Compagnucci
4 siblings, 0 replies; 7+ messages in thread
From: Angelo Compagnucci @ 2019-02-05 9:43 UTC (permalink / raw)
To: buildroot
This patch adds a readme file with basic instructions to get mender up
and running on a production system.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
package/mender/readme.txt | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 package/mender/readme.txt
diff --git a/package/mender/readme.txt b/package/mender/readme.txt
new file mode 100644
index 0000000..5b3a4db
--- /dev/null
+++ b/package/mender/readme.txt
@@ -0,0 +1,18 @@
+=== Notes on using Mender on Buildroot
+======================================
+
+Default configurations files
+----------------------------
+
+Buildroot comes with a default artifact_info and device_type configuration files
+in /etc/mender. They contains default values and thus they should be overridden
+on a production system.
+
+The simplest way to do it is to change these files in an overlay.
+
+Configuring mender with certificates
+------------------------------------
+
+Mender uses TLS to communicate with the management server, and if you use a CA
+signed certificate on the server, you should select the ca-certificates package
+otherwise it will not work.
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/5] package/mender: adding a writable location
2019-02-05 9:43 ` [Buildroot] [PATCH 1/5] package/mender: adding a writable location Angelo Compagnucci
@ 2019-02-05 10:39 ` Yann E. MORIN
0 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2019-02-05 10:39 UTC (permalink / raw)
To: buildroot
Angelo, All,
On 2019-02-05 10:43 +0100, Angelo Compagnucci spake thusly:
> Mender needs /var/lib/mender to be writable at the service start, the
> path is hardcoded and thus we cannot change it.
> This patch solves the problem using the same approach we have for
> dropbear.
>
> Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Regards,
Yann E. MORIN.
> ---
> package/mender/mender.mk | 2 ++
> package/mender/mender.service | 12 +++++++++++-
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/package/mender/mender.mk b/package/mender/mender.mk
> index a5cece7..1f66615 100644
> --- a/package/mender/mender.mk
> +++ b/package/mender/mender.mk
> @@ -49,6 +49,8 @@ define MENDER_INSTALL_CONFIG_FILES
> $(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \
> $(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f)
> )
> +
> + ln -snf /var/run/mender $(TARGET_DIR)/var/lib/mender
> endef
>
> MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES
> diff --git a/package/mender/mender.service b/package/mender/mender.service
> index 9ede55a..8b60a4f 100644
> --- a/package/mender/mender.service
> +++ b/package/mender/mender.service
> @@ -6,7 +6,17 @@ After=systemd-resolved.service
> Type=idle
> User=root
> Group=root
> -ExecStartPre=/bin/mkdir -p -m 0700 /data/mender
> +ExecStartPre=/bin/sh -c '\
> +if [ -L /var/lib/mender \
> + -a "$(readlink /var/lib/mender)" = "/var/run/mender" ]; then \
> + if rm -f /var/lib/mender >/dev/null 2>&1; then \
> + mkdir -p /var/lib/mender; \
> + else \
> + echo "No persistent location to store mender data. Data will be lost\
> + echo "at reboot. Are you sure this is what you want to do?"; \
> + mkdir -p "$(readlink /var/lib/mender)"; \
> + fi; \
> +fi'
> ExecStart=/usr/bin/mender -daemon
> Restart=on-abort
>
> --
> 2.7.4
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/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. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-02-05 10:39 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-05 9:43 [Buildroot] [PATCH 0/5] Latest fixings to Mender Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 1/5] package/mender: adding a writable location Angelo Compagnucci
2019-02-05 10:39 ` Yann E. MORIN
2019-02-05 9:43 ` [Buildroot] [PATCH 2/5] package/mender: adding systemv init file Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 3/5] package/mender: adding artifact_info file Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 4/5] package/mender: adding device_type file Angelo Compagnucci
2019-02-05 9:43 ` [Buildroot] [PATCH 5/5] package/mender: adding a readme file Angelo Compagnucci
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox