一种嵌入式设备多网口初始化方法与终端与流程
未命名
09-22
阅读:63
评论:0
一种嵌入式设备多网口初始化方法与终端
1.本案是以申请日为2020年12月10日,申请号为202011451052.2,名称为“一种嵌入式设备多网口mac地址分配方法与终端”的发明专利为母案而进行的分案申请。
技术领域
2.本发明涉及计算机技术领域,特别涉及一种嵌入式设备多网口初始化方法与终端。
背景技术:
3.在vpn(virtual private network,虚拟专用网络),网安等设备上,要支持很多的网口,由于cpu资源有限,要使用switch芯片(交换芯片)来拓展网口个数,由于switch芯片使用dsa驱动(一种将交换芯片各个接口实体化的驱动框架),将switch芯片的网口变成独立实体的网口,但是这个过程中,所有网口的mac地址(media access control address,媒体存取控制位址,也称局域网地址、以太网地址和物理地址)都为上联口的mac地址,都是相同的,不符合产品要求,如果使用用户态程序手动将mac地址设置到每个网口,可能存在个别业务异常。
技术实现要素:
4.本发明所要解决的技术问题是:提供一种嵌入式设备多网口mac地址分配方法与终端,使嵌入式设备多网口mac地址各不相同的同时保证业务稳定。
5.为了解决上述技术问题,本发明采用的技术方案为:
6.一种嵌入式设备多网口mac地址分配方法,包括:
7.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
8.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,并进行网口初始化;
9.s3、启动文件系统。
10.一种嵌入式设备多网口初始化方法,包括步骤:
11.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
12.具体地,将mac基地址写入dtb文件中嵌入式设备使用的switch芯片与cpu连接的上联口位置上;
13.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,进行网口初始化。
14.为了解决上述技术问题,本发明采用的另一种技术方案为:
15.一种嵌入式设备多网口mac地址分配终端,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
16.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
17.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,并进行网口初始化;
18.s3、启动文件系统。
19.一种嵌入式设备多网口初始化终端,包括处理器,存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
20.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
21.具体地,将mac基地址写入dtb文件中嵌入式设备使用的switch芯片与cpu连接的上联口位置上;
22.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,进行网口初始化。
23.本发明的有益效果在于:本发明通过嵌入式系统的引导加载程序将mac基地址传入内核,由内核对基地址进行处理,保证了分配给各网口的mac地址各不相同,并在内核将mac地址写入各网口的结构体中,即在内核态时就对各网口进行地址分配以进行后续的网口初始化,保证了各网口处于正常状态,能够正常进行业务处理。
附图说明
24.图1为本发明实施例的一种嵌入式设备多网口mac地址分配方法的流程图;
25.图2为本发明实施例的一种嵌入式设备多网口mac地址分配终端的结构图;
26.图3为本发明实施例的一种嵌入式设备多网口mac地址分配方法的详细流程图;
27.图4为本发明实施例的一种嵌入式设备多网口mac地址分配方法的一个步骤结果示意图;
28.图5为本发明实施例的一种嵌入式设备多网口mac地址分配方法的方法运行结果示意图;
29.标号说明:
30.1、一种嵌入式设备多网口mac地址分配终端;2、处理器;3、存储器。
具体实施方式
31.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
32.请参照图1以及图3,一种嵌入式设备多网口mac地址分配方法,包括:
33.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址
写入dtb文件中;
34.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,并进行网口初始化;
35.s3、启动文件系统。
36.从上述描述可知,本发明的有益效果在于:本发明通过嵌入式系统的引导加载程序将mac基地址传入内核,由内核对基地址进行处理,保证了分配给各网口的mac地址各不相同,并在内核将mac地址写入各网口的结构体中,即在内核态时就对各网口进行地址分配以进行后续的网口初始化,保证了各网口处于正常状态,能够正常进行业务处理。
37.进一步的,所述步骤s1之前还包括:
38.s01、获取当前设备网卡的mac地址,并存储写入到boot1分区的环境变量。
39.由上述描述可知,由于mac地址保存以用户不易操作,并且不易丢失,易读取的位置为优,故将mac地址保存在boot1分区,因为嵌入式系统的引导加载程序使用boot0分区,嵌入式系统的引导加载程序源码下面也具有用户态读取boot的环境变量工具,方便准确写入,将mac地址写入boot1分区的环境变量,为最优地点。
40.进一步的,所述步骤s1具体为:
41.s11、启动嵌入式系统的引导加载程序,分别读取boot1分区的第一mac地址和boot0分区中的第二mac地址,比较所述第一mac地址和所述第二mac地址是否相同,若不相同,则将boot1分区中的第一mac地址作为第二mac地址覆盖写入boot0分区的环境变量,进入步骤s12,否则直接进入步骤s12;
42.s12、在所述引导加载程序解析dtb文件时,将boot0分区中的第二mac地址写入dtb文件。
43.由上述描述可知,本发明在将boot0分区中的第二mac地址写入dtb文件前,需要将第二mac地址与boot1中的mac地址进行比对,保证boot0中的第二mac地址是实时且正确的。
44.进一步的,步骤s2中对所述mac基地址进行预设处理具体为:
45.将所述mac基地址进行自加。
46.由上述描述可知,本发明对mac地址进行自加,运算简单,以能够最快地得到连续且不相同的mac地址进行分配。
47.进一步的,所述步骤s1中所述启动嵌入式系统的引导加载程序为uboot。
48.由上述描述可知,所述启动嵌入式系统的引导加载程序为uboot作为本发明的一种具体实施例。
49.请参照图2,一种嵌入式设备多网口mac地址分配终端,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
50.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
51.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,并进行网口初始化;
52.s3、启动文件系统。
53.从上述描述可知,本发明的有益效果在于:本发明通过嵌入式系统的引导加载程序将mac基地址传入内核,由内核对基地址进行处理,保证了分配给各网口的mac地址各不相同,并在内核将mac地址写入各网口的结构体中,即在内核态时就对各网口进行地址分配以进行后续的网口初始化,保证了各网口处于正常状态,能够正常进行业务处理。
54.进一步的,所述处理器执行所述计算机程序时所述步骤s1之前还包括:
55.s01、获取当前设备网卡的mac地址,并存储写入到boot1分区的环境变量。
56.由上述描述可知,由于mac地址保存以用户不易操作,并且不易丢失,易读取的位置为优,故将mac地址保存在boot1分区,因为嵌入式系统的引导加载程序使用boot0分区,嵌入式系统的引导加载程序源码下面也具有用户态读取boot的环境变量工具,方便准确写入,将mac地址写入boot1分区的环境变量,为最优地点。
57.进一步的,所述步骤s1具体为:
58.s11、启动嵌入式系统的引导加载程序,分别读取boot1分区的第一mac地址和boot0分区中的第二mac地址,比较所述第一mac地址和所述第二mac地址是否相同,若不相同,则将boot1分区中的第一mac地址作为第二mac地址覆盖写入boot0分区的环境变量,进入步骤s12,否则直接进入步骤s12;
59.s12、在所述引导加载程序解析dtb文件时,将boot0分区中的第二mac地址写入dtb文件。
60.由上述描述可知,本发明在将boot0分区中的第二mac地址写入dtb文件前,需要将第二mac地址与boot1中的mac地址进行比对,保证boot0中的第二mac地址是实时且正确的。
61.进一步的,步骤s2中对所述mac基地址进行预设处理具体为:
62.将所述mac基地址进行自加。
63.由上述描述可知,本发明对mac地址进行自加,运算简单,以能够最快地得到连续且不相同的mac地址进行分配。
64.进一步的,所述步骤s1中所述启动嵌入式系统的引导加载程序为uboot。
65.由上述描述可知,所述启动嵌入式系统的引导加载程序为uboot作为本发明的一种具体实施例。
66.请参照图1、图3、图4以及图5,本发明的实施例一为:
67.一种嵌入式设备多网口mac地址分配方法,包括:
68.s01、获取当前设备网卡的mac地址,并存储写入到boot1分区的环境变量;
69.本实施例中,由于mac地址保存以用户不易操作,并且不易丢失,易读取的位置为优,故将mac地址保存在boot1分区,因为uboot使用boot0分区,uboot源码下面也具有用户态读取boot的环境变量工具,方便准确写入,将mac地址写入boot1分区的环境变量,为最优地点。
70.s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;
71.所述步骤s1具体为:
72.s11、启动嵌入式系统的引导加载程序,分别读取boot1分区的第一mac地址和boot0分区中的第二mac地址,比较所述第一mac地址和所述第二mac地址是否相同,若不相
同,则将boot1分区中的第一mac地址作为第二mac地址覆盖写入boot0分区的环境变量,进入步骤s12,否则直接进入步骤s12;
73.s12、在所述引导加载程序解析dtb文件时,将boot0分区中的第二mac地址写入dtb文件;
74.所述步骤s1中所述启动嵌入式系统的引导加载程序为uboot;
75.本实施例中,如图4所示,uboot每次开机自动执行,在读取boot1中的mac地址后,读出boot0中的mac地址,两个mac地址进行对比,若相同,直接返回,若不同,将boot1中的mac地址覆盖写入boot0环境变量,此时boot0分区中的mac地址为boot1分区中的mac地址。
76.mac地址写入boot0环境后,uboot在解析dtb文件时,需要将mac地址设置写入到dtb文件,以便传递给内核,我们一般将mac基地址写入dtb文件中设备使用的switch芯片与cpu连接的上联口位置上,dtb文件为设备树文件。
77.s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,并进行网口初始化;
78.步骤s2中对所述mac基地址进行预设处理具体为:
79.将所述mac基地址进行自加;
80.s3、启动文件系统。
81.本实施例中,内核启动时,当加载到dsa驱动时,内核获取dtb文件传递进来的mac地址,通过dsa驱动,在驱动将每个switch网口实体化的时候,将mac地址复制给相应网口,由于只有一个基地址,驱动要根据设备switch芯片和使用网口,将mac地址自加后,保存到该网口的结构体中。系统启动后的最终的结果,如图5所示。
82.请参照图2,本发明的实施例二为:
83.一种嵌入式设备多网口mac地址分配终端1,包括处理器2、存储器3及存储在存储器3上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以上实施例一中的步骤。
84.综上所述,本发明提供的一种嵌入式设备多网口mac地址分配方法与终端,本发明通过嵌入式系统的引导加载程序将mac基地址传入内核,由内核对基地址进行处理,保证了分配给各网口的mac地址各不相同,并在内核将mac地址写入各网口的结构体中,即在内核态时就对各网口进行地址分配以进行后续的网口初始化,保证了各网口处于正常状态,能够正常进行业务处理;且本发明在读入mac地址时对其进行了校验,保证mac地址的正确性。
85.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种嵌入式设备多网口初始化方法,其特征在于,包括步骤:s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;具体地,将mac基地址写入dtb文件中嵌入式设备使用的switch芯片与cpu连接的上联口位置上;s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,进行网口初始化。2.根据权利要求1所述的一种嵌入式设备多网口初始化方法,其特征在于,所述步骤s1之前还包括:s01、获取当前设备网卡的mac地址,并存储写入到boot1分区的环境变量。3.根据权利要求2所述的一种嵌入式设备多网口初始化方法,其特征在于,所述步骤s1具体为:s11、启动嵌入式系统的引导加载程序,分别读取boot1分区的第一mac地址和boot0分区中的第二mac地址,比较所述第一mac地址和所述第二mac地址是否相同,若不相同,则将boot1分区中的第一mac地址作为第二mac地址覆盖写入boot0分区的环境变量,进入步骤s12,否则直接进入步骤s12;s12、在所述引导加载程序解析dtb文件时,将boot0分区中的第二mac地址写入dtb文件。4.根据权利要求1所述的一种嵌入式设备多网口初始化方法,其特征在于,步骤s2中对所述mac基地址进行预设处理具体为:将所述mac基地址进行自加。5.根据权利要求1所述的一种嵌入式设备多网口初始化方法,其特征在于,所述步骤s1中所述启动嵌入式系统的引导加载程序为uboot。6.一种嵌入式设备多网口初始化终端,包括处理器,存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:s1、启动嵌入式系统的引导加载程序,读取预先存储的mac地址,并将所述mac地址写入dtb文件中;具体地,将mac基地址写入dtb文件中嵌入式设备使用的switch芯片与cpu连接的上联口位置上;s2、启动内核,在加载dsa驱动时,获取所述dtb文件中的mac地址作为mac基地址,对所述mac基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口mac地址,将每一个所述网口mac地址分别写入对应的网口的结构体中,进行网口初始化。7.根据权利要求6所述的一种嵌入式设备多网口初始化终端,其特征在于,所述步骤s1之前还包括:s01、获取当前设备网卡的mac地址,并存储写入到boot1分区的环境变量。8.根据权利要求7所述的一种嵌入式设备多网口初始化终端,其特征在于,所述步骤s1具体为:
s11、启动嵌入式系统的引导加载程序,分别读取boot1分区的第一mac地址和boot0分区中的第二mac地址,比较所述第一mac地址和所述第二mac地址是否相同,若不相同,则将boot1分区中的第一mac地址作为第二mac地址覆盖写入boot0分区的环境变量,进入步骤s12,否则直接进入步骤s12;s12、在所述引导加载程序解析dtb文件时,将boot0分区中的第二mac地址写入dtb文件。9.根据权利要求6所述的一种嵌入式设备多网口初始化终端,其特征在于,步骤s2中对所述mac基地址进行预设处理具体为:将所述mac基地址进行自加。10.根据权利要求6所述的一种嵌入式设备多网口初始化终端,其特征在于,所述步骤s1中所述启动嵌入式系统的引导加载程序为uboot。
技术总结
本发明公开了一种嵌入式设备多网口MAC地址分配方法与终端;本发明启动嵌入式系统的引导加载程序,读取预先存储的MAC地址,并将所述MAC地址写入dtb文件中;启动内核,在加载dsa驱动时,获取所述dtb文件中的MAC地址作为MAC基地址,对所述MAC基地址进行预设处理,得到连续、互不相同且数量与网口数量相同的网口MAC地址,将每一个所述网口MAC地址分别写入对应的网口的结构体中,并进行网口初始化;启动文件系统;本发明通过嵌入式系统的引导加载程序将MAC基地址传入内核,由内核对基地址进行处理,保证了分配给各网口的MAC地址各不相同,且在内核态时就对各网口进行地址分配并进行后续的网口初始化,保证了各网口处于正常状态,能够正常进行业务处理。能够正常进行业务处理。能够正常进行业务处理。
技术研发人员:张水生
受保护的技术使用者:福州创实讯联信息技术有限公司
技术研发日:2020.12.10
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种及时发现二次电流回路开路的方法与流程 下一篇:一种处理集水坑渗水的方法与流程