在嵌入式设备上实现IPv6网络的接
引 言
向下一代互联网过渡的进程已经开始。IPv6作为下一代 互联网的核心协议,能够提供几乎无限的地址空间,从根本上克服了IPv4中地址空间不足的问题,也为在不远的将来把数量众多的嵌入式设备接入网络创造了条 件。Linux的内核从2.4版就已经开始支持IPv6,同时,Linux作为开源的操作系统,也便于向不同的硬件平台移植。由于现有的网络基础设施运行 的大都是IPv4协议栈,选择隧道方式接入IPv6网络,是一种充分利用现有设备的过渡手段。基于以上原因,本文选用支持IPv6的Linux内核,通过 隧道方式把基于ARM的嵌入式设备接入IPv6网络。
1 编译支持IPv6的Linux内核
本文所用的硬件环境是Xscale的Sitsang开发板。要向ARM核的CPU移植Linux,首先要准备交叉编译环境,包括 armlinuxgcc、armlinuxld、armlinuxas,以便在PC机上编译可运行于ARM核CPU的目标代码。实验选用的Linux内核源码包是linux2.4.19.tar.bz2,另外还有一个针对Sitsang 板的内核补丁(包括驱动程序)patch2.4.19sitsang2.gz。以下是编译支持IPv6的Linux内核的过程。
(1) 解开源码包并打专用补丁
#tar jvxf linux-2.4.19.tar.bz2
#ln -s linux-2.4.19 linux
#gzip -dc patch-2.4.19-sitsang2.gz | patch -p0
上述第2行命令 建立符号链接,是为了第3行命令对Linux的标准内核进行打补丁的操作。
(2) 配置编译选项
现在得到的Linux内核版 本是支持IPv6的,但是支持IPv6的模块默认并不是编译入内核的。在make menuconfig的时候,注意把Network Options下有关IPv6和隧道(tunnel)的模块选为内核模式,以便得到所需要的内核文件。其他选项不需要更改。
(3) 编译内核
#make dep
#make zImage
#make modules
以上命令分别表示建立内核 中各模块的依赖关系,编译内核,编译驱动模块。编译无误,就在../linux/arch/arm/boot/目录下得到了所需的Linux内核文件 zImage。
已经有了支持IPv6的内核,接下来的工作是把启动程序和内核文件外加一个精简的文件系统烧录到开发板上去,开发板就可以启动了。关于如何烧录启动程序、内核和文件系统并不是本文的主要内容,可参看其他嵌入式系统开发的资料。
2 重新编译工具程序
配置和测试网络环境需要ifconfig、ping、traceroute等工具程序。上面的精 简文件系统并没有包括以上工具程序支持IPv6的版本,如ping6、traceroute6等,因此需要重新编译包含这些工具程序的源码包 nettools和netutils。注意选用版本较新的源码包,以确保其支持IPv6。将源码包解开后,修改其Makefile文件,使之使用交叉编译 工具链编译和链接,生成所需的目标代码。将编译生成的在ARM核的CPU上可执行的文件ifconfig、ping6和traceroute6拷贝到嵌入 式设备文件系统的相应位置,以备下面的配置和测试时使用。
相关文章
- 2022-01-20LabVIEW在全自动点胶机中的应用
- 2021-12-05基于ARM的2M测试系统
- 2022-07-17光纤密封转接的氦质谱检漏技术研究
- 2023-12-06阴极弧离子镀磁过滤器
- 2023-08-17计量光栅空间位姿参数光场输出模型与仿真
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。