[PATCH] Documentation: state: add a little note about modifying a state variable in the frontend

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Nov 5 15:57:03 EST 2020


Hello Matthias,

On 11/5/20 9:16 PM, Matthias Fend wrote:
> Signed-off-by: Matthias Fend <matthias.fend at wolfvision.net>
> ---
>  Documentation/user/state.rst | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/user/state.rst b/Documentation/user/state.rst
> index 78ce24f..d9a8e76 100644
> --- a/Documentation/user/state.rst
> +++ b/Documentation/user/state.rst
> @@ -689,4 +689,5 @@ be accessed like normal shell variables. The ``state`` command is used
>  to save/restore a *state* variable set to the backend device.
>  
>  After initializing the variable can be accessed with ``$state.foo``.
> +To modify the value of a state variable use ``nv dev.state.foo=bar``.

That's wrong. You set the value of a state variable with
state.foo=bar. nv dev.state.state.foo=bar uses the _environment_ to
save a value to write to state.foo on each boot. This means:

 - If you modify the variable from within barebox, it won't be visible
   in Linux unless you boot barebox once again.
 - If you modify the variable from within Linux, nv.dev.state.state.foo
   would just overwrite the existing value on the next barebox boot.

Generally, you should only need to modify nv variables at runtime
for debugging. nv.dev is meant for stuff like nv.dev.eth0.ethaddr=XX:XX:XX:XX:XX:XX,
where you can just hard code a mac address to use, but for state I can't
think of any good use cases at the moment.

>  ``state -s`` stores the *state* to the backend device.
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list