[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