BeagleBone Black开发板的进阶教程

命令行操作 安装实时内核
xukejing
发布时间: 2019-05-03
阅读: 9006

今天我们来聊聊一款非常有名的开源的嵌入式Linux开发板——BeagleBoneBlack(简称BBB)。


product_detail_black_sm.jpg

   

这款板子基于TiAM3358处理器芯片,单核的ARM Cortex A8核心,主频1GHz。比较有趣的是,为了更好地面向工业应用,AM3358芯片还带有两个32位的ARM Cortex M4 PRU微控制核心(MCU)。

板子的资源跟现在最主流的开发板(如友善之臂T4)相比,略微有些低,只有512MB DDR3内存,和4GB eMMC闪存。

   

BBB的系统镜像可以去BeagleBone官网下载到。另外,你也可以在BeagleBone官网上找到BBB的入门教程。BBB是支持网页编程的,在浏览器输入BBBIP地址就可以跟着WEB界面上的提示一步步实验各种功能。比如,我们来玩一下获取平台信息的代码,如下图所示。


网页编程.JPG

   

当然,本人今天要给大家带了的不是这种WEB端图形化的入门教程,而是更接近常规嵌入式linux操作的命令行教程。

下面要进入正题啦!

在工业应用里,很多时候都需要实时linux内核来减小延时。我将演示一下怎样用命令行给BBB装上实时linux内核,很荣幸能与大家分享这些知识。

  

我们打开电脑端软件Putty,用ssh以命令行方式远程登录BBB,初始用户名是debian,密码temppwd。登进去以后,你可以用uname命令查看一下linux系统的内核版本。我们这个系统是3.14.71版本。操作过程如下图所示。


1第一次登陆查看内核版本.JPG

   

然后,用passwdsudo passwd分别更新debianroot用户的密码。另外,root用户默认不允许直接通过ssh服务登录,我们通过编辑下面这个文档把权限给打开,文档路径、名称和要改的句子都如下图所示。


4允许远程登录.JPG

   

前面已经提到过,BBB是面向工业应用的。所以,为了提高控制的实时性,它肯定会支持Linxu实时内核。实时内核不需要你自己编译,apt的源里已经给你提供了,截图如下,已经用红线标出了。


 2bbb的内核源.JPG

  

板子开机后先要做什么呢?更新软件?我们在更新软件前先要把安装源更新一下。命令是apt update,过程如下图所示。



3更新安装源.JPG

   

上面那一步,我发现更新速度有些慢。

怎么呢办?换国内源呀!

但是国内源也有好几个呢,换哪个源呢,选择恐惧症了吧。

   

我有个小建议,ping一下看谁快。中科大的源,刚刚因为服务器重启,没有ping通,平时正常应该在45毫秒左右。清华的源的速度还可以,我们就选下图中那第2个清华的源吧。



5ping一下看看哪个源快.JPG

   

要注意一下的是,清华的源是https的。所以我们先装个apt-transport-https包,让apt支持https,如下图所示。这一步先不要改源,用默认的源安装。



 6清华源需要https 安装.JPG

  

前面已经配置了root登录,用service ssh restart重启一下sshd服务就可以支持root用户直接登录了。接下来,可以把源改成清华的了。下图中使用的软件是winscp



 7 把源改成清华.JPG

   

再更新一次安装源。换了清华的源以后,这次速度快很多了,如下图所示,最后只用了12秒。



 8再更新一次安装源.JPG

  

下面可以更新已安装的软件包了,期间会提示有新版本的sshd_config文件问你是否覆盖,选择保留老版本文件就好,不然还得再改一次允许root登录。



 9更新已安装软件包.JPG

  

安装常用软件,各种需要的软件的名字可以写进一个apt install命令里,如下图所示。我装的主要是git和各种编程软件。你可以根据需要再添加cmakeautomake等软件。



 10安装常用编程软件.JPG

  

pythonsetuptoolspip更新一下先,我知道很多人都喜欢用Python语音开发。



 11装一下python工具.JPG

  

我用sudo pip install future安装future库没有成功,所以用apt-get install python-future命令安装future库。



 12装future.JPG

  

opt目录里的系统脚本更新一下,这里面有很多为BBB量身定制的功能,比如扩展系统分区,还有更新内核。我们下一步要更新实时内核。



 13把脚本更新一下.JPG

     

通过uname -a命令,我们已经知道我们的系统的原内核是4,14版本的,所以我们这次更新4.14的实时内核,命令这样写

sudo /opt/scripts/tools/update_kernel.sh --bone-rt-kernel --lts-4_14  截图如下:

 


14更新实时内核.JPG

  

工业应用里有一种应用叫空中机器人,或者叫无人驾驶飞行器(UAV)。

BBB就有一个开源的做飞控的例子,通过一个叫BBBmini的扩展板接入惯导传感器,然后就可以作为飞控控制板了。下面这个小四旋翼的图片我引用了BBBmini项目里的图片。



 bbbminipcbquad.png

  

飞控软件上,也有一个开源的项目,叫Ardupilot,Ardupilot程序的二进制文件在BBB官网镜像里也有,你能从如下图目录里找到。(虽然版本有些低。)



 官方系统里就有ardupilot.JPG

  

BBBmini的硬件是开源的,所以它的PCB文件可以从github上下载到。我已经把BBBmini的PCB交给工厂打板了,过几天就会到。



 pcb.JPG

  

我们把BBBminidtbADC添加到bootuEnv文件里,ADC将用于飞行器的动力电池的电压和电流的采集。



15添加dtb.JPG

  

CPU频率一直跑在1GHz,这可以让软件跑得更流畅。



 16锁定1GHz.JPG

  

ArdupilotBBBmini程序,可以交叉编译,也可以BBB上本地编译。我选择了交叉编译,速度很快的。

下图是我在虚拟机里交叉编译了Ardupilot的程序。



 虚拟机里编译ardupilot.JPG

  

好了,今天只教BBB的命令行操作;Ardupilot飞控代码的编译环境搭建和代码设置,属于另一篇教程了,我以后会专门再为Ardupilot写一篇文章。


原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (3)
xukejing 擅长:其他应用
评论(1)

登录后可评论,请 登录注册

hk3860 328天前...
厉害啊
0   回复
相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)