为什么每次修改了IP设置,重启动后就恢复到原样?(新手)

时间:2021-05-15 16:55:35
各位大侠:
    我用Microsoft ActiveSync连接开发板和PC机,并且串口以及网口都已经正确连接,我在目标板上设置IP地址,并且我的主机能够ping通目标机。但是我关闭目标机重新启动后,IP设置又恢复到原来值,我改怎么改才能永久改变IP设置?谢谢!
    还有我在控制面板的网络和拨号连接中点击新建连接,并设置选项为直接连接,但是每次重新启动后,改新建的连接就没有了?我该怎样改?或者进行如何设置后再烧入?使得新增的连接不再失效。谢谢!

11 个解决方案

#1


DHCP?
嘿嘿,瞎猜。

#2


因为你每次进入系统后更改IP的操作只是映射到内存

如果你只是调试用IP,那在定制nk.bin时直接在注册表中把IP改为你需要设定的就是

如果要根本解决问题,则要在应用程序中修改注册表,最后别忘了flushreg一下

#3


yajyjy(木易):
    谢谢你的建议,要根本解决问题,则要在应用程序中修改注册表,是不是通过应用程序下载要开发板来进行修改?不知道你有没有修改注册表中IP设置的完整的应用程序实例,有的话能不能发给我,谢谢

#4


修改后,需要要设备上运行->挂起 以保存设置
不过,定制系统时可以把IP真接写入,楼上,我怎么找不到flushreg?

#5


仅供参考:以下代码我没有试过,是论坛中一个人提供的代码.
CString str_ip; 

HKEY hKEY; 


LPCWSTR data_Set=L"Comm\\PCI\\RTL81391\\Parms\\TCPIP"; 
//打开与路径 data_Set 相关的hKEY,KEY_WRITE表示以写的方式打开。 
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
data_Set, 0, KEY_WRITE, &hKEY)); 
if(ret0!=ERROR_SUCCESS) 

MessageBox(_T("错误: 无法打开有关的hKEY11!")); 
return; 


str_ip=L"10.0.0.88"; 
TCHAR lpb[10]; 

for(int i=0;i<str_ip.GetLength();i++) 
*(lpb+i) = (str_ip.GetAt(i)); 

lpb[i++]='\0'; 

DWORD type=REG_SZ; 
DWORD cbData_1=str_ip.GetLength()+1; 

long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); 
if(ret1!=ERROR_SUCCESS) 

MessageBox(_T("错误: 无法修改有关注册表信息!")); 
return; 

RegCloseKey(hKEY); 
RegFlushKey(HKEY_LOCAL_MACHINE);

#6


定制NK.bin 的时候就要把ip地址之类的写好,如果用platform builder 定制ce的话,可以手动修改platform.reg ,格式如下:

[HKEY_LOCAL_MACHINE\COMM\PCI\E100CE1\Parms\TcpIp]
   "EnableDHCP"=dword:0
   ; This should be MULTI_SZ
   "DefaultGateway"="192.168.0.1"
   ; Use zero for broadcast address? (or 255.255.255.255)
   "UseZeroBroadcast"=dword:0
   ; This should be MULTI_SZ, the IP address list
   "IpAddress"="192.168.0.15"
   ; This should be MULTI_SZ, the subnet masks for the above IP addresses
   "Subnetmask"="255.255.255.0"
   "DNS"=multi_sz:"202.96.64.68", "202.96.75.68"

#7


yajyjy(木易)的说得很对.
从楼上两位的代码中你应当也可以看出点什么来吧.

#8


制作镜像时选择File System中的RAM and ROM File System ,然后再修改完成后 挂起 ,就可以保存设置了。

#9


不支持修改注册表的缘故
修改好,选择挂起试试看。如果不行,那只有在裁系统的时候设置了

#10


在定制内核的时候要改一下注册表,也就是说在定制内核的时候就把IP写进去,怎样修改lllkk() 已说得很清楚了,这样应该没问题的

#11


各位兄弟:
    本人因为最近有事情外出没有时间回复各位的好意,我在此向光临本贴的同志们说声谢谢,真的谢谢你们!

#1


DHCP?
嘿嘿,瞎猜。

#2


因为你每次进入系统后更改IP的操作只是映射到内存

如果你只是调试用IP,那在定制nk.bin时直接在注册表中把IP改为你需要设定的就是

如果要根本解决问题,则要在应用程序中修改注册表,最后别忘了flushreg一下

#3


yajyjy(木易):
    谢谢你的建议,要根本解决问题,则要在应用程序中修改注册表,是不是通过应用程序下载要开发板来进行修改?不知道你有没有修改注册表中IP设置的完整的应用程序实例,有的话能不能发给我,谢谢

#4


修改后,需要要设备上运行->挂起 以保存设置
不过,定制系统时可以把IP真接写入,楼上,我怎么找不到flushreg?

#5


仅供参考:以下代码我没有试过,是论坛中一个人提供的代码.
CString str_ip; 

HKEY hKEY; 


LPCWSTR data_Set=L"Comm\\PCI\\RTL81391\\Parms\\TCPIP"; 
//打开与路径 data_Set 相关的hKEY,KEY_WRITE表示以写的方式打开。 
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
data_Set, 0, KEY_WRITE, &hKEY)); 
if(ret0!=ERROR_SUCCESS) 

MessageBox(_T("错误: 无法打开有关的hKEY11!")); 
return; 


str_ip=L"10.0.0.88"; 
TCHAR lpb[10]; 

for(int i=0;i<str_ip.GetLength();i++) 
*(lpb+i) = (str_ip.GetAt(i)); 

lpb[i++]='\0'; 

DWORD type=REG_SZ; 
DWORD cbData_1=str_ip.GetLength()+1; 

long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); 
if(ret1!=ERROR_SUCCESS) 

MessageBox(_T("错误: 无法修改有关注册表信息!")); 
return; 

RegCloseKey(hKEY); 
RegFlushKey(HKEY_LOCAL_MACHINE);

#6


定制NK.bin 的时候就要把ip地址之类的写好,如果用platform builder 定制ce的话,可以手动修改platform.reg ,格式如下:

[HKEY_LOCAL_MACHINE\COMM\PCI\E100CE1\Parms\TcpIp]
   "EnableDHCP"=dword:0
   ; This should be MULTI_SZ
   "DefaultGateway"="192.168.0.1"
   ; Use zero for broadcast address? (or 255.255.255.255)
   "UseZeroBroadcast"=dword:0
   ; This should be MULTI_SZ, the IP address list
   "IpAddress"="192.168.0.15"
   ; This should be MULTI_SZ, the subnet masks for the above IP addresses
   "Subnetmask"="255.255.255.0"
   "DNS"=multi_sz:"202.96.64.68", "202.96.75.68"

#7


yajyjy(木易)的说得很对.
从楼上两位的代码中你应当也可以看出点什么来吧.

#8


制作镜像时选择File System中的RAM and ROM File System ,然后再修改完成后 挂起 ,就可以保存设置了。

#9


不支持修改注册表的缘故
修改好,选择挂起试试看。如果不行,那只有在裁系统的时候设置了

#10


在定制内核的时候要改一下注册表,也就是说在定制内核的时候就把IP写进去,怎样修改lllkk() 已说得很清楚了,这样应该没问题的

#11


各位兄弟:
    本人因为最近有事情外出没有时间回复各位的好意,我在此向光临本贴的同志们说声谢谢,真的谢谢你们!