飞凌嵌入式
直播中

淡化浅出

7年用户 90经验值
擅长:嵌入式技术
私信 关注
[技术]

【ELF 1开发板试用】5.移植 curl 工具进行网络调试

【ELF 1开发板试用】5.移植 curl 工具进行网络调试

连接互联网

动态

首先将开发板用网线与路由器LAN口相连接,可以执行动态获取 IP ,执行

udhcpc -i eth0

这个命令会将你的网关和 DNS 都配置好。

静态

如果你使用静态 IP 来连接互联网,那么需要改动几个地方。 首先是,修改网络配置文件

nano /etc/network/interfaces

oNq9xq.png 找到这一行,进行修改你想要的 IP

iface eth0 inet static
        address 192.168.124.200
        netmask 255.255.255.0
        gateway 192.168.124.1
        hwaddress ether aa:cc:dd:ee:ff:dd

接着还需要修改 DNS ,执行

echo "nameserver 8.8.8.8" > /etc/resolv.conf

这样就保存好了。但是每次掉电重启,配置都会失效,因此需要将这一行加入到自启动代码中,编辑

nano /etc/rc.local

oNqThc.png

此时你的开发板应该就是能上网了。

修改系统时间

这一步不是必须的,纯粹是联网之后,想同步一下时间。设置授时服务器,执行

ntpdate cn.ntp.org.cn

同步硬件时间

hwclock --localtime --systohc

另外我发现了,掉电之后也是需要重新设置时间的。所以这一步确实没啥用……

移植 CURL

编译

编译是在主机上操作的,首先到官网 (https://curl.se/download.html)[https://curl.se/download.html] 下载源代码。注意当前所在目录是 /home/clark/下载 oNqOWr.png

wget https://curl.se/download/curl-8.4.0.tar.gz

移植

解压缩

tar zxvf curl-8.4.0.tar.gz

oNqM4m.png

新建一个目录存放编译好的二进制文件

mkdir curl

开始编译,切换目录

cd curl-8.4.0

配置环境变量

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

查看环境变量是否设置成功

echo $CROSS_COMPILE

oNqQGo.png

交叉编译

./configure --host=arm-poky-linux-gnueabi --prefix=/home/clark/下载/curl -without-ssl

oNq2wh.png

make

oNqcgT.png

make install

oNqva1.png

编译好的所有文件都在 curl 目录下 oNqwHK.png

我们将 curl/bin 目录下的文件复制到开发板 usr/bin 目录下,将 curl/lib 目录下的文件复制到开发板 usr/lib 目录下。

笔者采用的 TF 卡拷贝的方式,提示了文件类型不支持链接,可以直接跳过。

复制到指定目录后大概是这样

root@ELF1:~# ls -al /usr/bin | grep curl
-rwxr-x---  1 root root   763688 Mar 15 18:20 curl
-rwxr-x---  1 root root     6534 Mar 15 18:20 curl-config
root@ELF1:~# ls -al /usr/lib | grep curl
-rwxr-x---  1 root root  5862804 Mar 15 18:22 libcurl.a
-rwxr-x---  1 root root      955 Mar 15 18:22 libcurl.la
lrwxrwxrwx  1 root root       16 Jan 14  1970 libcurl.so.4 -> libcurl.so.4.4.0
-rwxrwxr-x  1 root root   274440 Sep 25  2023 libcurl.so.4.4.0
-rwxr-x---  1 root root  3115432 Mar 15 18:22 libcurl.so.4.8.0

这里我们需要修改 libcurl.so.4 的链接到最新版

cd /usr/lib
rm libcurl.so.4 
ln -s libcurl.so.4.8.0 libcurl.so.4

oNq0Db.png

到这里,整个 curl 就移植完毕了,赶紧试试

curl --help
Usage: curl [options...] <url>
 -d, --data <data>          HTTP POST data
 -f, --fail                 Fail fast with no output on HTTP errors
 -h, --help <category>      Get help for commands
 -i, --include              Include protocol response headers in the output
 -o, --output <file>        Write to file instead of stdout
 -O, --remote-name          Write output to a file named as the remote file
 -s, --silent               Silent mode
 -T, --upload-file <file>   Transfer local FILE to destination
 -u, --user <user:password> Server user and password
 -A, --user-agent <name>    Send User-Agent <name> to server
 -v, --verbose              Make the operation more talkative
 -V, --version              Show version number and quit

This is not the full help, this menu is stripped into categories.
Use "--help category" to get an overview of all categories.
For all options use the manual or "--help all".
curl baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

OK 测试没有问题了

更多回帖

发帖
×
20
完善资料,
赚取积分