執行setenv ethaddr的時候提示Can't over write的原因及解決方法

  UBOOT mac一般只可以更改一次,可以看一下UBOOT的源碼,是否可重複更改取決於系統配置

     

    相關代碼在 uboot源碼目錄下的common\cmd_nvedit.c


#ifndef CONFIG_ENV_OVERWRITE
      /*
      * Ethernet Address and serial# can be set only once,
      * ver is readonly.
      */
      if ( (strcmp (name, "serial#") == 0) ||
      ((strcmp (name, "ethaddr") == 0)
      #if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) &&  
                  defined(CONFIG_ETHADDR)
                  && (strcmp (env_get_addr(oldval),MK_STR
                  (CONFIG_ETHADDR)) != 0)
      #endif /* CONFIG_OVERWRITE_ETHADDR_ONCE && CONFIG_ETHADDR */
      ) ) {
      printf ("Can't overwrite \"%s\"\n", name);
      return 1;
      }
      #endif


            從此處代碼分析得知,若沒有定義CONFIG_ENV_OVERWRITE ,則不能

 多次更改MAC地址,所以只要#define CONFIG_ENV_OVERWRITE 定義下就

 可以了,定義在哪裏合適我不怎麼知道,我是定義在 “include/configs/”中與自

 己板子對應的配置頭文件中的。僅供參考


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章