0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Tiny4412下CURL安装与使用

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2023-05-31 17:20 次阅读

CURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称CURL为下载工具。CURL还包含了用于程序开发的libcurl。

移植环境:

Linux版本:Linux3.5

编译器:arm-linux-gcc

开发板环境:tiny4412-Cortex-A9

CURL版本:7.8.0

1.编译与安装 libopenssl 库

要移植CURL库,首先则需要移植libopenssl 库。

OpenSSL 是一个安全套接字层密码库, 囊括主要的密码算法、 常用的密钥和证书封装管理功能及 SSL 协议, 并提供丰富的应用程序供测试或其它目 的使用。

OpenSSL 被曝出现严重安全漏洞后, 发现多数通过 SSL 协议加密的网站使用名为OpenSSL 的开源软件包。 OpenSSL 漏洞不仅影响以 https 开头的网站, 黑客还可利用此漏洞直接对个人电脑发起“心脏出血”( Heartbleed) 攻击。 据分析, Windows 上有大量软件使用了存在漏洞的 OpenSSL 代码库, 可能被黑客攻击抓取用户电脑上的内存数据。
下载链接: http://distfiles.macports.org/openssl/

poYBAGR3DRqAUZkBAAWEeFlQkf0052.png

(1) 将下载的 openssl-1.0.2e.tar.gz 压缩包拷贝至虚拟机解压。

[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/openssl-1.0.2s.tar.gz

(2) 配置编译安装路径

[wbyq@wbyq openssl-1.0.2s]$ ./config shared no-asm --prefix=$PWD/tmp
--prefix=$PWD/tmp 表示编译安装的路径为当前目 录下的 tmp

(3) 修改顶层 Makefile 文件

[wbyq@wbyq openssl-1.0.2s]$ gedit Makefile +62
CC= arm-linux-gcc
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
RC= windres
NM= arm-linux-nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG= arm-linux-gcc
LIBDIR=lib
poYBAGR3DxWAfZ7YAAOWK7nl9Wg674.png

(4)编译 make

[wbyq@wbyq openssl-1.0.2s]$ make
making all in crypto...
make[1]: 进入目 录“ /home/wbyq/src_pack/openssl-1.0.2s/crypto”
/usr/bin/perl ../util/mkbuildinf.pl "arm-linux-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC
-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3
-Wall" "linux-x86_64" >buildinf.h
arm-linux-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3 -Wall -c -o cversion.o cversion.c
cc1: error: unrecognized command line option "-m64"
< 内置 >: recipe for target 'cversion.o' failed
make[1]: *** [cversion.o] Error 1
make[1]: 离开目 录“ /home/wbyq/src_pack/openssl-1.0.2s/crypto”
Makefile:287: recipe for target 'build_crypto' failed
make: *** [build_crypto] Error 1

编译报错解决:

poYBAGR3D3OAeBniAAQSp_151D0283.png
[wbyq@wbyq openssl-1.0.2s]$ gedit Makefile
pYYBAGR3D5CAHwsaAAPlSkUnr34367.pngpYYBAGR3D6GAc3XpAALrzGJIJDY983.png

(5)重新编译与安装 make && make install

[wbyq@wbyq openssl-1.0.2s]$ make && make install

(6) 编译生成文件

[wbyq@wbyq openssl-1.0.2s]$ cd tmp/
[wbyq@wbyq tmp]$ ls
bin include lib ssl

(7)拷贝 lib 下的 so 文件到开发板 lib 目 录下

[wbyq@wbyq tmp]$ cp ./lib/*.so* /home/wbyq/src_pack/rootfs/lib/ -rfdv

2.安装 curl 工具

下载地址: https://curl.se/

pYYBAGR3ECOAH6DzAAbQwhKrUkw627.pngpoYBAGR3EDCAI4CyAAQzWzAUjWk368.png

(1) 将下载的 curl-7.80.0.tar.gz 压缩包拷贝至虚拟机解压

[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/curl-7.80.0.tar.gz

(2) 配置编译安装路径

[wbyq@wbyq curl-7.80.0]$ CPPFLAGS="-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/
-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/include"
LDFLAGS="-L/home/wbyq/src_pack/openssl-1.0.2s/tmp/lib" LIBS="-ldl" ./configure
--host=arm-linux-gcc CC=arm-linux-gcc CXX=arm-linux-g++ --with-ssl --enable-shared
--enable-static --disable-dict --disable-ftp --disable-imap --disable-ldap --disable-ldaps
--disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-tftp
--disable-zlib --without-ca-bundle --without-gnutls --without-libidn --without-librtmp
--without-libssh2 --without-nss --without-zlib --prefix=$PWD/_install

指定 openssl-1.0.2s 头文件路径:
CPPFLAGS="-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/ -I/home/wbyq/src_pack/openssl-1.0.2s/tmp/include"
指定 openssl-1.0.2s 库路径:
LDFLAGS="-L/home/wbyq/src_pack/openssl-1.0.2s/tmp/lib"

(3)编译与安装

[wbyq@wbyq curl-7.80.0]$ make && make install

(4)拷贝相关文件到开发板目录下

[wbyq@wbyq curl-7.80.0]$ cd _install/
[wbyq@wbyq _install]$ ls
bin include lib share
[wbyq@wbyq _install]$ cp ./bin/curl /home/wbyq/src_pack/rootfs/bin/
[wbyq@wbyq _install]$ cp lib/*.so* /home/wbyq/src_pack/rootfs/lib -rfdv

(5)开发板下测试 curl 命令

[root@wbyq mt7601u]# curl api.seniverse.com/v3/weather/now.json?key=SwD4-ybQxhe
dD1z7U'&'location=nanchang'&'language=zh-Hans'&'unit=c
{"results":[{"location":{"id":"WT47HJP3HEMP","name":" 南 昌 ","country":"CN","path":" 南 昌 , 南
昌 , 江 西 , 中 国 ","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":" 多 云
","code":"4","temperature":"10"},"last_update":"2021-11-22T09:11:57+08:00"}]}
[root@wbyq
mt7601u]


审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Curl
    +关注

    关注

    0

    文章

    17

    浏览量

    8229
  • OpenSSL
    +关注

    关注

    0

    文章

    21

    浏览量

    8757
收藏 人收藏

    评论

    相关推荐

    【代码】tiny4412裸机Demo

    ` 本帖最后由 zsm_linux 于 2014-8-15 10:31 编辑 我想肯定很多人需要,下载自CSDN, 为数不多的4412资料资料包含: 需要资料联系QQ 1402284892`
    发表于 08-15 10:05

    免费试用“Tiny4412开发板——友善之臂Cortex-A9”

    本帖最后由 L490351555 于 2015-8-19 08:38 编辑 大家好,这两天咱们的论坛搞了一个开发板投票试用活动。现在有一个投票项就是“Tiny4412开发板——友善之臂
    发表于 08-18 19:09

    500w像素CMOS高清摄像头模块,支持NanoPi2,Tiny4412

    =a230r.1.14.318.LGJVqB&id=525273480932&ns=1&abbucket=15#detail500w像素CMOS高清摄像头模块,支持NanoPi2,Tiny4412
    发表于 12-18 18:18

    【Nanopi2试用体验】Matrix的安装与尝试

    。nanopi分支用于支持NanoPi;nanopi2分支用于支持NanoPi 2;tiny4412分支用于支持Tiny4412;raspberrypi分支用于支持RaspberryPi
    发表于 12-30 17:00

    友善之臂Ubuntu使用手册

    友善之臂Ubuntu使用手册本手册介绍如何在友善之臂开发板 Tiny4412 以及 NanoPC-T1 上安装和使用 Ubuntu 系统。
    发表于 12-18 10:42

    4412烧Android时不能启动,停在ANDROID界面

    我也大家玩高大上的4412了,跟着最新光盘提供的"tiny4412用户烧写"手册,刷ANDROID时,烧写可以成功,但就是启动不了,一直停在ANDROID图标界面。串口也一直打印
    发表于 05-13 07:45

    请问在4412的USB驱动程序里该如何修改?

    tiny4412遇到一个问题,4412作为USB设备与作为主机的PC连接,物理连接是USB线,在4412上需要把USB上的特殊数据解析出来,当做并口数据处理。请问在4412的USB驱
    发表于 05-17 00:12

    Tiny4412-Uboot启动后无法加载uImage

    好吧。。在这里先祈求,有哪位大大,或者老师,能关注。个人一度试图移植tiny4412的uboot和kernel还有根文件系统。。。。。然后顺带学习一设备树的用法这个是uboot配置ls/dev
    发表于 08-30 05:45

    TINY4412 UART程序设计得相关资料分享

    嵌入式实验: TINY4412 UART 程序设计一、实验目的熟悉UART通信相关的寄存器的功能和设置方法,设置引脚复用,选择UART接收和发送对应的引脚用于UART通信,数据流格式设置,设置
    发表于 11-09 06:11

    如何实现Tiny4412通过NRF24L01 2.4G无线模块发送数据呢

    LinuxSPI设备驱动该怎样去编写呢?如何实现Tiny4412通过NRF24L01 2.4G无线模块发送数据呢?
    发表于 12-17 06:36

    iny4412嵌入式Linux操作系统启动流程是怎样的

    本次介绍一友善之臂tiny4412嵌入式Linux操作系统分析首先,可以从官方提供的用户手册中得到这样一张图,它简单表达了裸机烧写启动系统的流程,不过这张图中缺少对BL2的描述,所以我就自己手绘了
    发表于 12-20 07:50

    友善之臂Tiny4412核心板介绍

    Tiny4412是一款高性能的四核Cortex-A9核心板,由广州友善之臂设计、生产和发行销售。
    的头像 发表于 11-05 17:40 1.2w次阅读
    友善之臂<b class='flag-5'>Tiny4412</b>核心板介绍

    嵌入式实验: TINY4412 UART 程序设计

    嵌入式实验: TINY4412 UART 程序设计一、实验目的熟悉UART通信相关的寄存器的功能和设置方法,设置引脚复用,选择UART接收和发送对应的引脚用于UART通信,数据流格式设置,设置
    发表于 11-03 20:06 13次下载
    嵌入式实验: <b class='flag-5'>TINY4412</b> UART 程序设计

    Linux系统如何安装curl

    `curl`是用于在本地计算机与远程服务器之间传输数据的命令行工具。使用curl时您可以使用HTTP,HTTPS, SCP , SFTP和FTP等协议下载或上传数据。
    的头像 发表于 12-06 16:53 1.7w次阅读

    如何使用 cURL 测试 HTTP 协议

    。以下是如何使用cURL测试HTTP协议的详细步骤和示例。 1. 安装cURL 在大多数Linux发行版和MacOS中,cURL已经预装。如果你使用的是Windows,可以从
    的头像 发表于 12-30 09:26 317次阅读