等了许久,Beagle 社区官网终于上线了BeagleV-Ahead 的主页 网址 https://beagleboard.org/beaglev-ahead ,我们的系统软件评测将会以这个官方主页为出发点 ,进行一系列的系统软件功能等操作演示,因官网没有中文页面,我这里 把 主页内的文字 翻译成了中文 来方便大家对照 参考。
上一篇介绍了 BeagleV-Ahead的硬件基本组成,以及各个接口的使用场景功能等,这一篇我们从拿到一个开发板开始,从软件层面来展示 BeagleV-Ahead 系统的一些软件特性,首先从BeagleV-Ahead 上电,连接显示器,作为一个独立的小型 PC使用,之后 使用USB转串口工具,使用终端命令行 方式 登录终端,作为嵌入式开发的角度来操作此款开发板,最后 讲解 如何 更新 官方提供的 不同系统镜像,分别烧录至 TF卡 EMMC等。
注意:拿到开发板后,默认运行了 ubuntu-23.04 系统,我们将会以这个为标准系统开始编写系统软件评测文章。
系统初体验
1. 开发板上电
上一篇文章有介绍过如果想到手后完整体验BeagleV-Ahead发行版系统,就需要使用 5V/DC 给开发板供电,才能使用MicroUSB 3.0接口OTG转接线连接 USB鼠标键盘等设备。
拿到开发板后,首先确保已经连接好WiFi天线,准备 好了5V/DC电源,就可以直接接入BeagleV-Ahead 进行上电。
2. 连接必要设备
如果把BeagleV-Ahead当作一个小的PC来用 ,只是电源自然是不够的,因为你无法对其进行简单的交互,这时就需要 连接 显示器 ,以及鼠标键盘 来对系统进行一个交互操作,实现一个真正的个人小PC。
首先自行购买一根 microHDMI转HDMI的转接线连接至显示屏/电视(注意: 有些显示屏接口并没有标准的HDMI2.0接口,需要留意确认)。其次 自备一套 USB 鼠标键盘设备(建议使用 USB无线 鼠标键盘套装,不然还需要购买一个USB HUB来扩展USB接口),USB鼠标一端连接至MicroUSB 3.0 OTG TYPEA母头,另一端连接至BeagleV-Ahead MicroUSB口,连接成功后 如下示意图所示。
因USB HDMI都默认支持热拔插,且系统也有做适配支持,所以可以在 BeagleV-Ahead启动后 再进行连接。
3. 登录系统
按照上述步骤,连接成功HDMI到显示器后,屏幕默认就会显示一个大大的 BeagleBoard logo 背景图(桌面系统默认会自动登录 不需要手动输入用户名和密码),此时可以使用鼠标键盘 来操作 点击屏幕上应用来进行体验。
可能是因为系统显示优化还不够完善,第二次启动后会异常卡顿,建议Beagle官方尽快优化 解决。
4. 连接网络
登录系统后的第一件事就是看看有没有联网,如果你的旁边有 RJ45网线可以上网,那么强烈建议你直接使用RJ45网线连接开发板,来进行网络通信,连接RJ45网线 在上一篇硬件评测 网卡章节有介绍,连接成功后,BeagleV-Ahead系统会默认自动获取IP地址,可以在系统下 打开 Bash终端,输入 ping qq.com 确认。
如果BeagleV-Ahead没有默认获取IP地址,可以按下BeagleV-Ahead RESET复位系统 来重启获取,如果重启后还是无法获取,那么请检查网线另一端路由器的配置。当然如果你的使用环境没有RJ45网线,只能通过 WIFI 无线的方式连接网络,也是可以的,接下来使用 nano 来编辑 /etc/wpa_supportion.conf 文件,在里面输入 您的 WiFi名称 和密码,保存退出,之后再次 重启 开发板 即可 通过 Bash终端下 Ping的方式 确认 或者 打开浏览器访问网页的方式确认
也可以截图来查看桌面的变化
联网成功后就可以做很多有趣的事情了。
5. 系统体验
更新软件源,如果使用 sudo apt update 命令提示需要输入密码,默认的系统 密码为 temppwd 用户名为 beagle
安装htop软件包
开发Hello.c程序
如果只是运行安装现有的软件,体验起来似乎和PC机差不多,因为性能的原因 甚至还没有我们常用的X86 PC流畅,不过在嵌入式设备上我们可以做到平常PC很难实现的事情,就是很方便的开发属于自己的程序运行。 接下来讲解如何在 BeagleV-Ahead 开发编译运行自己的程序。
开发方式选择
在上一章节里面 介绍了把 BeagleV-Ahead当作PC使用 进行体验,因为目前优化问题,以及资源相对比较缺少的原因,无法直接使用 IDE或者 文本编辑器来编写代码,还是需要通过在终端下操作。
使用系统桌面开发
首先我们在保证 开发板的 显示器设备 键盘 都在连接的状态下,同时按下键盘上的 ctrl + alt + t 三个按键,系统就会自动弹出一个 bash终端,因为 系统默认没有安装 图形化 文本编辑器,所以我们需要使用 nano 工具在终端下进行文本编辑操作。
使用USB串口开发
如果用显示器比较麻烦,而且当下并不具备这个条件 去在BeagleV-Ahead上进行开发,那么我们可以使用 BeagleV-Ahead默认预留的UART串口进行访问开发板终端,进而进行开发操作体验,其中 BeagleV-Ahead和 USB转TLL 串口模块 连接抽象示意图如下所示!
我这里找了一个常见的 CP210 USB 转TTL模块,一段连接至开发板 一段连接至电脑,中间通过 双母头 2.54杜邦线进行连接,连接成功后如下图所示,之后我们回到 电脑端,以Windows系统为例,首先安装USB串口驱动(wind10及以上系统默认会自动安装,如无法自动安装,可以使用 驱动精灵等工具来辅助安装)。安装成功后就可以通过 putty mobaxter minicom等工具来操作串口 和 BeagleV-Ahead进行交互了。
下面以使用Putty工具打开BeagleV-Ahead串口
- 对于Windows系统 此时Windows设备管理器 在 端口(COM和LPT) 处会多出一个串口设备,一般是以
USB-Enhanced-SERIAL CH9102
开头,您需要留意一下后面的具体COM编号,用于后续连接使用。
如上图,COM号是96,我们接下来连接所使用的串口号就是96。
接下来获取串口工具来开发 COM96设备,我们这里推荐使用Putty 一款小巧强大的多协议工具,其中putty工具可以访问官网页面 https://www.chiark.greenend.org.uk/~sgtatham/putty/ 来获取,下载完成后双击打开接口运行。
如下图所示,打开putty后,主界面,参考图片从左 到右 红框字体所示,分别 设置 连接类型 为 Serial Serial Line 为COM96 Speed 为115200 ,有图左下角 切换到 serial 界面,设置 Flow control 为 None 最后 点击 Open 即可 打开 BeagleV-Ahead的串口界面。
最后可以看到系统弹出了一个 终端的对话框 可以按下 windows电脑的键盘Enter键 ,进入到终端模式,就可以通过串口和BeagleV-Ahead进行交互操作了。
初次使用串口登录,系统会提示 需要你 输入用户名和密码 登录,BeagleV-Ahead默认的 用户名是 **beagle ** 密码是 temppwd
编写运行程序
进行系统后,我们就可以使用BeagleV-Ahead 编写并运行一个简单的 hello.c 程序 打印输出 Hello BeagleV-Ahead! 这句话!
编写程序
如下是一个简单的示例代码,通过 nano 或者 vim等命令 新建一个 hello.c文件,然后输入进入,保存退出
#include <stdio.h>
int main (void)
{
print("Hello BeagleV-Ahead! \n\r");
return 0;
}
截图介绍 如何 使用 文本编辑器,怎么写入代码 怎么保存
编译运行
大家应该都知道,计算机硬件只认识0 1 0 1数字,无法直接运行我们编写好的程序,这时我们就需要把 我们写好的程序转换成计算机可以识别的机器码语言,这个转换过程 一般叫做编译过程。既然谈到了编译,那么就需要有专门的编译器,在BeagleV-Ahead 编译 hello.c程序,直接使用系统预装的 GUN GCC就可以进行编译生成可以直接运行的程序。
gcc hello.c
编译完成后,会生成一个 可执行程序,这个程序是 ./a.out
我们直接运行,就可以看到打印出来的 **"Hello BeagleV-Ahead!**字符。
./a.out
到此为止,整个简单的编译 运行程序示例演示完成,如果想要学习更多,可以 阅读 《UNIX环境高级编程》来学习更多开发。
更新eMMC 系统
注意:此教程运行环境基于windows系统,理论上 windows 10及以上系统都支持
获取镜像
使用浏览器访问 https://www.beagleboard.org/distros 页面,即可看到 所有的 Beagle 社区支持的系统镜像,我们需要找到 BeagleV-Ahead专用的系统镜像,可以根据左侧字体 Filter Software Distributions 点击 下拉框 选择 BeagleV-Ahead 板子,同时留一下 右侧 绿色 √ 号 表示 长期支持更新版本,我们下载时要根据这两个条件来选择适合自己的镜像,如下图所示,我这里截图 选中了 BeagleV-Ahead 板子,目前看到只有两个系统镜像的支持,分别时 ubuntu 以及yocto ,在这里我要简单介绍一下两个系统的区别,其中 ubuntu系统作为一个 发行版系统 主要是把BeagleV-Ahead作为一个PC使用,里面有丰富的应用 软件包,可视化的界面 人性化的交互体验,适用于大部分群体,另一个Yocto属于一个专业的自定义小系统,可以看作是转为 嵌入式开发者提供的一套镜像支持,用于更深入的针对BeagleV-Ahead开发,这个系统可玩性比较低,不建议非专用人员使用。
下载系统可以点击每个镜像 下面的 橙色 Image 按钮,直接点击即可下载,下载下来以后是一个 和 系统 名称 一样的.zip 压缩包,如下示意图所示。
进入烧录模式
在更新系统之前,我们要先准备好对应的系统镜像,请先参考上一节准备好需要更新的系统镜像,之后 参考 下图所示 按下 USB 按键 保持长按,接下来,将 MicroUSB 线一端 连接至BealgeV-Ahead ,另一端连接至 电脑USB接口(建议3.0 烧写会很快)。
连接成功后,可以看到Windows电脑的设备管理器 弹出来一个 名为 USB download gadget的 设备,这就表明 我们已经进入了USB烧录模式,但是目前因为 Beagle 还并未发布 windows下的 烧录工具,所以此章节 我暂时先使用 虚拟机 ubuntu系统 来进行演示烧录操作。
windows下识别到设备后,我们需要将此设备 通过 连接的方式 连接到ubuntu 18.04虚拟机内,我这里使用了 vmware虚拟机工具,其中连接设备到 ubuntu系统的步骤如下箭头所示,分别点击vmware软件顶部菜单栏 虚拟机 --> 可移动设备 —> USB download gadget —> 连接 即可将设备连接至 虚拟机内,连接成功后就可以开始后续的烧写步骤了。
运行烧写工具
前几小节 我们已经准备好了硬件环境 需要烧录的系统镜像,接下来就可以进入到真正的烧录过程里面了,参考官方 https://docs.beagleboard.org/latest/boards/beaglev/ahead/02-quick-start.html#flash-the-latest-image-on-emmc 的一个说明,我这里使用的 Ubuntu-18系统 所以需要先安装 android-sdk-platform-tools 这么一个软件包 之后将 我们前面下载好的镜像 复制到 ubuntu 系统内,使用unzip解压缩 得到一个deploy 文件夹, 就可以进入 文件夹内 执行 sudo ./fastboot_emmc.sh 命令开始烧写,如下为比较详细的演示操作步骤 。
- 先将我们前面下载好的 镜像 通过 拖拽 或者 filezila 等工具 上传到 Ubuntu系统的 家 ~ 目录下,拖拽拷贝文件的方式如下所示。
- 在ubuntu可以联网的状态下,使用 sudo apt 命令安装 烧写工具 android-sdk-platform-tools ,如下所示,在Ubuntu系统下,同时按下 ctrl + alt + t 快速唤醒 终端。 具体操作步骤如下红框所示。
- 最后我们可以开始烧录操作,首先使用 cd命令 切换到 你前文 拖拽 存放 Ubuntu系统的目录,之后使用 unzip 解压缩命令解压镜像,最后进入到 解压后的镜像 deploy目录内,执行 sudo ./fastboot_emmc.sh 即可自动开始烧写,烧写完成后 会自动重启开发板系统 如下为操作演示步骤。
烧录完成后,系统会自动重启,但是整个烧录过程 大约持续 3 - 5分钟,请大家烧录时耐心等待。
开发板 重启后,就是你烧录过的最新的系统镜像。可以参考前几篇的文章 进行使用最新的系统。