文档章节

iproute2 ip 命令交叉编译完整版

vector542968
 vector542968
发布于 2015/03/11 13:42
字数 579
阅读 157
收藏 0

iproute2 ip 命令交叉编译以设置can0 bitrate---Vector

软件平台:

Linux:Ubuntu 12.04

交叉编译工具链:arm-none-linux-gnueabi-gcc 4.7.3

开发板:SBC6845 Board(AT91SAM9G45)

iproute2: iproute2-3.19.0

此文目的:

贡献此文,是对luoshi129 文章的一个补充(http://my.oschina.net/u/1425390/blog/185853),更是为了在使用ip命令出现错误时,反复调试及上网查找原因而不得的网友们的回报,希望此文能让你在使用这个命令时少走些弯路。

按常规步骤,你编译完iproute2.在使用ip命令:

ip link set can0 up type can bitrate 500000

ip link set can0 type can bitrate 500000

时,可能会出现:

(1)      ip: either "dev" is duplicate, or "type" is garbage

(2)      Illegal instruction

等错误,这说明ip 命令编译有问题。

完整步骤:

以下为完整编译步骤以供参考:

下载iproute2的最新源码 http://www.kernel.org/pub/linux/utils/net/iproute2/

解压iproute2-3.19.0.tar.gz,

(1)  进入/iproute2-3.19.0/ip 文件夹,运行:

arm-none-linux-gnueabi-gcc iplink_can.c -I/srv/smart_kernel/driver_test/testCAN/iproute2-3.19.0/include -fPIC -shared -o link_can.so  

// -I: 指定link_can.c 中include所需的头文件

// -shared 该选项指定生成动态连接库;
// -fPIC表示编译为位置独立(地址无关)的代码,不用此选项的话,编译后的代码是位置相关的,所以动态载入时,是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。

 

将生成的link_can.so 拷贝到开发板/usr/lib/ip/目录下(/usr/lib 无ip目录,需自己创建).

 

(2)修改Makefile:

33 #CC = gcc

34 CC = arm-none-linux-gnueabi-gcc

37 WFLAGS := -march=armv4t -Wall -Wstrict-prototypes -Werror -Wmissing-prototypes

 ----march=armv4t 有时必须加上,不然会报”Illegal instruction”错误;

(2)因为我们只需要iprout2的ip命令,所以修改Makefile的第42行。

42 #SUBDIRS=lib ip tc bridge misc netem genl man

43 SUBDIRS=lib ip

修改完成执行make命令,生成ip命令.

将生成的ip命令放在/usr/sbin 目录下,同时把/sbin/目录下ip命令改名为ip_buildroot

 

(3)设置can0:

ifconfig can0 down

ip link set can0 up type can bitrate 500000

 

至此ip 命令编译完成,其它can 调试工具cansend/candump 网上有很多资料,我实际调试时采用的是以下链接:

http://wenku.baidu.com/link?url=K-g2xuJn8jIQvX7S4mTRUCyNXFO58gW1acPfu_PHst9lLBjx6hpbG_16NDq8uirB781eGm0QMW-rkbMZAvQf7WHQsaRCrjDR9ssglb5wNJK

祝好运!

© 著作权归作者所有

共有 人打赏支持
vector542968
粉丝 1
博文 1
码字总数 579
作品 0
无锡
Linux TCP/IP网络小课堂:net-tools与iproute2大比较

如今许多系统管理员仍结合使用ifconfig、route、arp和netstat等命令行工具(它们统称为net-tools),管理和排查各种网络配置。这类工具原先起源于BSD TCP/IP工具箱,旨在配置老式Linux内核的...

andy1灬
2014/10/24
0
0
iproute2 对决 net-tools

via: http://xmodulo.com/2014/09/linux-tcpip-networking-net-tools-iproute2.html 作者:Dan Nanni 译者:KayGuoWhu 校对:wxy 本文由 LCTT 原创翻译,Linux中国 荣誉推出 如今很多系统管理...

kuSorZ
05/30
0
0
Linux中“新旧”TCP/IP工具的对比

如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能、解决网络故障,net-tools起源于BSD的TCP/IP工具箱,后来成为老版本L...

linuxprobe16
2016/11/03
16
0
Linux TCP/IP 网络工具:iproute2

一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。 对于那些想要转到使用iproute2的用户,有必要了解下面有关net-tools和iproute2的众多对比。 显示...

CyonDeer
2017/02/15
0
0
Linux TCP/IP网络管理工具:net-tools VS iproute2

许多系统管理员仍然使用ifconfig、route、arp、netstat 命令组合来管理和排错网络配置,这些命令有net-tools包提供,但在Arch Linux、Centos7/RHEL7等发行版里面已经使用iproute2替代了net-t...

Geekwolf
2014/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java序列化(七) - fst 序列化

java序列化(七) - fst 序列化 github https://github.com/RuedigerMoeller/fast-serialization 实践 https://gitee.com/mengzhang6/serializable-demo.git maven依赖 <!-- https://mvnrepo......

晨猫
12分钟前
2
0
智力问题汇总

南京新建地铁线路,给你2块钱,测出来需要配置多少辆车? 参考答案:根据地铁有固定时间间隔,坐一圈该线路,推算出需要多少辆。 一共50张卡片,上面写着1--50 ,50个数字,藏起来一张,打乱...

职业搬砖工程师
16分钟前
1
0
ZFS-自我恢复RAID

ZFS-自我恢复RAID 这个给了我一个简单而又强大的理由,让我立马为之折服,ZFS可以自动的检测发生的错误,而且,可以自我修复这些错误。假设有一个时刻,磁盘阵列中的数据是错误的,不管是什么...

openthings
25分钟前
2
0
从Hash到一致性Hash原理(深度好文)

要讲一致性Hash原理,先从一般性Hash讲起,其实Hash的本质就是一个长度可变的数组,那为什么Hash的时间复杂度是O(1),而其他类型的数据结构查找都是要遍历来,遍历去,即便是树,二叉树,也是要经过几...

算法之名
38分钟前
12
0
软件测试工具书籍与面试题汇总下载(持续更新)

简介 本文是https://github.com/china-testing/python-api-tesing/blob/master/books.md 的节选。 欢迎转载,转载请附带此简介,谢谢! 试题 软件测试综合面试题(高级测试)-试题.pdf 软件测试...

python测试开发人工智能安全
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部