首先将开发板用网线与路由器LAN口相连接,可以执行动态获取 IP ,执行
udhcpc -i eth0
这个命令会将你的网关和 DNS 都配置好。
如果你使用静态 IP 来连接互联网,那么需要改动几个地方。 首先是,修改网络配置文件
nano /etc/network/interfaces
找到这一行,进行修改你想要的 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
此时你的开发板应该就是能上网了。
这一步不是必须的,纯粹是联网之后,想同步一下时间。设置授时服务器,执行
ntpdate cn.ntp.org.cn
同步硬件时间
hwclock --localtime --systohc
另外我发现了,掉电之后也是需要重新设置时间的。所以这一步确实没啥用……
编译是在主机上操作的,首先到官网 (https://curl.se/download.html)[https://curl.se/download.html] 下载源代码。注意当前所在目录是 /home/clark/下载
wget https://curl.se/download/curl-8.4.0.tar.gz
解压缩
tar zxvf curl-8.4.0.tar.gz
新建一个目录存放编译好的二进制文件
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
交叉编译
./configure --host=arm-poky-linux-gnueabi --prefix=/home/clark/下载/curl -without-ssl
make
make install
编译好的所有文件都在 curl
目录下
我们将 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
到这里,整个 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 测试没有问题了
更多回帖