[OpenWrt-Devel] [PATCH v2 12/14] package/base-files: add caldata_sysfsload_from_file()

Thibaut hacks at slashdirt.org
Mon Apr 20 10:23:28 EDT 2020


Hi,

> Le 20 avr. 2020 à 16:21, <mail at adrianschmutzler.de> <mail at adrianschmutzler.de> a écrit :
> 
> Hi again,
> 
>> -----Original Message-----
>> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
>> On Behalf Of mail at adrianschmutzler.de
>> Sent: Montag, 20. April 2020 16:14
>> To: 'Thibaut VARÈNE' <hacks at slashdirt.org>; openwrt-
>> devel at lists.openwrt.org
>> Cc: koen.vandeputte at ncentric.com
>> Subject: Re: [OpenWrt-Devel] [PATCH v2 12/14] package/base-files: add
>> caldata_sysfsload_from_file()
>> 
>> Hi,
>> 
>>> -----Original Message-----
>>> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
>>> On Behalf Of Thibaut VARÈNE
>>> Sent: Montag, 20. April 2020 15:35
>>> To: openwrt-devel at lists.openwrt.org
>>> Cc: Thibaut VARÈNE <hacks at slashdirt.org>;
>> koen.vandeputte at ncentric.com
>>> 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 <hacks at slashdirt.org>
>>> ---
>>> 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
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list