peter 发表于 2018-3-3 12:10:02

tinkerboard 操作系统烧写与初步配置

由于开发板上面没有EMMC或者Nand flash等大容量存储器,因此要使用tinker board,首先要准备一张TF卡,推荐容量为16GB,类型为class 10的。目前开发板官方支持的系统包括Android与Debian。这里烧写的镜像为基于Debian 的Tinker OS。首先要到官网下载img格式的镜像,下载的镜像名为20171115-tinker-board-linaro-stretch-alip-v2.0.4.img。下载完成之后使用镜像烧写工具Win32 Disk Imager进行烧写。         图3.1 烧写系统烧写完成之后,将SD卡放入tinker board的SD卡槽中,此时有两种方法可以进行下一步操作1、 使用鼠标+键盘+外置HDMI显示器,这种方法可以将tinker board作为普通PC来使用。2、 使用网线+路由器,这种方法适用于没有外置HDMI显示器的情况。使用SSH命令进行交互,后续还可以加上远程桌面来访问桌面环境。这里笔者选择后一种方法。tinker board接上路由器之后可以在路由器的设备界面找到tinker board,然后打开putty,输入IP和端口(固定为22)进行登陆,登陆的初始用户名和密码都为“linaro”,登陆完成后如下图所示                  图3.2 SSH登陆登陆之后可以开启VNC服务以便后续可以访问桌面环境。执行以下命令来安装VNC服务$ sudo apt-get update$ sudo apt-get install x11vnc在安装完VNC之后,可以执行命令$ vncserver :1来启动VNC服务,初次使用VNC需要设置一个密码。PC上面安装一个VNC Viewer即可访问其桌面环境,如下图。性能测试在介绍完硬件配置并安装好操作系统之后,可以进行大家比较关心的性能测试,毕竟大家选择一款开发板的时候还是比较关心性能的。性能测试项目包括CPU运算速度、内存读写速度与flash读取速度,对应的工具都为sysbench。参照的开发板为Banana PI m3。之所以选择这样对比,是因为tinker board与Banana PI m3的价格差不多,都为440元左右。两款开发板具体的相关参数对比如下:
此处性能测试都在Debian系统下进行。首先运行lscpu命令,确认所有核心都开启并都被操作系统识别。
      
   图4.1 tinker board CPU信息
   
   图4.2 Banana PI m3 CPU信息
然后分别安装sysbench,命令为$ sudo apt-get install sysbench。先来测试以下CPU的性能,执行命令tinker board:$ sysbench --test=cpu --num-threads=4 runBanana PI m3:$ sysbench --test=cpu --num-threads=8 run来测试。这里由于前者为4核,后者为8核,因此thread参数分别为4与8。测试结果如下图,这里是计算1到10000中最大的素数,时间越短越好,tinker board使用23.75秒,Banana PI m3使用29.17秒。图4.3 tinker board CPU性能测试图4.4 Banana PI m3 CPU性能测试然后进行内存测试,执行命令tinker board:$ sysbench --test=memory --memory-block-size=2M --memory-total-size=20G --num-threads=4 runBanana PI m3:$ sysbench --test=memory --memory-block-size=2M --memory-total-size=20G --num-threads=8 run这里是测试读写20G空间的时间。tinker board花费0.0028s,Banana PI m3花费0.0018s。      图4.5 tinker board 内存测试   
   图4.6 Banana PI m3 内存测试
最后来进行文件存取测试。这里由于tinker board没有EMMC,因此tinker board的flash为SD卡,Banana PI m3的flash为EMMC。先测试写入,执行命令tinker board:$ sysbench --test=fileio --file-test-mode=rndwr --file-total-size=32MB --max-requests=500 --num-threads=4 runBanana PI m3:$ sysbench --test=fileio --file-test-mode=rndwr --file-total-size=32MB --max-requests=500 --num-threads=8 run
这里测试写入一个32MB的文件500次,tinker board花费32.31s,Banana PI m3花费1.72s。
   
   图4.7 tinker board 文件写入测试
      
       图4.8 Banana PI m3 文件写入测试
再测试读取,执行命令tinker board:$ sysbench --test=fileio --file-test-mode=rndrd --file-total-size=32MB --max-requests=5000 --num-threads=4 runBanana PI m3:$ sysbench --test=fileio --file-test-mode=rndrd --file-total-size=32MB --max-requests=5000 --num-threads=8 run这里测试读取一个32MB的文件5000次,tinker board花费0.0254s,Banana PI m3花费0.0210s。图4.9 tinker board 文件读取测试图4.10 Banana PI m3 文件读取测试由上面的测试看出,tinker board的CPU略优于 Banana PI M3,内存与文件读取速度相差不大,但是由于没有EMMC,因此在文件写入速度方面不如Banana PI M3。可见,没有EMMC确实是tinker board的一大缺憾,ASUS后续推出的升级版tinker board S加上了EMMC,弥补了这一缺憾。简单开发tinker board自带了40pin的扩展接口,而作为一款开发板,tinker board与普通PC最大的区别就是可以在这个40pin的扩展接口进行相关开发。ASUS官方提供了一系列API可以调用。因此开发的方法也是先编写程序,然后在开发板上面编译运行。首先下载GPIO相关库。执行命令$ sudo apt-get install git$ git clone http://github.com/TinkerBoard/gpio_lib_c.git下载完成之后进行安装,执行命令$ cd gpio_lib_c/$ sudo ./build完成之后执行$ gpio -v可以看到GPIO库的相关信息,如下图。图5.1 GPIO库相关信息下面来演示一个串口打印的程序。代码如下:#include

#include

#include

#include

#include

int main ()

{

int fd ;

if ((fd = serialOpen ("/dev/ttyS1", 115200)) < 0)

{

fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;

return 1 ;

}

for (;;)

{

serialPrintf (fd,"Hello \r\n ") ;

serialPrintf (fd,"this is tinker board \r\n") ;

delay (100) ;

}

}图5.2 测试用的程序将完成的源文件保存为serialprint.c,然后运行下面这个命令进行编译$ arm-linux-gnueabihf-gcc serialprint.c -o serialprint -lwiringPi这里编译选项需要加上-lwiringPi,意思就是使用wiringPi库。生成的文件为serialprint,这个可执行文件。如下图图5.3 编译程序然后将对应串口ttyS1通过串口线连接PC,由GPIO定义表可以看到ttyS1对应的引脚为6->GND,8->UART1TX,10->UART1RX。如下图。图5.4 连接对应接口然后执行命令$./serialprint,PC端使用串口调试软件可以看到如下打印内容。到这里就完成了一个简单项目的开发。总结本次评测介绍了来自ASUS的tinker board。与树莓派一样,这款开发板重点面向对象仍然是创客和Linux学习者,在性能上,tinker board可以与目前市面上的高性能开发板一争高下,当然价格也比较高,可以视为是树莓派系列的升级版。但是,与树莓派一样,这款开发板的底层不开源,取而代之的是,ASUS提供了一系列封装好的库与API供用户开发。综上所述,这款tinker board可以被认为是一款不错的Linux开发板。
页: [1]
查看完整版本: tinkerboard 操作系统烧写与初步配置