一. 简介
前面一篇文章对 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 命令替换回来就行了。 这就是前面强烈 建议大家对根文件系统做个备份的原因!!!
最简单的方法就是用备份的根文件系统重新做一遍!