向开发板上移植ip工具:将ip工具移植到开发板系统中

一. 简介

前面一篇文章对 ip工具源码进行了交叉编译,生成了ip工具。文章如下:

向开发板上移植ip工具:交叉编译 ip工具-CSDN博客

本文对生成的 ip工具进行移植,即移植到开发板系统中,并确定是否可用。

二. 向开发板上移植ip工具:将ip工具移植到开发板系统中

1. 将交叉编译得到的 ip 拷贝到开发板中

首先,打开ubuntu系统,终端进入 iproute2-4.4.0工程目录的 /ip目录下, 将交叉编译到的 ip 命令拷贝到开发板中。
注意:这里先 不要替换开发板根文件系统中原有的 ip 命令!切记!切记!
先拷贝到开发板根文件系统的其他目录里面。比如,我这里就拷贝到 /lib/modules/4.1.15 这个目录里面,命令如下:

复制代码
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/iproute2-4.4.0/ip$ sudo cp ip /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f

开发板上电后,进入 系统目录 /lib/modules/4.1.15 下,在开发板上先执行一下新的 ip 命令,查看一下版本号,命令如下:

复制代码
./ip -V  //执行新的 ip 命令,查看版本号

可以看到如下信息:

可以看出,新编译生成的 ip工具是有版本号的,版本号为:

复制代码
ip utility, iproute2-ss160111

2. 将开发板上新的 ip 命令替换原来的ip命令

注意,此步骤在开发板中执行!
开发板根文件系统中原来的 ip 命令是 busybox 自带的,存 放在 /sbin 目录下。接下来,我们使用新的 ip 命令替换原来的,在开发板中执行如下命令:

复制代码
/lib/modules/4.1.15 # cp ip /sbin/ip -f
/lib/modules/4.1.15 # 

拷贝完成以后将 /lib/modules/4.1.15/ 目录下的 ip 命令删除掉:

重启开发板,查看根文件系统 是否可以正常启动! 如果正常启动的话,输入如下命令查看 ip 命令版本号:

复制代码
ip -V  //查看 ip 命令版本号

执行后如下所示:

至此, iproute2 中的 ip 命令就已经移植好了, CAN通信 测试的话,我们会使用 ip 命令来设置 can0 网卡的相关信息。

3**. 替换 ip 命令以后系统启动失败怎么办?**

如果在替换 ip 命令的时候操作失误可能会导致开发板系统启动失败,如下图 所示:


可以看出,系统启动失败,提示" Object "it" is unknown, try "ip help". ",这是因为 ip 命令替换错误导致的!
所以说一定要严格按照本节教程讲解的步骤替换 ip 命令。遇到上图 中的错误以后,解决方法就是把以前的 ip 命令替换回来就行了。 这就是前面强烈 建议大家对根文件系统做个备份的原因!!!
最简单的方法就是用备份的根文件系统重新做一遍!

相关推荐
许彰午21 分钟前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
阳光九叶草LXGZXJ36 分钟前
达梦数据库-报错-16-MERGE INTO提示:无效的列名[XX]
linux·运维·数据库·sql·学习
CarIise1 小时前
Java实训阶段查漏补缺复习笔记2
java·linux·算法
可乐ea1 小时前
多模型编排的三层:框架、模型路由与提供商路由
前端·网络·人工智能·ai智能体·多智能体协作·多模型编排·大模型路由
万联WANFLOW1 小时前
全球广告网络直通美国,TikTok抢占旺季全域流量新高地
网络·业界资讯
HackTwoHub1 小时前
Clown SRC skill第二代2.x最新版企业安全研究 Skill|证据优先的 SRC 与白盒审计工作流正式更新
网络·安全·web安全·网络安全·系统安全·密码学·安全架构
一号弯2 小时前
Hyperv的LINUX虚拟机扩容
linux·运维·服务器
2601_962177302 小时前
2026年AI API Gateway怎么选?我整理了6种方案的费用、稳定性和适用场景
网络·人工智能·深度学习·gateway
缘友一世2 小时前
银河护卫队在steam(linux Proton GE-Proton10-34)上启动无窗口问题修复
linux·ubuntu·steam·proton
wunaiqiezixin2 小时前
MIT 6.S081 util 实验篇(lab1):primes (moderate/hard)
linux·unix·os·xv6·mit6.s081