I have a Digi ME 9210 with NET+OS configured with static IPv4 IP. If I boot up with serial cable connected, I see all boot infos and my printf messages from my firmware. But after the boot I get this annoying message “IAM:AUTOIP IPv4 169.254.247.72 on eth0:0” message inside my printf messages. Few lines before I got the message “IAM:STATIC IPv4 192.168.100.100 on eth0”, this is correct. But why the other message? How to disable?
Do you want to disable autoIP or just the message? Why?
to disable autoIP
appconf.h:
#define APP_ENABLE_AUTO_IP APP_ON_NO_INTERFACE
I set up a static IP, so I dont need auto ip. I think I already put this into my code… so how can I disable the message? Why? -> Because this message is inserted in the middle of my debug messages. Annoying.
The define above should disable AutoIP and you shouldn’t see the message. make sure it is set to APP_ON_NO_INTERFACE
I already added this, but with no effect.
I already added
#define APP_ENABLE_AUTO_IP APP_ON_NO_INTERFACE
but with no effect. The message “IAM:AUTOIP IPv4 169.254.247.72 on eth0:0” still appears.
Auto IP is set in the NVRAM so just disabling in code is not enough. You need a code to disable it in NVRAM:
#include “iam.hh”
int disableAutoIP(void)
{
devBoardParamsType boardParams;
BOOLEAN anyEnabled = FALSE;
int status, i;
status = customizeReadDevBoardParams (&boardParams);
if (status != BP_SUCCESS)
{
printf("customizeReadDevBoardParams returned error %d
", status);
return -1;
}
for (i = 0; i < NA_IAM_INTERFACE_MAX; i++)
//for (i = 0; i < 4; i++)
{
BOOLEAN isEnabled = boardParams.iamParamsInfo.iamParams[i].autoipParams.isEnabled;
printf("iamParams[%d].autoipParams.isEnabled:%d
", i , isEnabled);
if (isEnabled)
{
boardParams.iamParamsInfo.iamParams[i].autoipParams.isEnabled = FALSE;
anyEnabled = TRUE;
printf("found enabled interface: ", i);
}
}
if (anyEnabled)
{
status = customizeWriteDevBoardParams(&boardParams);
printf("Disabling Auto IP on interface: ", i);
if (status != BP_SUCCESS)
{
printf("customizeWriteDevBoardParams returned error %d
", status);
return -2;
}
//TODO: Maybe reset the device here?
}
return 0;
}
You need to run the code every time you reset NVRAM to defaults.