[OpenWrt-Devel] [PATCH v2 11/14] package/base-files: caldata: allow setting target file

Thibaut hacks at slashdirt.org
Tue Apr 21 17:15:01 EDT 2020


Fixed.

> Le 21 avr. 2020 à 20:24, Philip Prindeville <philipp_subx at redfish-solutions.com> a écrit :
> 
> Agreed, especially if you’re using “set -e” for debugging…
> 
> 
>> On Apr 20, 2020, at 8:09 AM, mail at adrianschmutzler.de wrote:
>> 
>> Acked-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>> 
>> I personally prefer
>> [ -n "$var" ] || do something
>> to
>> [ -z "$var" ] && do something
>> but that's pure matter of taste again.
>> 
>> Best
>> 
>> Adrian
>> 
>>> -----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 11/14] package/base-files: caldata:
>>> allow setting target file
>>> 
>>> This will enable platforms to extract caldata to an arbitrary file, or patch mac
>>> in an abitrary file.
>>> 
>>> Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
>>> ---
>>> package/base-files/Makefile                       |  2 +-
>>> package/base-files/files/lib/functions/caldata.sh | 29 ++++++++++++++++--
>>> -----
>>> 2 files changed, 22 insertions(+), 9 deletions(-)
>>> 
>>> diff --git a/package/base-files/Makefile b/package/base-files/Makefile index
>>> 156e7bc8b9..f1f0f17a60 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:=218
>>> +PKG_RELEASE:=219
>>> 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 3bdb1e4dd5..e9349c7eee 100644
>>> --- a/package/base-files/files/lib/functions/caldata.sh
>>> +++ b/package/base-files/files/lib/functions/caldata.sh
>>> @@ -60,15 +60,21 @@ caldata_from_file() {
>>> 	local source=$1
>>> 	local offset=$(($2))
>>> 	local count=$(($3))
>>> +	local target=$4
>>> 
>>> -	dd if=$source of=/lib/firmware/$FIRMWARE iflag=skip_bytes
>>> bs=$count skip=$offset count=1 2>/dev/null || \
>>> +	[ -z "$target" ] && target=/lib/firmware/$FIRMWARE
>>> +
>>> +	dd if=$source of=$target iflag=skip_bytes bs=$count skip=$offset
>>> +count=1 2>/dev/null || \
>>> 		caldata_die "failed to extract calibration data from $source"
>>> }
>>> 
>>> caldata_valid() {
>>> 	local expected="$1"
>>> +	local target=$2
>>> +
>>> +	[ -z "$target" ] && target=/lib/firmware/$FIRMWARE
>>> 
>>> -	magic=$(hexdump -v -n 2 -e '1/1 "%02x"' /lib/firmware/$FIRMWARE)
>>> +	magic=$(hexdump -v -n 2 -e '1/1 "%02x"' $target)
>>> 	[ "$magic" = "$expected" ]
>>> 	return $?
>>> }
>>> @@ -77,6 +83,7 @@ caldata_patch_chksum() {
>>> 	local mac=$1
>>> 	local mac_offset=$(($2))
>>> 	local chksum_offset=$(($3))
>>> +	local target=$4
>>> 	local xor_mac
>>> 	local xor_fw_mac
>>> 	local xor_fw_chksum
>>> @@ -91,38 +98,44 @@ caldata_patch_chksum() {
>>> 	xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
>>> 
>>> 	printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
>>> -		dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1
>>> seek=$chksum_offset count=2
>>> +		dd of=$target conv=notrunc bs=1 seek=$chksum_offset
>>> count=2
>>> }
>>> 
>>> caldata_patch_mac() {
>>> 	local mac=$1
>>> 	local mac_offset=$(($2))
>>> 	local chksum_offset=$3
>>> +	local target=$4
>>> 
>>> 	[ -z "$mac" -o -z "$mac_offset" ] && return
>>> 
>>> -	[ -n "$chksum_offset" ] && caldata_patch_chksum "$mac"
>>> "$mac_offset" "$chksum_offset"
>>> +	[ -z "$target" ] && target=/lib/firmware/$FIRMWARE
>>> +
>>> +	[ -n "$chksum_offset" ] && caldata_patch_chksum "$mac"
>>> "$mac_offset" "$chksum_offset" "$target"
>>> 
>>> -	macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE
>>> conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1 || \
>>> +	macaddr_2bin $mac | dd of=$target conv=notrunc oflag=seek_bytes
>>> bs=6
>>> +seek=$mac_offset count=1 || \
>>> 		caldata_die "failed to write MAC address to eeprom file"
>>> }
>>> 
>>> ath9k_patch_mac() {
>>> 	local mac=$1
>>> +	local target=$2
>>> 
>>> -	caldata_patch_mac "$mac" 0x2
>>> +	caldata_patch_mac "$mac" 0x2 "" "$target"
>>> }
>>> 
>>> ath9k_patch_mac_crc() {
>>> 	local mac=$1
>>> 	local mac_offset=$2
>>> 	local chksum_offset=$((mac_offset - 10))
>>> +	local target=$4
>>> 
>>> -	caldata_patch_mac "$mac" "$mac_offset" "$chksum_offset"
>>> +	caldata_patch_mac "$mac" "$mac_offset" "$chksum_offset"
>>> "$target"
>>> }
>>> 
>>> ath10k_patch_mac() {
>>> 	local mac=$1
>>> +	local target=$2
>>> 
>>> -	caldata_patch_mac "$mac" 0x6 0x2
>>> +	caldata_patch_mac "$mac" 0x6 0x2 "$target"
>>> }
>>> --
>>> 2.11.0
>>> 
>>> 
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel at lists.openwrt.org
>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel at lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> 


_______________________________________________
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