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

[复制链接]
peter 发表于 2018-3-3 12:10:02 | 显示全部楼层 |阅读模式

由于开发板上面没有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进行烧写。

1.jpg

           图3.1 烧写系统

烧写完成之后,将SD卡放入tinker board的SD卡槽中,此时有两种方法可以进行下一步操作

1、 使用鼠标+键盘+外置HDMI显示器,这种方法可以将tinker board作为普通PC来使用。

2、 使用网线+路由器,这种方法适用于没有外置HDMI显示器的情况。使用SSH命令进行交互,后续还可以加上远程桌面来访问桌面环境。

这里笔者选择后一种方法。tinker board接上路由器之后可以在路由器的设备界面找到tinker board,然后打开putty,输入IP和端口(固定为22)进行登陆,登陆的初始用户名和密码都为“linaro”,登陆完成后如下图所示

909df450f807d985ccf4346dea752bd0.jpg

                  图3.2 SSH登陆

登陆之后可以开启VNC服务以便后续可以访问桌面环境。执行以下命令来安装VNC服务

$ sudo apt-get update

$ sudo apt-get install x11vnc

在安装完VNC之后,可以执行命令

$ vncserver :1

来启动VNC服务,初次使用VNC需要设置一个密码。PC上面安装一个VNC Viewer即可访问其桌面环境,如下图。

3.jpg

性能测试

在介绍完硬件配置并安装好操作系统之后,可以进行大家比较关心的性能测试,毕竟大家选择一款开发板的时候还是比较关心性能的。

性能测试项目包括CPU运算速度、内存读写速度与flash读取速度,对应的工具都为sysbench。参照的开发板为Banana PI m3。之所以选择这样对比,是因为tinker board与Banana PI m3的价格差不多,都为440元左右。两款开发板具体的相关参数对比如下:

4.png


此处性能测试都在Debian系统下进行。首先运行lscpu命令,确认所有核心都开启并都被操作系统识别。
       5.jpg

     图4.1 tinker board CPU信息

      6.jpg

     图4.2 Banana PI m3 CPU信息

然后分别安装sysbench,命令为$ sudo apt-get install sysbench。先来测试以下CPU的性能,执行命令

tinker board:$ sysbench --test=cpu --num-threads=4 run

Banana 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秒。

7.jpg

图4.3 tinker board CPU性能测试

8.jpg

图4.4 Banana PI m3 CPU性能测试

然后进行内存测试,执行命令

tinker board:$ sysbench --test=memory --memory-block-size=2M --memory-total-size=20G --num-threads=4 run

Banana 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。

9.jpg

      图4.5 tinker board 内存测试
      10.jpg

     图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 run

Banana 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。

      11.jpg
     图4.7 tinker board 文件写入测试

       12.jpg
       图4.8 Banana PI m3 文件写入测试

再测试读取,执行命令

tinker board:$ sysbench --test=fileio --file-test-mode=rndrd --file-total-size=32MB --max-requests=5000 --num-threads=4 run

Banana 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。

13.jpg

图4.9 tinker board 文件读取测试

14.jpg

图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库的相关信息,如下图。

15.jpg

图5.1 GPIO库相关信息

下面来演示一个串口打印的程序。代码如下:

  1. #include

  2. #include

  3. #include

  4. #include

  5. #include

  6. int main ()

  7. {

  8. int fd ;

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

  10. {

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

  12. return 1 ;

  13. }

  14. for (;;)

  15. {

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

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

  18. delay (100) ;

  19. }

  20. }
复制代码

16.jpg

图5.2 测试用的程序

将完成的源文件保存为serialprint.c,然后运行下面这个命令进行编译

$ arm-linux-gnueabihf-gcc serialprint.c -o serialprint -lwiringPi

这里编译选项需要加上-lwiringPi,意思就是使用wiringPi库。生成的文件为serialprint,这个可执行文件。如下图

17.jpg

图5.3 编译程序

然后将对应串口ttyS1通过串口线连接PC,由GPIO定义表可以看到ttyS1对应的引脚为6->GND,8->UART1TX,10->UART1RX。

如下图。

18.jpg

图5.4 连接对应接口

然后执行命令$./serialprint,PC端使用串口调试软件可以看到如下打印内容。

19.jpg

到这里就完成了一个简单项目的开发。

总结

本次评测介绍了来自ASUS的tinker board。与树莓派一样,这款开发板重点面向对象仍然是创客和Linux学习者,在性能上,tinker board可以与目前市面上的高性能开发板一争高下,当然价格也比较高,可以视为是树莓派系列的升级版。但是,与树莓派一样,这款开发板的底层不开源,取而代之的是,ASUS提供了一系列封装好的库与API供用户开发。综上所述,这款tinker board可以被认为是一款不错的Linux开发板。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

 
QQ在线咨询
点击这里给我发消息
点击这里给我发消息
电话咨询
0755-23012315
快速回复 返回顶部 返回列表