oofatfs: enable use of random volume IDs #7410
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a speculative fix for #7409 if the underlying cause is the deterministic volume ID. However, not all boards have working urandom (samd21 at least does not) so a couple of fallbacks are attempted when it fails. Note that the final fallback to the monotonic time is not great but probably has at least a few bits of randomness in it so it's better than nothing.
I verified that on a pico_w, each
storage.erase_filesystem()
gives a distinct 32-bit volume ID (pico_w's urandom can never fail)Note that this doesn't change the unique ID of an existing CIRCUITPY, only when
storage.erase_filesystem()
is called or when the drive is first initialized on a fresh device.