-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unify the firmware images #308
Comments
I won't have time to implement this for at least a few weeks, but I looked into it a little bit. Some thoughts/options below: Option 1: Embed Axe-OS web files into OTA partitions
Option 2: Package
|
Makes the recovery page an embedded file rather than a C header. This increases readability and also serves as an example for Issue skot#308.
In #649, the recovery page is refactored to use the approach described in the second bullet of option 1. Seems to work well, which is promising for the approach of embedding the web files into the OTA parition. The next steps would include: updating http_server to serve the full web interface files this way (looks like the files might be < 1MB so could fit into the 4MB ota partition, adjusting partitioning to deprecate/remove the |
Some thinking out loud: The axe-os web UI gzip files generated in main/http_server/axe-os/dist/axe-os/ are dynamically named based on hashes of the contents of the files (to defeat caching). This makes it a bit trickier to embed the files directly into esp-miner.bin. Playing around with something like: file(GLOB WEB_FILES LIST_DIRECTORIES false CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/main/http_server/axe-os/dist/axe-os/*.gz)
foreach(FILE ${WEB_FILES})
get_filename_component(FILENAME ${FILE} NAME)
message(STATUS "Adding file: ${FILENAME}")
target_add_binary_data(esp-miner ${FILENAME} BINARY)
endforeach() There would also be another piece needed. Currently, extern const unsigned char recovery_page_start[] asm("_binary_recovery_page_html_start");
extern const unsigned char recovery_page_end[] asm("_binary_recovery_page_html_end");
const size_t recovery_page_size = (recovery_page_end - recovery_page_start); The C code won't have this info ahead of time for the dynamically generated web UI gzips, so maybe we need a CMake initiated step to replace keyword text in |
Makes the recovery page an embedded file rather than a C header. This increases readability and also serves as an example for Issue skot#308.
Makes the recovery page an embedded file rather than a C header. This increases readability and also serves as an example for Issue #308.
right now we have two firmware images required for an update;
esp-miner.bin
andwww.bin
It's nice because the
www.bin
image is much bigger and you don't always need it.But it's really complicated for end users. especially if one of the updates fails and they don't notice it.
I'd like to unify the images into one bigger one to simplify the update process.
The text was updated successfully, but these errors were encountered: