当前位置:  互联网>综合
本页文章导读:
    ▪2440开发板linux系统移植3G拨号上网发短信(一)       一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只.........
    ▪2440开发板linux系统移植3G拨号上网收发短信(一)       一、      PPP移植 各项工作具体说明 向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只.........
    ▪趣谈TCP与UDP             大家都知道,传输层定义了两种协议,一种是TCP,另一种就是UDP。提到TCP,我们第一印象就是这是一种面向连接、可靠、不会丢包的传输层控制协议;而提到UDP,我们就会说.........

[1]2440开发板linux系统移植3G拨号上网发短信(一)
    来源: 互联网  发布时间: 2013-10-26

一、      PPP移植

各项工作具体说明

向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项。

[lingyun@localhost linux-3.0]$ make menuconfig

1、USB的驱动要选这几个:

DeviceDrivers---→

USBsupport---→

<*>USB SerialConverter support--→

[*]USBGeneric Serial Driver 

<*>USBdriver for GSM and CDMA modems

2、到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选):

DeviceDrivers--→

Network devicesupport---→

<*> PPP (point-to-point protocol) support   
        [*]   PPP multilink support (EXPERIMENTAL)    
        <*>   PPP support for async serial ports      
        <*>   PPP support for sync tty ports          
       <*>   PPP Deflate compression               

 <*>   PPP BSD-Compress compression 

完成了这些步骤以后就可以退出make menuconfig进行make编译内核了。然后再把生成的镜像文件下载到板子上重启开发板即可。然后就会发现在/dev/目录下生成ppp设备节点:

~ >: ls -l dev/ppp 
crw-rw----    1 root     root      108,   0 Mar 27 17:35 dev/ppp



二、      usb_modeswitch移植

下载usbmode库:

[lingyun@localhost fulinux]$ mkdir usbmode
[lingyun@localhost fulinux]$ cd usbmode/

[lingyun@localhost usbmode]$ wget http://pkgs.fedoraproject.org/repo/pkgs/libusb1/libusb-1.0.0.tar.bz2/df2447c23750ef2b4a314200feacc2ee/libusb-1.0.0.tar.bz2

[lingyun@localhost usbmode]$ wget http://jaist.dl.sourceforge.net/project/libusb/libusb-compat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2

[lingyun@localhost usbmode]$wget http://pkgs.fedoraproject.org/repo/pkgs/usb_modeswitch/usb-modeswitch-1.2.4.tar.bz2/dbd4ce7966d7b4a5a0604a8280f7164d/usb-modeswitch-1.2.4.tar.bz2

[lingyun@localhost usbmode]$ wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20130607.tar.bz2

以上这些下载地址如果有失效的,搜索相应的文件下载,即可下载。



解压:

[lingyun@localhost usbmode]$ tar xjf libusb-1.0.0.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf libusb-compat-0.1.5.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf usb-modeswitch-1.2.6.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf usb-modeswitch-data-20130607.tar.bz2 



编译libusb:

[lingyun@localhost usbmode]$ mkdir install
[lingyun@localhost usbmode]$ cd libusb-1.0.0

[lingyun@localhost libusb-1.0.0]$ ./configure --prefix=/home/lingyun/fulinux/usbmode/install/  --build=i686 --host=arm-linux  --disable-shared --enable-static    (注意有两--的前面有一个空格)

[lingyun@localhost libusb-1.0.0]$ make

[lingyun@localhost libusb-1.0.0]$ make install

[lingyun@localhost libusb-1.0.0]$ ls ../install/
include  lib
[lingyun@localhost libusb-1.0.0]$ 



编译usb_modeswitch:

[lingyun@localhost usbmode]$ cd usb-modeswitch-1.2.6
[lingyun@localhost usb-modeswitch-1.2.6]$ ls
[lingyun@localhost usb-modeswitch-1.2.6]$ vim Makefile 

CC          ?=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc #addr fulinux
CFLAGS      += -Wall -l ../install/include-static #add by fulinux
LIBS        = -L ../install/lib/ -l usb -l usb-1.0-l pthread   #add by fulinux

[lingyun@localhost libusb-1.0.0]$ cd ..
[lingyun@localhost usbmode]$ export PKG_CONFIG_PATH=/home/lingyun/fulinux/usbmode/install/lib/pkgconfig:$PKG_CONFIG_PATH

[lingyun@localhost usbmode]$ cd libusb-compat-0.1.5
[lingyun@localhost libusb-compat-0.1.5]$ 

[lingyun@localhost libusb-compat-0.1.5]$ ./configure --prefix=/home/lingyun/fulinux/usbmode/install/  --build=i686 --host=arm-linux --disable-shared --enable-static

[lingyun@localhost libusb-compat-0.1.5]$ make 


    
[2]2440开发板linux系统移植3G拨号上网收发短信(一)
    来源: 互联网  发布时间: 2013-10-26

一、      PPP移植

各项工作具体说明

向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项。

[lingyun@localhost linux-3.0]$ make menuconfig

1、USB的驱动要选这几个:

DeviceDrivers---→

USBsupport---→

<*>USB SerialConverter support--→

[*]USBGeneric Serial Driver 

<*>USBdriver for GSM and CDMA modems

2、到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选):

DeviceDrivers--→

Network devicesupport---→

<*> PPP (point-to-point protocol) support   
        [*]   PPP multilink support (EXPERIMENTAL)    
        <*>   PPP support for async serial ports      
        <*>   PPP support for sync tty ports          
       <*>   PPP Deflate compression               

 <*>   PPP BSD-Compress compression 

完成了这些步骤以后就可以退出make menuconfig进行make编译内核了。然后再把生成的镜像文件下载到板子上重启开发板即可。然后就会发现在/dev/目录下生成ppp设备节点:

~ >: ls -l dev/ppp 
crw-rw----    1 root     root      108,   0 Mar 27 17:35 dev/ppp



二、      usb_modeswitch移植

下载usbmode库:

[lingyun@localhost fulinux]$ mkdir usbmode
[lingyun@localhost fulinux]$ cd usbmode/

[lingyun@localhost usbmode]$ wget http://pkgs.fedoraproject.org/repo/pkgs/libusb1/libusb-1.0.0.tar.bz2/df2447c23750ef2b4a314200feacc2ee/libusb-1.0.0.tar.bz2

[lingyun@localhost usbmode]$ wget http://jaist.dl.sourceforge.net/project/libusb/libusb-compat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2

[lingyun@localhost usbmode]$wget http://pkgs.fedoraproject.org/repo/pkgs/usb_modeswitch/usb-modeswitch-1.2.4.tar.bz2/dbd4ce7966d7b4a5a0604a8280f7164d/usb-modeswitch-1.2.4.tar.bz2

[lingyun@localhost usbmode]$ wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20130607.tar.bz2

以上这些下载地址如果有失效的,搜索相应的文件下载,即可下载。



解压:

[lingyun@localhost usbmode]$ tar xjf libusb-1.0.0.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf libusb-compat-0.1.5.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf usb-modeswitch-1.2.6.tar.bz2 
[lingyun@localhost usbmode]$ tar xjf usb-modeswitch-data-20130607.tar.bz2 



编译libusb:

[lingyun@localhost usbmode]$ mkdir install
[lingyun@localhost usbmode]$ cd libusb-1.0.0

[lingyun@localhost libusb-1.0.0]$ ./configure --prefix=/home/lingyun/fulinux/usbmode/install/  --build=i686 --host=arm-linux  --disable-shared --enable-static    (注意有两--的前面有一个空格)

[lingyun@localhost libusb-1.0.0]$ make

[lingyun@localhost libusb-1.0.0]$ make install

[lingyun@localhost libusb-1.0.0]$ ls ../install/
include  lib
[lingyun@localhost libusb-1.0.0]$ 



编译usb_modeswitch:

[lingyun@localhost usbmode]$ cd usb-modeswitch-1.2.6
[lingyun@localhost usb-modeswitch-1.2.6]$ ls
[lingyun@localhost usb-modeswitch-1.2.6]$ vim Makefile 

CC          ?=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc #addr fulinux
CFLAGS      += -Wall -l ../install/include-static #add by fulinux
LIBS        = -L ../install/lib/ -l usb -l usb-1.0-l pthread   #add by fulinux

[lingyun@localhost libusb-1.0.0]$ cd ..
[lingyun@localhost usbmode]$ export PKG_CONFIG_PATH=/home/lingyun/fulinux/usbmode/install/lib/pkgconfig:$PKG_CONFIG_PATH

[lingyun@localhost usbmode]$ cd libusb-compat-0.1.5
[lingyun@localhost libusb-compat-0.1.5]$ 

[lingyun@localhost libusb-compat-0.1.5]$ ./configure --prefix=/home/lingyun/fulinux/usbmode/install/  --build=i686 --host=arm-linux --disable-shared --enable-static

[lingyun@localhost libusb-compat-0.1.5]$ make 


    
[3]趣谈TCP与UDP
    来源: 互联网  发布时间: 2013-10-26


      大家都知道,传输层定义了两种协议,一种是TCP,另一种就是UDP。提到TCP,我们第一印象就是这是一种面向连接、可靠、不会丢包的传输层控制协议;而提到UDP,我们就会说非可靠连接、会丢包、但是速度快,可实时传输数据。这些特点我想每一位学网络的人都早已耳熟能详,即使没有接触过网络的人也早已而闻。但是具体的讲,这是什么原因造成的?TCP和UDP的区别这么大,在如今快速发展的互联网时代,他们又在哪些实际应用中分别发挥着自己的功能呢?

      带着这些疑问,听小编细细道来。

     “3次握手建立TCP连接,4次握手终止TCP连接”。是的,TCP和UDP最大的不同就在这里,当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP建立连接的过程是通过三次握手来完成的,首先发送端给接收端发送一个SYN请求,就相当于问对方:“我可以给你发送数据吗?”接收端收到这个请求后,向发送端回应一个SYN/ACK应答,就是说:“当然可以,我可以向你发送数据吗?”然后发送方收到此包后在向接收端回应ACK,发送端说:“可以啊。”完成3次握手后,TCP连接成功建立,双方就能相互发送数据了。而终止一个TCP连接需要4次握手,这是由TCP的半关闭状态造成的。由于发送端和接收端的连接都能独立的被终止,所以在这个过程中双方都需要发送一个FIN和ACK。

     TCP提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能从一端传到另一端。提到这些TCP的特有功能,其实在TCP的报头中完美的体现了出来。

   

                          图1   TCP 报头结构

      TCP报头的总长最小为20字节,其中来源连接端口指定了发送端的端口,目的连接端口指定了接收端的端口,它们用来标识发送方和接收方的应用层。对于每个TCP连接的一端,都有一个相关的16位的无符号端口号分配给它们,这个端口号与它所在主机的IP地址构成一个48位的套接字,一对套接字在互联网中唯一标识一个TCP连接。序列号是用于标识每个报文段,使接收端可确认已收到指定报文段中的数据。当发送端用多个报文段发送一个报文时,即使这些报文到达目的主机的顺序不一样,序列号也可以使目的主机按顺序排列它们。确认号32位,目的主机返回确认号,使源主机知道某个或几个报文段已被接收。如果ACK控制位被设置为1,则该字段有效。确认号等于顺序接收到的最后一个报文段的序号加1,这也是目的主机希望下次接收的报文段的序号值。返回确认号后,计算机就认为此确认号之前的数据都已经接收到。如此,就实现了无乱序、无丢失、和无重复的可靠数据传输。标题长度占4位,指明了TCP报文头的长度,保留是为以后预留一个字段,标志符就是我们通常所说的标志位,当满足条件时,把对应的位置1。例如:当发送确认信号时,就在报文头中把ARK位置1.窗口指明了发送端下一段能发送数据的大小,避免主机分组发送得过快而使接收端来不及完全收下,避免了网络阻塞。TCP的校验和占16位,在传输是设置了双校验机制,也就是发送者在发送时需要把TCP的段头和数据包校验一次,同时接收者收到报文后也需要重新校验一次。如此一来,就保证了报文的完整性和正确性。紧急指针指明报文中包含紧急信息,只有当URG位置1时,紧急指针才有效。

      相对而言,UDP的数据传输就简单多了,它不提供可靠性,只是把数据包往IP层上一扔,至于数据包能不能传送到目的地,会不会丢包,传送数据报的顺序是否正确,不好意思,这就不是UDP能够提供的了。由于UDP传输数据包前不需要建立连接,没有重发机制,所以UDP速度非常快。其实这些在UDP的报头中都体现了出来。

                                  图2 UDP报头结构

UDP报头由4个部分组成,其中两个是可选的。各16bit的来源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度域,用来指定UDP头部和UDP数据的总长度,长度最小值为8byte。报头剩下地16bit是用来对首部和数据部分一起做校验和(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。

     显然,TCP和UDP都有一些自己的独特的地方,这就决定了TCP与UDP在不同的领域发光发热。这就要我们选择时多注意点了,下面是我的几点建议:

l 当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择,如:发送邮件。

l 当强调传输性能而不是传输的完整性时,如:实时流多媒体(如因特网广播)、实时多媒体播放器和游戏、IP电话(VoIP)等等,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。

      TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信不远的将来一定会出现功能多、性能高的TCP协议应用到我们的网络中。

    

作者:WIZnet2012 发表于2013-7-15 10:15:18 原文链接
阅读:4 评论:0 查看评论

    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪sre_constants.error: unbalanced parenthesis    ▪http headers    ▪Google MapReduce中文版
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3