[En-Nut-Discussion] bootloader dhcp problem

Sergey Basmanov sergey at idknet.com
Sat Apr 24 23:13:10 CEST 2004


I have received new ethernut2 board with flashed basemon and bootloader.
There was a 3.3.2 version of nut/os.
When I tried to update software I found, that bootloader doesn't obtain 
ip address from dhcp server and fails to load file.
It sends DHCPDISCOVER message and server responds with DHCPOFFER. But 
there is no DHCPREQUEST and ACK.
I've read manual and found a parameter in dhcpd.conf:

         always-broadcast flag;

         The  DHCP  and BOOTP protocols both require DHCP and BOOTP 
clients to
         set the broadcast bit in the flags field of the BOOTP message 
header.
         Unfortunately, some DHCP and BOOTP clients do not do this, and 
there-
         fore may not receive responses  from  the  DHCP  server.    
The  DHCP
         server  can  be  made to always broadcast its responses to 
clients by
         setting this flag to 'on' for the  relevant  scope;  relevant  
scopes
         would  be inside a conditional statement, as a parameter for a 
class,
         or as a parameter for a host declaration.   To avoid creating  
excess
         broadcast traffic on your network, we recommend that you 
restrict the
         use of this option to as few clients as possible.   For 
example,  the
         Microsoft  DHCP  client is known not to have this problem, as 
are the
         OpenTransport and ISC DHCP clients.

So, setting this flag to "on" helped me.

PS: my suggestion: why not to add version control to boot file? I mean: 
store filename in eeprom in format: appname-x.x.x or something like this.
Setup board to always start booloader and on every boot check tftp 
server if filename changed. And if it changed - download new image.
This might be useful for development - just put new file on tftp server 
and reset board.

Best regards, Sergey.




More information about the En-Nut-Discussion mailing list