[Cortex-A] 【PocketBeagle试用】基础篇

[复制链接]
337|0
 楼主 | 2018-4-8 09:14 | 显示全部楼层 |阅读模式
前言
原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正。本文使用markdown标记语言写成,为获得最好的阅读体验,请访问我的博客原文。
这次的PocketBeagle 是21ic网站活动所得,这里把自己的一些琐记分享给大家。
1. PocketBeagle Summary
​        21ic公司在北京,翌日快递就到了,如下图所示,这包装让人莫名想起大学时北门最后在激烈竞争大潮中倒闭的打印店老板,以及卖不掉的扩容U盘。
目前准备分两部分写,基础篇和高级篇,基础篇就是拿到之后可以正常使用,高级篇就是针对PB的特色应用。建议继续本文之前看看《不能再小了--PocketBeagle开发板评测》和《装在口袋里的Beagle,上手很Easy》,一些内容不再赘述。PB虽然是17年发布的,但是并没有多么流行,相关文档较少,Youtube上大多都是关于小型比格犬的。。。
好吧,确实还挺萌的。
1. 硬件概览
自BeagleBone Black 2013年面世以来,其官方及衍生发布的版本硬件规格基本没动过,一块SoC用在好几代板子上,一样的AM335x单核1GHz ARM A8处理器、512MB内存,这和树莓派的思路不同,目前也能看到树莓派就是在提升性能上修修补补,不过最新的RPi 3b+据评测IO性能有很大提升。
我们看看树莓派基金会设计理念:https://www.raspberrypi.org/about/
The Raspberry Pi Foundation is a UK-based charity that works to put the power of digital making into the hands of people all over the world, so they are capable of understanding and shaping our increasingly digital world, able to solve the problems that matter to them, and equipped for the jobs of the future.
We provide low-cost, high-performance computers that people use to learn, solve problems and have fun. We provide outreach and education to help more people access computing and digital making. We develop free resources to help people learn about computing and how to make things with computers, and train educators who can guide other people to learn.
主要是提供低成本高性能卡片式电脑,促进计算机教育。
我们再来看看BeagleBoard.org基金会的:http://beagleboard.org/about
The BeagleBoard.org Foundation is a US-based non-profit corporation existing to provide education in and collaboration around the design and use of open-source software and hardware in embedded computing......The BeagleBoard.org community collaborates on the development of open source physical computing solutions including robotics, personal manufacturing tools like 3D printers and laser cutters, and other types of industrial and machine controls.
BB基金会拥有类似老Motorola的工程师文化,主要是更专业的领域如机器人、嵌入式学习、3D打印等,而这些并不需要完整的电脑接口和高性能。这两者的理念差异也导致了RPi和BB的产品差异。
有兴趣的也可以看看Arduino的AboutUs
【我所拥有的BeagleBoard家族】之前还有一块BBBlack,后来出掉了,设计理念的差异也体现在PB和RPi Zero上。
下面我们来看看PB的硬件资源:
PocketBeagle 硬件规格:
  • SiP (System-in-Package) – Octavo Systems OSD3358-SM模块,包含
    • TI Sitara AM3358 ARM Cortex-A8 处理器,最高1 GHz, PowerVR SGX530 GPU
    • 2 × PRUs (实时可编程单元, 200MHz ARM Cortex-M3)
    • 512MB DDR3 800 MHz内存
    • 4kB I2C EEPROM存储
    • TPS65217 PMIC + LDO,内置1芯锂电池充放电支持,大家可以看看手册,这块PMIC还是很强的,而RPi没有PMIC电源管理芯片

  • 存储 – micro SD槽
  • USB – 1个micro USB 2.0 OTG接口
  • 扩展接口 – 两排 36-pin引脚
  • 其他 – 电源按钮,4 × LEDs,支持Click™ 扩展板
  • 供电 – microUSB 5V、扩展接口

【Click Board】图示是串口和以太网模块,更多模块可访问https://www.mikroe.com
此外还可以使用AdaFruit的一些Breakout Board,例如这种:
沉寂了多年的BB基金会在2016年发布新的BeagleBone Black Wireless,随之而来新的SiP封装令人眼前一亮,优点是集成度高,焊接方便,保护性好,缺点是内部CPU、RAM、PMIC等一旦损坏很可能得全换。
Compare with RPi Zero
这种小体积的板子有C.H.I.P、RPi Zero以及这次的PB,前两者比较像,归为一类。
PB像是介于Arduino和RPi Zero之间的东西,并且偏向于Arduino,但是国内来说,扩展板难买,性能过剩,价格高昂(5刀 Vs. 25刀,而且RPi Zero接口多,带蓝牙无线模块,TI的东西虽然物美但是价高啊,这或许就是PB不温不火的原因之一)。
PocketBone
比PB早,但是没有正式发售,更多信息请移步:cnx-softwareotcavo(1)otcvo(2) 。看起来大同小异,引脚更少。
小结
在2017年,Arduino都开始逐渐发布带无线能力的开发板,而PB这么一块开发板没有无线/蓝牙、以太网等接口,无拓展板情况下缺少通讯手段,是很不合格的,借助PRU以及丰富的专业接口和开放的软硬件资源,PB在某些专业领域会有人玩。可能为了区别BBB Wireless 、BB Blue的市场,人为地裁剪PocketBeagle的组件,在我看来定位很令人困惑。
注意:
手头拿到的是最新的 Rev A2,GPIO44被错印成GPIO48了——Via
2、文档资料
凭着BeagleBoard多年的技术沉积,虽然目前PocketBeagle的Software Status大多是Work In Process (WIP),但是相信大家也能玩得转。得益于TI的开放,AM335x拥有Mainline Kernel支持,可以获得大多数新特性
2.1 支持的操作系统|Available OS
  • Debian | ☆官方提供,基于Debian 9,有LXQT图形桌面版和IoT 命令终端版,这里选择IoT就可以了
  • Ubuntu 16.04 LTS | 官方rootfs制作
  • 支持TI AM3358的操作系统
    • Arch Linux | Arch Linux很早就支持BB家族的开发板,优秀的滚动Linux发行版,能用到最新的软件
    • Kali Linux | 专注安全审计方面的发行版
    • ROS | Robot Operating System,需要移植
    • Ardupilot | 飞行器、潜水器、遥控车控制系统,需要移植


2.2 文档资源|Documents & Resources
因为PB承载自BeagleBoard家族,所以大部分适用于BBB的书籍都可以参考。官方chat频道不咋活跃,Google Groups有点乱,毕竟不是专门的论坛。好在Youtube视频有各种有趣的内容。国内好像专业定制领域比较多,当创客板还是不如RPi流行。
  • eewiki | 较多系统编译相关内容
  • 官方网站 | 官方资料集散地,有软硬件资料和网络上的项目分享
  • Google Groups | 还是有些可供参考的内容,但是为啥不搞个专业的论坛呢
  • 官方Wiki | ☆ System Reference Manual 章节很有用,基本涵盖了大部分操作
  • 官方github | 不少有用的东西,Issues讨论也很有用
  • BeagleBoard github | 另外关注下Robert Nelson,他有一些脚本在/opt/scripts
  • Ken Shirriff's blog |大神的博客,有两篇关于PB的
  • Books | 专门的PocketBeagle 书还没有,但是大部分都可借鉴,推荐《Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux》这本书,其他的在鸠摩,这里不便提供电子版。

3、应用方案
受限于PB的硬件资源,目前想到的方案是
  • 数据线连接主机,作为Agent:
    • 仅主机开机且特殊功能时用到,其他时间处于关机状态,作用是Linux系统,各种服务,软件开发,代理,去广告,Secrue Key,由于只有一个microusb接口,甚至都不能连接第三方USB设备,大大降低了其应用方向,集中于软件方面。
    • 在其他主机上即插即用,获得熟悉的使用环境和功能

  • 独立使用,由MicroUSB或锂电池接口供电,外挂ESP8266等无线模块进行通讯,但由于ESP8266本身就可以作为Arduino-Like使用,唯一能想到的就是高实时性和相对的高性能,以及机器人领域

4、开始上路!
讲了这么多,终于要开车了,还是建议先看看官方指南和最前面的两篇评测,我简要记述一下。
4.1 下载烧录上电
下载最新版Headless操作系统镜像Debian 9.3 2018-03-05 4GB SD IoT,用etcher烧录到microSD卡上,退出sd卡,插到PB的卡槽,用MicroUSB数据线与Windows电脑连接,不一会就能看到电脑多出一个BeagleBone Getting Started可移动存储设备。浏览器访问http://192.168.7.2一般可以看到绿色的已连接到开发板
4.2 启动失败问题探讨
关于启动失败的问题探讨:表现为烧录好系统上电后,仅电源灯亮,串口无输出或单一乱码(115200波特率),主机不显示移动磁盘,考虑硬件损坏。
RPi的BootLoader是在GPU ROM里的,PB没有eMMC,查看/boot分区可见uboot目录,说明BB的系统是在sd或者eMMC上而不是固化在硬件上的。uboot正常时(类似BIOS)串口会输出硬件自检信息,在确认sd卡没问题的前提下,很有可能是硬件损坏。之前的BBBlue和群友的一块PB也出现相同问题,可能需要参考TI手册来确认问题,比如TI AM3358是自动读取BootLoader还是有NBoot之类的。
4.3 系统基本情况
使用Xshell登录上去,debian:temppwd,可以看到目前是使用4.9.82内核的32位操作系统,默认开启了几个端口:
  • 53 | DNS 和DHCP服务
  • 22 | SSH服务
  • 1880 | 访问可知是node-RED
  • 3000 | Cloud9 Web IDE
  • 80 | 快速指南页面
  • 8080 | apache2网页服务器

此外还有avahi服务,ifconfig可以看到usb0和usb1两个,查看文档可知:
4.3 扩展SD卡分区
不管你的sd卡有多大,默认只使用不超过4G,和RPi不同,需要自行扩展分区,参考这篇文档,执行以下命令sudo /opt/scripts/tools/grow_partition.sh,重启后生效。
4.4 共享主机网络
以Windows 7 为例,Win 下选择共享网络给RNDIS,然后属性更改自动获取ip,默认是192.168.137.2。
初始情况下,dns服务器和默认网关(gateway)没有设置,所以无法上网,而/etc/resolv.conf每次开机会重新生成,所以创建自定义resolv.conf,
  echo 'nameserver 114.114.114.114' > ~/resolv.conf
/etc/resolv.conf -> /run/connman/resolv.conf 链接到。
PB上新建一个脚本doroute.sh,内容如下:
  
  sudo route add default gw 192.168.7.1
  sudo cp /home/debian/resolv.conf /run/connman/resolv.conf
由于系统启动完加载gadget驱动后才会有虚拟网卡,故无法开机设置,需要手动设置。(systemd开启延时?)
更改软件源以提速:
默认采用Debian官方源和rcn-ee补充源,使用https://mirrors.ustc.edu.cn/repogen/
生成中科大源列表,源文件备份为sources.list.old。重新update & upgrade一下。
更改账户密码
passwd debian
电源按钮的使用
得益于强大的PMIC电源管理芯片,PB的电源管理按钮有诸多功能
  • 轻短按——标准关机,会等待软件服务等退出后才关机,相当于sudo shutdown -h now
    重新开机需要按住10s(灯灭)->松开->轻按开机
  • 重长按10s——强制关机,内存里未保存的内容将会丢失
    轻按即可重新开机
  • 重长按>10s——强制重启

microUSB 虚拟网卡带宽堪用?
PB引出的接口仅有microUSB一个。该接口通过USB Gadage驱动支持虚拟串口、Ethernet和Mass Storage功能。USB 2.0理论传输速度为480Mbps,即60MB/s,那么通过USB Gadget驱动实现虚拟以太网卡性能如何?
使用iperf进行测试(也可以试试netperf)  
  # 分别在PB和Espressobin开发板上安装iperf 2.0.9,注意iperf3有较大改动
  sudo apt install iperf
  # 开启iperf服务器,使用udp协议
  iperf -u -s
Windows主机上下载iperf(命令行程序),基本用法。通过无线网连接Espressobin,以100M为数据发送速率,进行上下行带宽测试:
  
   iperf -u -c target_IP -b 100M -d -t 60
结果如下:
可见Espressobin带宽约为PB的两倍多,而且PB开始出现丢包。
下载速度测试  
  # 分别在两板上生成100MB的文件
  dd if=/dev/zero of=big.file bs=100M count=1
  # 开启单线程web服务暴露出去
  python -m SimpleHTTPServer 7777
在Windows主机上使用下载工具下载文件,文件地址:target_IP:7777/big.file
PB速度大约为8MBps,Esp约为17MBps,整体来说,PB的速度可堪一用。

扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /4 下一条

快速回复 返回顶部 返回列表