嵌入式网络设备的MAC及IP地址设置
针对以上问题,笔者在S3C4510B上运行uClinux时,使用了一些特殊的方法来解决它。
2 MAC及IP地址的设置
笔者使用的S3C45
10B嵌入式网络设备的基本框图如图1所示。
其中,Flash是一片HY29LV160,共16Mb,分35个扇区。程序映像文件是从低扇区开始存放的。
本嵌入式网络设备系统的MAC及IP地址设置的基本思想是:把MAC及IP地址存放在Flash的未用扇区(一般在高扇区),嵌入式操作系统启动后,自动运行一个程序去读取MAC及IP地址并设置它。
用户如何把MAC及IP地址放到Flash中?笔者使用的方法是通过计算机串口与网络设备的RS232接口(即串口)相连,使用超级终端的方式,运行网络设备中的程序把数据写入Flash中。
针对MAC及IP地址的设置,笔者编了以下两个运行于嵌入式操作系统uClinux上的程序。
(1)MyIP:处理IP地址的设置
程序使用说明:
myip-r ;读取Flash中的IP地址并检验合法性和启用它
myip-w 172.20.91.15 ;更改Flash中的IP地址为172.20.91.15, ;掩码为255.255.255.0,并启用它
myip-w 172.20.91.15-m 255.255.192.0 ;更改Flash中的IP地址为172.20.91.15,掩码为255.255.192.0,并启用它
(2)MyMAC,处理MAC地址的设置
程序使用说明:
mymac-r ;读取Flash中的MAC地址并检验合法性和启用它
mymac-w aa:bb:dd:ee:ff,更改Flash中的MAC地址为aa:bb:cc:dd:ee:ff,并启用它
运行在S3C4510B上的应用程序,可以用串口终端输入指令的方式运行。作为嵌入式应用,要求系统复位就能自动行动指定的程序。这时,我们得到另一种运行程序的方式:在uClinux开发包的4510B文件中配置(相当于DOS中的自动批处理程序)。如加入
/bin/./mymac-r
/bin/./myip-r
编译后的映像文件就可使系统自动运行mymac-r和myip-r,完成系统启动时自动从Flash中读取MAC地址和IP地址并配置它们。
对于嵌入式网络设备生产厂家,可以使用以上两个程序的带“-W”参数的用法完成MAC和IP地址的设置;而嵌入式网络设备的用户只用知道处理IP地址的程序,一般不允许随着更改MAC地址。
图2、图3是两个程序的流程。
在这里强调两点:
①这两个程序都用到了Linux的网络配置指令ifconfig(具体用法请查阅Linux下的相关帮助文档)。在用该指令更改MAC地址时,需要硬件的支持。如一般的通用计算机上,网卡的MAC地址不能更改,该指令执行时将报异常;而在S3C4510B这样的嵌入式网络设备上,就能成功更改设备运行时的MAC地址。
《嵌入式网络设备的MAC及IP地址设置(第2页)》