研发课堂丨手把手教你添加i.MX6UL对curl软件的支持


 

前言

curl是一个开源项目,名字的含义是客户端(client)的URL工具的意思。主要的产品是curl( 命令行工具)和libcurl( C语言的API库),两者功能均是:基于网络协议,对指定URL进行网络传输。

curl是强大的网络协议传输工具,它支持http/https/ftp等协议,还支持POST、cookies、认证、断点续传、指定user-agent、限制下载速度和文件大小、传输进度条等等功能,涉及任何网络协议传输,不涉及对具体数据的具体处理(如:html的渲染等)。curl在命令行或脚本中用于 传输数据,用于汽车、电视机、路由器、打印机、音频设备、手机、平板电脑、机顶盒、媒体播放器等等设备中,是每天影响数十亿人口的互联网传输基础软件。

基于 Cortex A7架构 i.MX6UL设计的 FETMX6UL- C核心板应用场景比较多,客户的需求也各不相同。本文将结合操作实例,分享FETMX6UL-C支持 curl软件的方法。




前期准备

在移植curl之前需要准备以下工具:

1.  i.MX6UL 开发环境:Ubuntu12.04 x32 (下载地址在文末)

2. libcurl的安装包:curl-7.67.0.tar.gz(官网下载的最新版,官网地址在文末提供)

3. 交叉编译环境:根据安装时的配置而不同,大部分都在/opt下或者~/opt下(本文的交叉编译环境位置:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin)。交叉编译工具链使用的是linaro的4.6.2版本,在i.MX6UL开发资料中有提供。以下是目录下的内容:

 

4. 移植平台:FETMX6UL-C Linux3.14.38系统 Qt4.8/Console


操作步骤

1. 从官网下载最新版,并解压:

2. 

3. 进入到解压文件夹:

 

4. 编译器配置,(其中--profix参数是指软件最终编译生成的位置,本文设置的路径为:/home/bk/work/libcurl目录下),指令执行后会配置编译器:

 

5. 使用交叉编译工具链编译:

 

6. 执行如下命令编译安装到步骤3中指定的位置。注意:本步骤会有多出错误提示,忽略即可。

 

7. 打开步骤3中的位置,此时目录下已经生成如下4个目录:

 

8. 将libcurl文件夹的内容拷贝到 开发板上。(本文将libcurl文件夹拷贝到U盘再使用开发板复制文件到/lib文件夹,因为libcurl中包含链接文件直接拷贝会导致丢失,所以需要单独复制下链接文件)。

 

 

9. 在 i.MX6UL开发板将U盘中的文件拷贝到/lib文件下:

   

10. 将curl命令加入系统环境变量:

 

在箭头处加入 :/lib/bin代码(上图已经加入),保存退出后命令行输入sync 命令之后重启开发板。

11.  重启开发板后即可输入curl使用:

 


测试用例

测试新浪官网,使用命令curl -v www.sina.com 

`-v`参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

 


参考:

Ubuntu下载地址:https://mirrors.tuna.tsinghua.edu.cn/ ubuntu-releases/12.04.5/

curl官网下载地址:https://curl.haxx.se/download.html