summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Vacek <patrickvacek@gmail.com>2018-03-29 13:45:30 +0200
committerPatrick Vacek <patrickvacek@gmail.com>2018-05-28 11:10:57 +0200
commit4b33b1ac46fb525941c588b0a4c1b3ce132cad71 (patch)
tree244af48911d34ebc10ff12c35d1f107755666393
parent4bcd0509c780a2e244aab4713926a548c176fb5f (diff)
downloadmeta-updater-bugfix/PRO-5140/hardware_ids.tar.gz
Try to set hardware IDs in local.conf.bugfix/PRO-5140/hardware_ids
Communicating the IDs to the images works, but getting the IDs in the garage-push commits does not. I can get the variables exported, but the script still uses the wrong (old) value. Not sure why.
-rw-r--r--classes/image_types_ostree.bbclass3
-rw-r--r--classes/sota.bbclass2
-rw-r--r--recipes-sota/aktualizr/aktualizr-secondary-conf.bb28
-rw-r--r--recipes-sota/aktualizr/environment-secondary.inc12
-rw-r--r--recipes-sota/aktualizr/environment.inc7
-rw-r--r--recipes-sota/aktualizr/files/aktualizr-secondary.service3
-rw-r--r--recipes-test/images/primary-image.bb8
-rw-r--r--recipes-test/images/secondary-image.bb14
8 files changed, 74 insertions, 3 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index bc44e33..1313c40 100644
--- a/classes/image_types_ostree.bbclass
+++ b/classes/image_types_ostree.bbclass
@@ -10,6 +10,7 @@ do_image_ostree[depends] += "ostree-native:do_populate_sysroot \
10export OSTREE_REPO 10export OSTREE_REPO
11export OSTREE_BRANCHNAME 11export OSTREE_BRANCHNAME
12export GARAGE_TARGET_NAME 12export GARAGE_TARGET_NAME
13export SOTA_HARDWARE_ID
13 14
14RAMDISK_EXT ?= ".${OSTREE_INITRAMFS_FSTYPES}" 15RAMDISK_EXT ?= ".${OSTREE_INITRAMFS_FSTYPES}"
15 16
@@ -220,7 +221,7 @@ IMAGE_CMD_garagesign () {
220 --length 0 \ 221 --length 0 \
221 --url "${GARAGE_TARGET_URL}" \ 222 --url "${GARAGE_TARGET_URL}" \
222 --sha256 ${ostree_target_hash} \ 223 --sha256 ${ostree_target_hash} \
223 --hardwareids ${MACHINE} 224 --hardwareids ${SOTA_HARDWARE_ID}
224 garage-sign targets sign --repo tufrepo \ 225 garage-sign targets sign --repo tufrepo \
225 --home-dir ${GARAGE_SIGN_REPO} \ 226 --home-dir ${GARAGE_SIGN_REPO} \
226 --key-name=targets 227 --key-name=targets
diff --git a/classes/sota.bbclass b/classes/sota.bbclass
index 38d4ce5..d9df83a 100644
--- a/classes/sota.bbclass
+++ b/classes/sota.bbclass
@@ -36,6 +36,8 @@ GARAGE_TARGET_NAME ?= "${OSTREE_BRANCHNAME}"
36GARAGE_TARGET_VERSION ?= "" 36GARAGE_TARGET_VERSION ?= ""
37GARAGE_TARGET_URL ?= "https://example.com/" 37GARAGE_TARGET_URL ?= "https://example.com/"
38 38
39SOTA_HARDWARE_ID ?= "${MACHINE}"
40
39SOTA_MACHINE ??="none" 41SOTA_MACHINE ??="none"
40SOTA_MACHINE_rpi ?= "raspberrypi" 42SOTA_MACHINE_rpi ?= "raspberrypi"
41SOTA_MACHINE_porter ?= "porter" 43SOTA_MACHINE_porter ?= "porter"
diff --git a/recipes-sota/aktualizr/aktualizr-secondary-conf.bb b/recipes-sota/aktualizr/aktualizr-secondary-conf.bb
new file mode 100644
index 0000000..c13bf94
--- /dev/null
+++ b/recipes-sota/aktualizr/aktualizr-secondary-conf.bb
@@ -0,0 +1,28 @@
1SUMMARY = "Aktualizr secondary configuration"
2DESCRIPTION = "Systemd service and configurations for Aktualizr secondaries"
3HOMEPAGE = "https://github.com/advancedtelematic/aktualizr"
4SECTION = "base"
5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3"
7RDEPENDS_${PN} = "aktualizr-secondary"
8PV = "1.0"
9
10SRC_URI = " \
11 file://LICENSE \
12 "
13
14export SOTA_SECONDARY_HARDWARE_ID
15
16do_install() {
17 AKTUALIZR_PARAMETERS_CONFIGFILE="--config /usr/lib/sota/sota_secondary.toml"
18 if [ -n "${SOTA_SECONDARY_HARDWARE_ID}" ]; then
19 AKTUALIZR_PARAMETERS_HARDWARE_ID="--ecu-hardware-id ${SOTA_SECONDARY_HARDWARE_ID}";
20 fi
21
22 install -d ${D}${libdir}/sota
23 echo "AKTUALIZR_CMDLINE_PARAMETERS=${AKTUALIZR_PARAMETERS_CONFIGFILE} ${AKTUALIZR_PARAMETERS_HARDWARE_ID}" > ${D}${libdir}/sota/sota.env
24}
25
26FILES_${PN} = "${libdir}/sota/sota.env"
27
28# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/aktualizr/environment-secondary.inc b/recipes-sota/aktualizr/environment-secondary.inc
new file mode 100644
index 0000000..18a4684
--- /dev/null
+++ b/recipes-sota/aktualizr/environment-secondary.inc
@@ -0,0 +1,12 @@
1export SOTA_SECONDARY_HARDWARE_ID
2
3do_install_append() {
4 AKTUALIZR_PARAMETERS_CONFIGFILE="--config /usr/lib/sota/sota_secondary.toml"
5 if [ -n "${SOTA_PRIMARY_HARDWARE_ID}" ]; then
6 AKTUALIZR_PARAMETERS_HARDWARE_ID="--ecu-hardware-id ${SOTA_PRIMARY_HARDWARE_ID}"
7 fi
8
9 echo "AKTUALIZR_CMDLINE_PARAMETERS=${AKTUALIZR_PARAMETERS_CONFIGFILE} ${AKTUALIZR_PARAMETERS_HARDWARE_ID}" > ${D}${libdir}/sota/sota.env
10}
11
12FILES_${PN}_append = " ${libdir}/sota/sota.env"
diff --git a/recipes-sota/aktualizr/environment.inc b/recipes-sota/aktualizr/environment.inc
index 16e789e..73517b0 100644
--- a/recipes-sota/aktualizr/environment.inc
+++ b/recipes-sota/aktualizr/environment.inc
@@ -1,11 +1,16 @@
1export SOTA_VIRTUAL_SECONDARIES 1export SOTA_VIRTUAL_SECONDARIES
2export SOTA_PRIMARY_HARDWARE_ID
2 3
3do_install_append() { 4do_install_append() {
4 for sec in ${SOTA_VIRTUAL_SECONDARIES}; do 5 for sec in ${SOTA_VIRTUAL_SECONDARIES}; do
5 AKTUALIZR_PARAMETERS_VIRTUALSECS="${AKTUALIZR_PARAMETERS_VIRTUALSECS} --secondary-config $sec" 6 AKTUALIZR_PARAMETERS_VIRTUALSECS="${AKTUALIZR_PARAMETERS_VIRTUALSECS} --secondary-config $sec"
6 done 7 done
7 8
8 echo "AKTUALIZR_CMDLINE_PARAMETERS=${AKTUALIZR_PARAMETERS_VIRTUALSECS}" > ${D}${libdir}/sota/sota.env 9 if [ -n "${SOTA_PRIMARY_HARDWARE_ID}" ]; then
10 AKTUALIZR_PARAMETERS_HARDWARE_ID="--primary-ecu-hardware-id ${SOTA_PRIMARY_HARDWARE_ID}"
11 fi
12
13 echo "AKTUALIZR_CMDLINE_PARAMETERS=${AKTUALIZR_PARAMETERS_VIRTUALSECS} ${AKTUALIZR_PARAMETERS_HARDWARE_ID}" > ${D}${libdir}/sota/sota.env
9} 14}
10 15
11FILES_${PN}_append = " ${libdir}/sota/sota.env" 16FILES_${PN}_append = " ${libdir}/sota/sota.env"
diff --git a/recipes-sota/aktualizr/files/aktualizr-secondary.service b/recipes-sota/aktualizr/files/aktualizr-secondary.service
index a1e0e1b..5173ae9 100644
--- a/recipes-sota/aktualizr/files/aktualizr-secondary.service
+++ b/recipes-sota/aktualizr/files/aktualizr-secondary.service
@@ -4,6 +4,7 @@ Description=Aktualizr SOTA Client (UPTANE Secondary)
4[Service] 4[Service]
5RestartSec=10 5RestartSec=10
6Restart=always 6Restart=always
7EnvironmentFile=/usr/lib/sota/sota.env
7EnvironmentFile=-/etc/sota/sota.env 8EnvironmentFile=-/etc/sota/sota.env
8ExecStart=/usr/bin/aktualizr-secondary --config /usr/lib/sota/sota_secondary.toml 9ExecStart=/usr/bin/aktualizr-secondary $AKTUALIZR_CMDLINE_PARAMETERS
9 10
diff --git a/recipes-test/images/primary-image.bb b/recipes-test/images/primary-image.bb
index 6d2df94..21ff565 100644
--- a/recipes-test/images/primary-image.bb
+++ b/recipes-test/images/primary-image.bb
@@ -1,9 +1,17 @@
1include recipes-core/images/core-image-minimal.bb 1include recipes-core/images/core-image-minimal.bb
2 2
3#export SOTA_PRIMARY_HARDWARE_ID
4#export SOTA_HARDWARE_ID
5
3SUMMARY = "A minimal Uptane Primary image running aktualizr, for testing with a Linux secondary" 6SUMMARY = "A minimal Uptane Primary image running aktualizr, for testing with a Linux secondary"
4 7
5LICENSE = "MIT" 8LICENSE = "MIT"
6 9
10python () {
11 if d.getVar("SOTA_PRIMARY_HARDWARE_ID", True):
12 d.setVar("SOTA_HARDWARE_ID", d.getVar("SOTA_PRIMARY_HARDWARE_ID", True))
13}
14
7IMAGE_INSTALL_remove = " \ 15IMAGE_INSTALL_remove = " \
8 " 16 "
9 17
diff --git a/recipes-test/images/secondary-image.bb b/recipes-test/images/secondary-image.bb
index 9adbdc5..75deb5a 100644
--- a/recipes-test/images/secondary-image.bb
+++ b/recipes-test/images/secondary-image.bb
@@ -1,9 +1,22 @@
1include recipes-core/images/core-image-minimal.bb 1include recipes-core/images/core-image-minimal.bb
2 2
3export SOTA_SECONDARY_HARDWARE_ID
4export SOTA_HARDWARE_ID
5
3SUMMARY = "A minimal Uptane Secondary image running aktualizr-secondary" 6SUMMARY = "A minimal Uptane Secondary image running aktualizr-secondary"
4 7
5LICENSE = "MIT" 8LICENSE = "MIT"
6 9
10IMAGE_TYPEDEP_garagesign_append = " set_hardware_id "
11IMAGE_CMD_set_hardware_id() {
12 if [ -n "${SOTA_SECONDARY_HARDWARE_ID}" ]; then
13 SOTA_HARDWARE_ID="${SOTA_SECONDARY_HARDWARE_ID}"
14 fi
15}
16#python IMAGE_CMD_set_hardware_id() {
17# if d.getVar("SOTA_SECONDARY_HARDWARE_ID", True):
18# d.setVar("SOTA_HARDWARE_ID", d.getVar("SOTA_SECONDARY_HARDWARE_ID", True))
19#}
7 20
8# Remove default aktualizr primary, and the provisioning configuration (which 21# Remove default aktualizr primary, and the provisioning configuration (which
9# RDEPENDS on aktualizr) 22# RDEPENDS on aktualizr)
@@ -19,6 +32,7 @@ IMAGE_INSTALL_remove = " \
19 32
20IMAGE_INSTALL_append = " \ 33IMAGE_INSTALL_append = " \
21 aktualizr-secondary \ 34 aktualizr-secondary \
35 aktualizr-secondary-conf \
22 secondary-network-config \ 36 secondary-network-config \
23 " 37 "
24 38