设备树
按照手册来即可,注意Alpha版上Flexcan2节点的引脚被ecspi3复用,节点中要屏蔽掉flexcan2:
1 2 3 4 5 6 7
| &can2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flexcan2>; xceiver-supply = <®_can_3v3>; status = "disabled"; };
|
原厂设备树节点中xceiver-supply = <®_can_3v3>;
这个属性可能会导致deferred probing,让CANprobe不出来,屏蔽掉这个属性就可以,完成后的节点如下:
1 2 3 4 5 6
| &can1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flexcan1>; status = "okay"; };
|
完成后ifconfig -a
应该可以看得到CAN节点信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| / # ifconfig -a can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 NOARP MTU:16 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:206
eth0 Link encap:Ethernet HWaddr EA:36:EF:87:91:0F inet addr:192.168.1.103 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::e836:efff:fe87:910f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3294 errors:0 dropped:0 overruns:0 frame:0 TX packets:1444 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4472406 (4.2 MiB) TX bytes:259612 (253.5 KiB)
eth1 Link encap:Ethernet HWaddr C6:F2:80:26:D2:07 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
iproute库编译
经过试验,新版本的iproute确实会出现找不到诸如libelf头文件等奇怪的情况,暂未深究原因。
编译时可能报错:
错误: 对‘setns’的静态声明出现在非静态声明之后
方法是打开iproute根目录/include/namespace.h文件,注释掉下面几行:
1 2 3 4 5 6 7 8 9 10 11
| #ifndef HAVE_SETNS static inline int setns(int fd, int nstype) { #ifdef __NR_setns return syscall(__NR_setns, fd, nstype); #else errno = ENOSYS; return -1; #endif } #endif
|
然后重新编译