Hi, > Le 20 avr. 2020 à 16:21, <[email protected]> > <[email protected]> a écrit : > > Hi again, > >> -----Original Message----- >> From: openwrt-devel [mailto:[email protected]] >> On Behalf Of [email protected] >> Sent: Montag, 20. April 2020 16:14 >> To: 'Thibaut VARÈNE' <[email protected]>; openwrt- >> [email protected] >> Cc: [email protected] >> Subject: Re: [OpenWrt-Devel] [PATCH v2 12/14] package/base-files: add >> caldata_sysfsload_from_file() >> >> Hi, >> >>> -----Original Message----- >>> From: openwrt-devel [mailto:[email protected]] >>> On Behalf Of Thibaut VARÈNE >>> Sent: Montag, 20. April 2020 15:35 >>> To: [email protected] >>> Cc: Thibaut VARÈNE <[email protected]>; >> [email protected] >>> Subject: [OpenWrt-Devel] [PATCH v2 12/14] package/base-files: add >>> caldata_sysfsload_from_file() >>> >>> This routine enables loading caldata binary via the kernel sysfs >>> loader >>> >>> Signed-off-by: Thibaut VARÈNE <[email protected]> >>> --- >>> package/base-files/Makefile | 2 +- >>> package/base-files/files/lib/functions/caldata.sh | 15 >>> +++++++++++++++ >>> 2 files changed, 16 insertions(+), 1 deletion(-) >>> >>> diff --git a/package/base-files/Makefile b/package/base-files/Makefile >>> index >>> f1f0f17a60..d8e7c31878 100644 >>> --- a/package/base-files/Makefile >>> +++ b/package/base-files/Makefile >>> @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include >>> $(INCLUDE_DIR)/feeds.mk >>> >>> PKG_NAME:=base-files >>> -PKG_RELEASE:=219 >>> +PKG_RELEASE:=220 >>> PKG_FLAGS:=nonshared >>> >>> PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ >>> $(GENERIC_PLATFORM_DIR)/base-files/ >>> diff --git a/package/base-files/files/lib/functions/caldata.sh >>> b/package/base- files/files/lib/functions/caldata.sh >>> index e9349c7eee..a64f07778d 100644 >>> --- a/package/base-files/files/lib/functions/caldata.sh >>> +++ b/package/base-files/files/lib/functions/caldata.sh >>> @@ -68,6 +68,21 @@ caldata_from_file() { >>> caldata_die "failed to extract calibration data from $source" >>> } >>> >>> +caldata_sysfsload_from_file() { >> >> Didn't get that at first. Maybe choose something like >> caldata_file_to_sysfs()? >> >>> + local source=$1 >>> + local offset=$(($2)) >>> + local count=$(($3)) >>> + >>> + # test extract to /dev/null first >>> + dd if=$source of=/dev/null iflag=skip_bytes bs=$count skip=$offset >>> count=1 2>/dev/null || \ >>> + caldata_die "failed to extract calibration data from $source" >>> + >>> + # can't fail now >>> + echo 1 > /sys/$DEVPATH/loading >> >> Maybe make $DEVPATH or /sys/$DEVPATH an argument? > > On a second thought: That's not so much different from how we handle > /lib/firmware/$FIRMWARE in this file. > > Can you comment on whether the implementation of /sys/$DEVPATH will be as > generic as /lib/firmware/$FIRMWARE? (Then we could keep it your way) > Or is this dependent on your driver implementation, and thus specific to > mikrotik? Then, we could still keep it in base-files, but should reflect that > in the function name.
This is using the standard kernel fallback mechanism: https://www.kernel.org/doc/html/v4.19/driver-api/firmware/fallback-mechanisms.html#firmware-kobject-uevent-fallback-mechanism $DEVPATH is provided by the kernel, and refers to the sysfs path. HTH _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
