|
|
| | -文章搜索 - 最新文章 - | |
在嵌入式设备上实现IPv6网络的接入 |
| 发布时间:2005年4月27日 点击次数:721 |
| 来源:单片机与嵌入式系统应用 作者:清华大学 周兴 陶品 |
摘要 阐述如何在基于ARM的嵌入式设备上移植支持IPv6协议栈的Linux操作系统;重新编译Linux的网络相关工具程序,使之能在移植的操作系统上运行;通过隧道方式,将嵌入式设备接入IPv6网络。 关键词 ARM XScale Linux 交叉编译 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) 解开源码包并打专用补丁 上述第2行命令建立符号链接,是为了第3行命令对Linux的标准内核进行打补丁的操作。 (2) 配置编译选项 (3) 编译内核 以上命令分别表示建立内核中各模块的依赖关系,编译内核,编译驱动模块。编译无误,就在../linux/arch/arm/boot/目录下得到了所需的Linux内核文件zImage。 已经有了支持IPv6的内核,接下来的工作是把启动程序和内核文件外加一个精简的文件系统烧录到开发板上去,开发板就可以启动了。关于如何烧录启动程序、内核和文件系统并不是本文的主要内容,可参看其他嵌入式系统开发的资料。 2 重新编译工具程序 配置和测试网络环境需要ifconfig、ping、traceroute等工具程序。上面的精简文件系统并没有包括以上工具程序支持IPv6的版本,如ping6、traceroute6等,因此需要重新编译包含这些工具程序的源码包nettools和netutils。注意选用版本较新的源码包,以确保其支持IPv6。将源码包解开后,修改其Makefile文件,使之使用交叉编译工具链编译和链接,生成所需的目标代码。将编译生成的在ARM核的CPU上可执行的文件ifconfig、ping6和traceroute6拷贝到嵌入式设备文件系统的相应位置,以备下面的配置和测试时使用。 3 配置隧道将嵌入式设备接入IPv6网络 首先到以下地址申请一段IPv6的地址:http://knight.6test.edu.cn/tb/html/。在页面中点击“Register”,填写用户名、Email和所需的Subnet Prefix Length(64/128),提交之后就得到了一段IPv6地址。要开始使用这段申请到的地址,还得点击页面中的“Activate the tunnel”链接加以激活。假设申请到的地址是3ffe:321f:0:775::/64,Tunnel Broker Server的地址是202.38.99.9,下面就开始配置隧道。 由于上面申请到的地址需要激活才能使用,而对于一些没有图形界面的嵌入式设备通过Web方式激活不方便;另外,由于与Tunnel Broker Server直接隧道连接需要一个独立的IPv4地址,而申请到的地址总量巨大(64位地址总量达2的64次方),为避免浪费,本文采取了用一台PC机与Tunnel Broker Server连接充当IPv6网关,而包括Sitsang开发板在内的其他设备通过网关接入的办法。 实验中,作为网关的PC机运行的是RedHat Linux 9,有两块网卡,IPv4地址分别是166.111.249.184(eth0)和192.168.1.184(eth1),Sitsang开发板有一个以太网口,IPv4地址是192.168.2.231(eth0),默认网关是192.168.2.184。IPv4的路由已设置好,即Sitsang开发板已经能ping通外部的IPv4网络。 (1) 建立网关与Tunnel Broker Server的隧道 以上命令分别表示: ◆ 手动装入IPv6模块。RedHat 9的2.4.20内核默认并没有把IPv6模块装入内核; (2) 激活网关与嵌入式设备的自动隧道 sit0是一个自动隧道,激活之后就会添加相应的IPv4兼容的IPv6地址。其格式为::x.x.x.x(x.x.x.x是IPv4地址)。具体来说,网关PC机的sit0将会自动添加::166.111.249.184/96,::127.0.0.1/96,::192.168.2.184/96三个兼容地址;而Sitsang开发板上的sit0将会自动添加::127.0.0.1/96,::192.168.2.231/96两个兼容地址。 (3) 配置IPv6路由项 在网关PC机上: 结语 本文介绍了如何在采用XScale的Sitsang开发板的硬件环境下,使用交叉编译工具链移植支持IPv6的Linux操作系统;着重介绍了如何采用隧道方式,通过网关把嵌入式设备接入IPv6网络的方法。本文介绍的方法均已在硬件设备上实际调试通过。其基本方法适用于移植了Linux操作系统的各种嵌入式设备。 参考文献 1 [美] Joseph Davies. 理解IPv6. 张晓彤,晏国晟,曾庆峰译. 北京: 清华大学出版社,2004 |
|
|
|
|
[嵌入式系统] 相关文章: Registered SDRAM在MPC8241系统中的应用简介:
摘要 介绍Registered SDRAM的工作原理和接口芯片,以及在MPC8241嵌入式系统中进行Registered SDRAM电路设计的实例;给出电路原理设计和PCB布局布线的一般规则。 关键词 RegisteredSDRAM MPC8241 接口技术 在嵌入式系统中,传统的SDRAM接口电路设计模式是系统主控芯片直接驱动所有内存芯片的地址/控制信号。当内存芯片数量较多时,这类直接驱动的设计会出现因主控芯片的地址/控制信号驱动能力不足,而导致系统内存工作不稳定的问题。Registered SDRAM是指具有地址/控制信号锁存电路的SDRAM模块,特点是系统主控芯片的...... μPSD 32XX单片机在税控器开发中的应用
关于嵌入式教学中选用系统的感受
Windows CE中实现蓝牙串口驱动程序
基于SoPC的汽车安全监控系统设计
中日韩三国Linux厂商共同预发布Asianux2.0
基于LPC2119和μC/OS-II的CAN中继器设计
嵌入式网络监控系统设计方案
基于S1C33L11的JPEG图像实时显示和数据传送系统的设计
基于EP7211构建通用嵌入式处理平台 |
|
|
|