程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 執行setenv ethaddr的時候提示Can't over write的原因及解決方法

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

編輯:關於C語言

  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/”中與自

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


本文出自 “ITDS” 博客,請務必保留此出處http://limingshang.blog.51cto.com/2975568/1281350

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved