- v300使用交叉编译器出现错误, 出现 error while loading shared libraries 错误,并不是交叉编译找不到库文件而是PC使用交叉编译器时找不到库文件,而是 可执行文件(交叉编译器)运行时找不到库文件。
在 /etc/ld.so.conf 文件加入库路径。
sudo cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/work/v300/code/opt/arm-anykav200-crosstool/usr/lib
然后执行 sudo /sbin/ldconfig -v 将库路径缓存到 /etc/ld.so.cache 以供使用。
2.1 vmlinux 是可引导的可压缩的内核镜像,实质是elf文件。除二进制外,还包含可执行文件的某些信息如,符号表。
2.2 image 是经过objcopy处理过的只包含二进制数据的内核代码,已经不是elf文件了,但还未经压缩。
【 attention】objcopy
GNU使用工具程序objcopy作用是拷贝一个目标文件的内容到另一个目标文件中,也就是说,可以将一种格式的目标文件转换成另一种格式的目标文件. 通过使用binary作为输出目标(-o binary),可产生一个原始的二进制文件,实质上是将所有的符号和重定位信息都将被抛弃,只剩下二进制数据.
2.3 zImage 是将vmlinux加上解压代码经过gzip压缩而成,这种格式多存放于flash中,make zImage 生成
2.4 uImage 是uboot专用的镜像,实在zImage加上0x40大小的头数据,说明了该镜像文件的类型、加载 位置、生成时间、大小等信息,
make uImage 生成 uImage
booting linux ... /*表示正在将内核从NAND拷贝到内存中*/
unpressed... /*表示正在解压内核*/
- 内核遇到 Oops
利用 arm-anykav200-linux-uclibcgnueabi-objdump -D -m arm vmlinux > vmlinux.dis 反汇编生成文件查看内核符号地址,对比dump,确定出错的位置。
LR指针为上一个函数指针地址
PC指针即当前程序运行点的地址
Backstrace 函数执行的回溯关系
- 使用iperf测试带宽,工作原理是通过客户端发送网络包传输到服务器端。
下载源码,交叉编译。
在v300上运行
./iperf -c 129.1.220.10 -p 12345 -i 1 -t 100
在pc上运行
iperf -s -p12345 -i 1 -M
测试结果 pc为tcp服务器。 ,v300为客户端。
[ 3] 95.0-96.0 sec 640 KBytes 5.24 Mbits/sec
[ 3] 96.0-97.0 sec 640 KBytes 5.24 Mbits/sec
[ 3] 97.0-98.0 sec 640 KBytes 5.24 Mbits/sec
[ 3] 98.0-99.0 sec 640 KBytes 5.24 Mbits/sec
[ 3] 99.0-100.0 sec 640 KBytes 5.24 Mbits/sec
[ 3] 0.0-100.1 sec 63.0 MBytes 5.28 Mbits/sec
[root@anyka /tmp]$
pc:
[ 5] 98.0-99.0 sec 639 KBytes 5.24 Mbits/sec
[ 5] 99.0-100.0 sec 636 KBytes 5.21 Mbits/sec
[ 5] 0.0-100.3 sec 63.0 MBytes 5.27 Mbits/sec
测试结果 v300tcp服务器。 pc为客户端
[ 4] 95.0-96.0 sec 283 KBytes 2.32 Mbits/sec
[ 4] 96.0-97.0 sec 440 KBytes 3.60 Mbits/sec
[ 4] 97.0-98.0 sec 427 KBytes 3.50 Mbits/sec
[ 4] 98.0-99.0 sec 441 KBytes 3.61 Mbits/sec
[ 4] 99.0-100.0 sec 437 KBytes 3.58 Mbits/sec
[ 4] 0.0-100.6 sec 43.3 MBytes 3.60 Mbits/sec
^C[root@anyka /tmp]$
pc:
[ 3] 97.0-98.0 sec 384 KBytes 3.15 Mbits/sec
[ 3] 98.0-99.0 sec 512 KBytes 4.19 Mbits/sec
[ 3] 99.0-100.0 sec 384 KBytes 3.15 Mbits/sec
[ 3] 0.0-100.5 sec 43.2 MBytes 3.61 Mbits/sec
book@book-virtual-machine:~$
测试结果 v300为udp服务器 , pc为客户端
book@book-virtual-machine:~$ sudo iperf -c 129.1.220.5 -u -i 1 -t 10 -b 10M
------------------------------------------------------------
Client connecting to 129.1.220.5, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 129.1.220.10 port 57819 connected with 129.1.220.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 487 KBytes 3.99 Mbits/sec
[ 3] 1.0- 2.0 sec 514 KBytes 4.21 Mbits/sec
[ 3] 2.0- 3.0 sec 445 KBytes 3.65 Mbits/sec
[ 3] 3.0- 4.0 sec 492 KBytes 4.03 Mbits/sec
[ 3] 4.0- 5.0 sec 462 KBytes 3.79 Mbits/sec
[ 3] 5.0- 6.0 sec 438 KBytes 3.59 Mbits/sec
[ 3] 6.0- 7.0 sec 458 KBytes 3.75 Mbits/sec
[ 3] 7.0- 8.0 sec 495 KBytes 4.06 Mbits/sec
[ 3] 8.0- 9.0 sec 457 KBytes 3.74 Mbits/sec
[ 3] 9.0-10.0 sec 479 KBytes 3.93 Mbits/sec
[ 3] 0.0-10.1 sec 4.62 MBytes 3.83 Mbits/sec
[ 3] Sent 3294 datagrams
[ 3] Server Report:
[ 3] 0.0-10.2 sec 4.62 MBytes 3.80 Mbits/sec 11.189 ms 0/ 3293 (0%)
[ 3] 0.0-10.2 sec 1 datagrams received out-of-order
v300:
[root@anyka /tmp]$ ./iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 152 KByte (default)
------------------------------------------------------------
[ 3] local 129.1.220.5 port 5001 connected with 129.1.220.10 port 36286
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 9.3 sec 1.25 MBytes 1.13 Mbits/sec 2.186 ms 0/ 893 (0%)
[ 4] local 129.1.220.5 port 5001 connected with 129.1.220.10 port 34532
[ 4] 0.0- 9.8 sec 1.19 MBytes 1.02 Mbits/sec 2.550 ms 0/ 852 (0%)
[ 3] local 129.1.220.5 port 5001 connected with 129.1.220.10 port 57819
[ 3] 0.0-10.2 sec 4.62 MBytes 3.80 Mbits/sec 11.190 ms 0/ 3293 (0%)
[ 3] 0.0-10.2 sec 1 datagrams received out-of-order
v300当客户端给pc发数据
[root@anyka /tmp]$ ./iperf -u -i 1 -c 129.1.220.10 -t 10 -b 10M
------------------------------------------------------------
Client connecting to 129.1.220.10, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 152 KByte (default)
------------------------------------------------------------
[ 3] local 129.1.220.5 port 51295 connected with 129.1.220.10 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 797 KBytes 6.53 Mbits/sec
[ 3] 1.0- 2.0 sec 702 KBytes 5.75 Mbits/sec
[ 3] 2.0- 3.0 sec 716 KBytes 5.87 Mbits/sec
[ 3] 3.0- 4.0 sec 672 KBytes 5.50 Mbits/sec
[ 3] 4.0- 5.0 sec 742 KBytes 6.08 Mbits/sec
[ 3] 5.0- 6.0 sec 724 KBytes 5.93 Mbits/sec
[ 3] 6.0- 7.0 sec 692 KBytes 5.67 Mbits/sec
[ 3] 7.0- 8.0 sec 724 KBytes 5.93 Mbits/sec
[ 3] 8.0- 9.0 sec 676 KBytes 5.54 Mbits/sec
[ 3] 9.0-10.0 sec 712 KBytes 5.83 Mbits/sec
[ 3] 0.0-10.0 sec 6.99 MBytes 5.86 Mbits/sec
[ 3] Sent 4986 datagrams
[ 3] Server Report:
[ 3] 0.0-10.1 sec 6.99 MBytes 5.82 Mbits/sec 6.151 ms 0/ 4985 (0%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
[root@anyka /tmp]$
[root@anyka /tmp]$
pc:
book@book-virtual-machine:~$ iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 129.1.220.10 port 5001 connected with 129.1.220.5 port 35228
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 9.9 sec 1.25 MBytes 1.06 Mbits/sec 0.142 ms 0/ 892 (0%)
[ 3] 0.0- 9.9 sec 1 datagrams received out-of-order
[ 4] local 129.1.220.10 port 5001 connected with 129.1.220.5 port 51295
[ 4] 0.0-10.1 sec 6.99 MBytes 5.82 Mbits/sec 6.151 ms 0/ 4985 (0%)
[ 4] 0.0-10.1 sec 1 datagrams received out-of-order