首先要玩 BBB,你需要买一台 BBB,淘宝 Element14 Beaglebone Black,我购入价 RMB 310,带数据线,没电源适配器的。Seeedstudio 有台叫 Beaglebone Green,由于价格偏高,我连看都没看。
题外话,淘了个适配器写着是 5V 万用表测却是 2V 多,联系卖家没回复直接无视我,我也是醉了。
其他东西,暂时可以不买。没有一样可以学的。我自己有条 TTL,除了刚买 BBB 回来测试一下串口引脚之外,没有用过。
我的环境:
开箱测试:
电脑打开后,用 USB 把 BBB 和电脑连接。接上后,电源灯就会亮起,无需按开关。随后 usr0 – usr3 信号灯会醒目地闪亮着。想BBB关机,按一下电源按钮(靠近网线插口那个按钮)。
BBB 是台电脑,不像 arduino,直接拔电源有可能导致文档损坏,轻则下次开机慢点,严重的话开不了机。万一你干了,那就只能用 SD 卡启动刷系统。
如果插着 USB 线你关机了,想再次开机,再按一下电源按钮即可。
打开手提电脑查看硬盘,你会发现多了一个外置盘,一只狗这个(Beagle:比格犬):
打开它看看:
按官方做法,打开 START.htm:
各种介绍,只要跟着做就行了。我用无线网,BBB不接网线,也没有BBB wifi 模块,所以需要跟着它说明来安装 network over USB,在这一页较下位置:
如果你连接的手提电脑或者台式机,是32位,那当然是选32位。如果你插网线进去 BBB 来用,其实这一步你也可以略过。然后各种安装,我没截图了,部分需要 administrator 权限,给它,然后安装成功。你会看到在网络里多了个界面卡,它的类型是 Linux USB Ethernet/RNDIS Gadget:
BBB 通过 USB 连到你电脑就是用这个。然后把你外网的界面卡,共享网络给它,比如我是无线网的:
上图位置打勾,选择刚才的 Linux USB Ethernet 连线的名字,比如我这是“区域连线4”。
设置完成,BBB就可以用USB 通过手提电脑上网了。
BBB 默认打开了网页服务器的,地址是 http://192.168.7.2/,请打开瞄一下。
BBB 默认有 Cloud9 网页版的 IDE 的,地址是 http://192.168.7.2:3000/ ,(端口 3000), 请打开瞄一下:
如上图所示,在 TAB 那里加一页,选 New Terminal,你就能进入系统内了:
默认 root 没密码,最好还是改一下这个:
你喜欢这样操作的话,继续,不需要 Putty 了。但我习惯用 putty。IP连 SSH 的话,地址当然是 192.168.7.2,端口是默认的22。串口的 baud 是 115200。
很有信心不怕搞砸的继续 root ,怕的话加用户,然后用 su / sudo。我的 BBB OS(ArmStrong)里面连 sudo 都要自己装。
想安装东西,下载?或者看着时钟时间错误不爽想同步?但插网线又麻烦,比如我无线路由在客厅,我在房间操作 BBB。
首先看看 route:
没网关。另外值得注意的是这条路由的 MASK,255.255.255.252。掩码 252 代表了这子网,只能用的是两个 IP(256-252-1-1=2)。BBB 本机地址是 192.168.7.2,配合一下呗,在手提电脑里,把 Linux USB Ethernet 那个网络界面,指定固定 IP,192.168.7.1,掩码当然也配合一下,255.255.255.252。确保两者(手提电脑,BBB)处于相同子网:
按确定保存时,Putty 因为网络的变化会断开,再连即可,进去ping 一下测试:
然后加默认网关,route add default gw 192.168.7.1:
值得注意的是,default 是 IF usb0,通过 USB 连的。一切无误之后,你也按照刚才所说共享了连接给这个 Linux USB Ethernet 地址 192.168.7.1 的话,恭喜:
(下图 180.76.76.76 是百度的公共 DNS 地址)
然后加个 DNS 配置,用你喜欢的编辑器,比如 vim , nano,修改域名解析的配置档,/etc/resolv.conf,加入一句 nameserver 180.76.76.76,(这个是百度的,或可用你 ISP 或网络管理员提供的 DNS)。
测试一下:
能联网之后很多事情可以做了,比如NTP更新一下时间:
或者更新一下已安装的软件包,apt-get upgrade
最后,默认路由这样插入后,重新开机又会没了。写个脚本执行即可,但事情没那么简单…
我碰到问题是,Element14 的板子,usb0 这个 if 不知道哪里写入的,还在找……,有知道的告诉我一下哈。标准的 /etc/network 里面已经有正确值,跟随着 if 生效也有正确的 ntpdate 执行代码,但似乎通通被略过了。还有,insserv 时候发现一个脚本代码错误,Element14 你们是什么回事,led_aging.sh 代码欠缺了 LSB tag 了。
现在我明白别人刷 OS 是什么回事了。因为厂家技术很杯具。或许,明天找张 SD 刷一下,用习惯 red-hat 系列现在遇上 Debian 已经万分不习惯,还要帮你 debug 我好恼火。不想浪费青春了。