首页 > 代码库 > u-boot: Error: Can't overwrite "ethaddr"

u-boot: Error: Can't overwrite "ethaddr"

When try to execute following command, It reports error as following:

--->8---

U-Boot> setenv ethaddr 4a:74:1f:75:31:56
## Error: Can‘t overwrite "ethaddr"
## Error inserting "ethaddr" variable, errno=1

---8<---

仔细阅读README文件,有如下描述:

--->8---

- Vendor Parameter Protection:


                U-Boot considers the values of the environment
                variables "serial#" (Board Serial Number) and
                "ethaddr" (Ethernet Address) to be parameters that
                are set once by the board vendor / manufacturer, and
                protects these variables from casual modification by
                the user. Once set, these variables are read-only,
                and write or delete attempts are rejected. You can
                change this behaviour:


                If CONFIG_ENV_OVERWRITE is #defined in your config
                file, the write protection for vendor parameters is
                completely disabled. Anybody can change or delete
                these parameters.


                Alternatively, if you #define _both_ CONFIG_ETHADDR
                _and_ CONFIG_OVERWRITE_ETHADDR_ONCE, a default
                Ethernet address is installed in the environment,
                which can be changed exactly ONCE by the user. [The
                serial# is unaffected by this, i. e. it remains
                read-only.]


                The same can be accomplished in a more flexible way
                for any variable by configuring the type of access
                to allow for those variables in the ".flags" variable
                or define CONFIG_ENV_FLAGS_LIST_STATIC.

---8<---

这样,最简单的方法是在板子相关的文件中加入:CONFIG_ENV_OVERWRITE 重新编译u-boot。写入重启问题得以解决。

u-boot: Error: Can't overwrite "ethaddr"