On 08.07.2020 21:34, Paul Spooren wrote:
I think there is a policy for new DT devices to use the compatible string as
profile.
Multiple targets contain the following line in the target Makefile, which
automatically adds the profile name as supported device:
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
So ideally for all devices using DT, the profile and compatible string are the
same except for '_' replaced by ','.
For instance, the "Linksys WRT3200ACM" has the profile ID `linksys_wrt3200acm`
and the automatically added compatible string `linksys,wrt3200acm`. So if that device
wanted to search the `mvebu/cortexa9/profiles.json` for available sysupgrades, it takes
the first entry from /proc/device-tree/compatible, replaces ',' with '_' find images in
profiles.json['profiles']['linksys_wrt3200acm']['images'].
For cases where DT compatible and OpenWrt profile ID/name where different
either one was patched[0].
There are still few exceptions like:
linksys-ea9500 vs. compatible = "linksys,panamera"
luxul-xwr-3150 vs. compatible = "luxul,xwr-3150-v1"
luxul-xbr-4500 vs. compatible = "luxul,xbr-4500-v1"
This is a bit of problem because:
1. I can't change "panamera" to "ea9500" as I was explicitly asked to
stick to "panamera" by Imre when upstreaming that DTS
2. I don't want to rename "ea9500" to "panamera" to avoid:
a. Confusing users
b. Having meaningless filename
So this is mostly what my patch is about. Providing reliable matching
method that doesn't depend on profiles naming schema. I think adding
20 new lines of code for that purpose is reasonable.
I think the question is therefore more on how to deal with devices that do not use DT? If
we use a per device rootfs a line could be added to /etc/os-release containing something
like OPENWRT_PROFILE="SpEcIaL-CaSEv100", which is then shown via `ubus call
system borad`.
Another hack could be to add it to /proc/cmdline?
I'd prefer to avoid forcing per device rootfs unless it's really
required. We already have $(board_name) that results in unique device
identifier on all (most?) targets. Let's stick to that and add matching
entry in image/Makefile.
My suggestion it to take existing Makefile entry like:
define Device/linksys-e900-v1
DEVICE_MODEL := E900
DEVICE_VARIANT := v1
$(Device/linksys)
DEVICE_ID := E900
VERSION := 1.0.4
endef
and simpliy add
BOARD_NAME := Linksys E900 V1
to it (it matches cat /proc/cpuinfo | grep Machine).
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel