kopia lustrzana https://github.com/markqvist/reticulum
Porównaj commity
6 Commity
7da22c8580
...
fb02e980db
Autor | SHA1 | Data |
---|---|---|
markqvist | fb02e980db | |
Mark Qvist | 4947463440 | |
Chad Attermann | 5565349255 | |
Chad Attermann | 1b7b131adc | |
Mark Qvist | ace0d997d4 | |
Mark Qvist | 798c252284 |
15
Changelog.md
15
Changelog.md
|
@ -1,3 +1,18 @@
|
|||
### 2024-03-02: RNS β 0.7.2
|
||||
|
||||
This maintenance release improves memory consumption, fixes a few bugs, and adds ability to flash new boards with `rnodeconf`.
|
||||
|
||||
**Changes**
|
||||
- Added ability to flash new boards with `rnodeconf`, including T3 boards with TCXOs
|
||||
- Improved memory consumption on Transport Instances with many interfaces
|
||||
- Fixed a bug that could cause the on-disk known destinations store to become corrupted
|
||||
|
||||
**Release Hashes**
|
||||
```
|
||||
3ce3ba80d5ae8d19c6b55bd51f44bd4beccbcea31554cb1f0d65428e4587b3d6 rns-0.7.2-py3-none-any.whl
|
||||
83f914aaba2a8929a8cee95830a847e190197232a0cca4e7b906b15c6bbf8296 rnspure-0.7.2-py3-none-any.whl
|
||||
```
|
||||
|
||||
### 2024-02-14: RNS β 0.7.1
|
||||
|
||||
This release adds support for RNodes based on SX1262, SX1268 and SX1280 modems, and fixes a number of bugs. Thanks to @jacobeva, who contributed to this release!
|
||||
|
|
|
@ -53,6 +53,7 @@ rnode_baudrate = 115200
|
|||
known_keys = [["unsigned.io", "30819f300d06092a864886f70d010101050003818d0030818902818100bf831ebd99f43b477caf1a094bec829389da40653e8f1f83fc14bf1b98a3e1cc70e759c213a43f71e5a47eb56a9ca487f241335b3e6ff7cdde0ee0a1c75c698574aeba0485726b6a9dfc046b4188e3520271ee8555a8f405cf21f81f2575771d0b0887adea5dd53c1f594f72c66b5f14904ffc2e72206a6698a490d51ba1105b0203010001"], ["unsigned.io", "30819f300d06092a864886f70d010101050003818d0030818902818100e5d46084e445595376bf7efd9c6ccf19d39abbc59afdb763207e4ff68b8d00ebffb63847aa2fe6dd10783d3ea63b55ac66f71ad885c20e223709f0d51ed5c6c0d0b093be9e1d165bb8a483a548b67a3f7a1e4580f50e75b306593fa6067ae259d3e297717bd7ff8c8f5b07f2bed89929a9a0321026cf3699524db98e2d18fb2d020300ff39"]]
|
||||
firmware_update_url = "https://github.com/markqvist/RNode_Firmware/releases/download/"
|
||||
fw_filename = None
|
||||
fw_url = None
|
||||
mapped_model = None
|
||||
|
||||
class KISS():
|
||||
|
@ -998,60 +999,92 @@ def ensure_firmware_file(fw_filename):
|
|||
|
||||
else:
|
||||
try:
|
||||
if selected_version == None:
|
||||
if not upd_nocheck:
|
||||
try:
|
||||
if not upd_nocheck:
|
||||
try:
|
||||
# if custom firmware url, download latest release
|
||||
if selected_version == None and fw_url == None:
|
||||
version_url = firmware_version_url+fw_filename
|
||||
RNS.log("Retrieving latest version info from "+version_url)
|
||||
urlretrieve(firmware_version_url+fw_filename, UPD_DIR+"/"+fw_filename+".version.latest")
|
||||
else:
|
||||
if fw_url != None:
|
||||
if selected_version == None:
|
||||
version_url = fw_url+"latest/download/release.json"
|
||||
else:
|
||||
version_url = fw_url+"download/"+selected_version+"/release.json"
|
||||
else:
|
||||
version_url = firmware_update_url+selected_version+"/release.json"
|
||||
try:
|
||||
urlretrieve(firmware_version_url+fw_filename, UPD_DIR+"/"+fw_filename+".version.latest")
|
||||
RNS.log("Retrieving specified version info from "+version_url)
|
||||
urlretrieve(version_url, UPD_DIR+"/version_release_info.json")
|
||||
import json
|
||||
with open(UPD_DIR+"/version_release_info.json", "rb") as rif:
|
||||
rdat = json.loads(rif.read())
|
||||
variant = rdat[fw_filename]
|
||||
with open(UPD_DIR+"/"+fw_filename+".version.latest", "wb") as verf:
|
||||
inf_str = str(variant["version"])+" "+str(variant["hash"])
|
||||
verf.write(inf_str.encode("utf-8"))
|
||||
except Exception as e:
|
||||
RNS.log("")
|
||||
RNS.log("WARNING!")
|
||||
RNS.log("Failed to retrieve latest version information for your board from the default server")
|
||||
RNS.log("Will retry using the following fallback URL: "+fallback_firmware_version_url)
|
||||
RNS.log("")
|
||||
RNS.log("Hit enter if you want to proceed")
|
||||
input()
|
||||
try:
|
||||
urlretrieve(fallback_firmware_version_url, UPD_DIR+"/fallback_release_info.json")
|
||||
import json
|
||||
with open(UPD_DIR+"/fallback_release_info.json", "rb") as rif:
|
||||
rdat = json.loads(rif.read())
|
||||
variant = rdat[fw_filename]
|
||||
with open(UPD_DIR+"/"+fw_filename+".version.latest", "wb") as verf:
|
||||
inf_str = str(variant["version"])+" "+str(variant["hash"])
|
||||
verf.write(inf_str.encode("utf-8"))
|
||||
|
||||
except Exception as e:
|
||||
RNS.log("Error while trying fallback URL: "+str(e))
|
||||
raise e
|
||||
|
||||
except Exception as e:
|
||||
RNS.log("Failed to retrive latest version information for your board.")
|
||||
RNS.log("Failed to retrive version information for your board.")
|
||||
RNS.log("Check your internet connection and try again.")
|
||||
RNS.log("If you don't have Internet access currently, use the --fw-version option to manually specify a version.")
|
||||
RNS.log("You can also use --extract to copy the firmware from a known-good RNode of the same model.")
|
||||
exit()
|
||||
except Exception as e:
|
||||
# if custom firmware url, don't fallback
|
||||
if fw_url != None:
|
||||
RNS.log("Failed to retrive version information for your board from the specified url.")
|
||||
RNS.log("Check your internet connection and try again.")
|
||||
RNS.log("If you don't have Internet access currently, use the --fw-version option to manually specify a version.")
|
||||
RNS.log("You can also use --extract to copy the firmware from a known-good RNode of the same model.")
|
||||
exit()
|
||||
|
||||
import shutil
|
||||
file = open(UPD_DIR+"/"+fw_filename+".version.latest", "rb")
|
||||
release_info = file.read().decode("utf-8").strip()
|
||||
selected_version = release_info.split()[0]
|
||||
if selected_version == "not":
|
||||
RNS.log("No valid version found for this board, exiting.")
|
||||
exit(199)
|
||||
RNS.log("")
|
||||
RNS.log("WARNING!")
|
||||
RNS.log("Failed to retrieve latest version information for your board from the default server.")
|
||||
RNS.log("Will retry using the following fallback URL: "+fallback_firmware_version_url)
|
||||
RNS.log("")
|
||||
RNS.log("Hit enter if you want to proceed")
|
||||
input()
|
||||
try:
|
||||
urlretrieve(fallback_firmware_version_url, UPD_DIR+"/fallback_release_info.json")
|
||||
import json
|
||||
with open(UPD_DIR+"/fallback_release_info.json", "rb") as rif:
|
||||
rdat = json.loads(rif.read())
|
||||
variant = rdat[fw_filename]
|
||||
with open(UPD_DIR+"/"+fw_filename+".version.latest", "wb") as verf:
|
||||
inf_str = str(variant["version"])+" "+str(variant["hash"])
|
||||
verf.write(inf_str.encode("utf-8"))
|
||||
|
||||
selected_hash = release_info.split()[1]
|
||||
if not os.path.isdir(UPD_DIR+"/"+selected_version):
|
||||
os.makedirs(UPD_DIR+"/"+selected_version)
|
||||
shutil.copy(UPD_DIR+"/"+fw_filename+".version.latest", UPD_DIR+"/"+selected_version+"/"+fw_filename+".version")
|
||||
RNS.log("The latest firmware for this board is version "+selected_version)
|
||||
except Exception as e:
|
||||
RNS.log("Error while trying fallback URL: "+str(e))
|
||||
raise e
|
||||
|
||||
else:
|
||||
RNS.log("Online firmware version check was disabled, but no firmware version specified for install.")
|
||||
RNS.log("use the --fw-version option to manually specify a version.")
|
||||
exit(98)
|
||||
import shutil
|
||||
file = open(UPD_DIR+"/"+fw_filename+".version.latest", "rb")
|
||||
release_info = file.read().decode("utf-8").strip()
|
||||
selected_version = release_info.split()[0]
|
||||
if selected_version == "not":
|
||||
RNS.log("No valid version found for this board, exiting.")
|
||||
exit(199)
|
||||
|
||||
update_target_url = firmware_update_url+selected_version+"/"+fw_filename
|
||||
selected_hash = release_info.split()[1]
|
||||
if not os.path.isdir(UPD_DIR+"/"+selected_version):
|
||||
os.makedirs(UPD_DIR+"/"+selected_version)
|
||||
shutil.copy(UPD_DIR+"/"+fw_filename+".version.latest", UPD_DIR+"/"+selected_version+"/"+fw_filename+".version")
|
||||
RNS.log("The selected firmware for this board is version "+selected_version)
|
||||
|
||||
else:
|
||||
RNS.log("Online firmware version check was disabled, but no firmware version specified for install.")
|
||||
RNS.log("use the --fw-version option to manually specify a version.")
|
||||
exit(98)
|
||||
|
||||
# if custom firmware url, use it
|
||||
if fw_url != None:
|
||||
update_target_url = fw_url+"download/"+selected_version+"/"+fw_filename
|
||||
RNS.log("Retrieving firmware from custom url "+update_target_url)
|
||||
else:
|
||||
update_target_url = firmware_update_url+selected_version+"/"+fw_filename
|
||||
|
||||
try:
|
||||
if not os.path.isdir(UPD_DIR+"/"+selected_version):
|
||||
|
@ -1128,7 +1161,7 @@ device_signer = None
|
|||
force_update = False
|
||||
upd_nocheck = False
|
||||
def main():
|
||||
global mapped_product, mapped_model, fw_filename, selected_version, force_update, upd_nocheck, device_signer
|
||||
global mapped_product, mapped_model, fw_filename, fw_url, selected_version, force_update, upd_nocheck, device_signer
|
||||
|
||||
try:
|
||||
if not util.find_spec("serial"):
|
||||
|
@ -1160,6 +1193,7 @@ def main():
|
|||
parser.add_argument("-u", "--update", action="store_true", help="Update firmware to the latest version")
|
||||
parser.add_argument("-U", "--force-update", action="store_true", help="Update to specified firmware even if version matches or is older than installed version")
|
||||
parser.add_argument("--fw-version", action="store", metavar="version", default=None, help="Use a specific firmware version for update or autoinstall")
|
||||
parser.add_argument("--fw-url", action="store", metavar="url", default=None, help="Use an alternate firmware download URL")
|
||||
parser.add_argument("--nocheck", action="store_true", help="Don't check for firmware updates online")
|
||||
parser.add_argument("-e", "--extract", action="store_true", help="Extract firmware from connected RNode for later use")
|
||||
parser.add_argument("-E", "--use-extracted", action="store_true", help="Use the extracted firmware for autoinstallation or update")
|
||||
|
@ -1232,6 +1266,9 @@ def main():
|
|||
RNS.log("Selected version \""+selected_version+"\" does not appear to be a number.")
|
||||
exit()
|
||||
|
||||
if args.fw_url != None:
|
||||
fw_url = args.fw_url
|
||||
|
||||
if args.force_update:
|
||||
force_update = True
|
||||
|
||||
|
@ -1922,7 +1959,7 @@ def main():
|
|||
except Exception as e:
|
||||
print("That ESP32 board does not exist, exiting now.")
|
||||
exit()
|
||||
|
||||
|
||||
if fw_filename == None:
|
||||
print("")
|
||||
print("Sorry, no firmware for your board currently exists.")
|
||||
|
|
|
@ -14,7 +14,7 @@ This document outlines the currently established development roadmap for Reticul
|
|||
## Currently Active Work Areas
|
||||
For each release cycle of Reticulum, improvements and additions from the five [Primary Efforts](#primary-efforts) are selected as active work areas, and can be expected to be included in the upcoming releases within that cycle. While not entirely set in stone for each release cycle, they serve as a pointer of what to expect in the near future.
|
||||
|
||||
- The current `0.6.x` release cycle aims at completing
|
||||
- The current `0.7.x` release cycle aims at completing
|
||||
- [ ] Overhauling and updating the documentation
|
||||
- [ ] Distributed Destination Naming System
|
||||
- [ ] Create a standalone RNS Daemon app for Android
|
||||
|
|
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Ładowanie…
Reference in New Issue