前言

原创文章,转载引用务必注明链接。水平有限,欢迎指正。

本文使用markdown写成,为获得更好的阅读体验,推荐访问我的博客原文:

http://www.omoikane.cn/2016/09/15/bbb_debian/

系统环境:Windows 7 Home Pentium x64|Deepin Linux 15.2 x64;Debian On BBB Industrial

预装系统介绍

相信之前用过BeagleBone Black的都记得预装的Ångström Linux系统,官方主页一度停止更新,opkg软件仓库也不再维护,不过经MOP小弟提醒发现其github项目主页依然活跃,向这些默默努力的人致敬!但是BeagleBoard官方提供的镜像还停留在2013年6月20日的版本,现在4G版BBB都是使用Debian。我们来看一看官方预装的系统情况,使用一根MicroUSB线(这个接口已经相对不多见了)与电脑连接后,下载安装驱动后,打开SSH客户端(Kitty或Xshell等),主机地址填192.168.7.2或beaglebone.local,用户名root,密码为空(另一个默认账户是debian:temppwd)。输入以下命令:

lsb_release -a
cat /proc/version
uname -a
df -Th
netstat -lnp

可以看到当前系统版本为Debian 7.9 Wheezy,在wandboard (飞思卡尔 imx6q四核SoC)上编译,内核版本3.8.13,预装apache2 Web服务器,rdp远程桌面服务器,udhcpd DHCP服务器。

​ 我们打开官方系统更新页面,可以看到目前最新的是发布于2016年5月13日的Debian 8.5 Jessie MicroSD卡镜像(然而下载链接写的8.4),要求至少4G存储空间(eMMC或者SD),另外官方提供了烧录到板载eMMC存储的方法。

FAQ:

  • 如何从MicroSD卡启动

    BBB默认从板载eMMC启动,按住USB接口旁边的USER/BOOT按钮(S2)然后开机即可从MicroSD启动

  • 我不需要图形界面,默认系统占用空间过大

    除了官方包含LXQT的Debian镜像,访问这里可以看到更多选择,其中console版就是仅包含核心功能的镜像,但是没有USB Gadget驱动(无法模拟串口、以太网卡和存储设备),没有预装Apache2,X11,xrdp等。

  • 除了Debian还有那些系统可用

    • ArchLinux
    • Ostro Project
    • Yocto Project
    • Kali Linux
    • Fedora Linux
    • 不一而足,后面预计讲一下BlackArch——安全审计,Ostro——专注物联网,Yocto——为BBB编译镜像等
  • 串口调试功能如何使用

    官网wiki介绍见此

  • BBB上有没有类似树莓派的RPi.GPIO,wringPi这种操控GPIO的库

    有,BoneScript Library,另外也能使用upm。

  • 通过 USB Gadget 驱动BBB的USB接口实现哪些功能

    • 模拟以太网接口:192.168.7.2,劫持局域网dns解析后使用beaglebone.local也能访问
    • 模拟Mass Storage (MSG):在宿主机中显示BEAGLEBONE的磁盘
    • 模拟串口:可以查看串口输出,但是因为是模拟的,所以开关机信息和uboot无法查看调试
  • 有没有比较全的文档wiki

    看这里——elinux.org

  • 插上MicroSD卡后重启会从哪启动?

    会从上次启动的设备启动

更新板载系统

所需硬件:

  • MicroSD卡一张,4G以上大小
  • BeagleBone Black Industrial
  • MicroUSB数据线
  • MicroSD 读卡器(能读MicroSD的设备如手机等也可以)

所需软件(以Windows为例):

  • 最新官方Debian系统镜像——下载地址
  • 解压缩软件——7-zip、WinRAR等,用于解压下载来的img.xz压缩文件中的系统镜像
  • Win32 Disk Imager —— 下载地址,用于烧录系统文件至MicroSD卡

烧录系统(MicroSD+eMMC):

插上MicroSD卡,打开Win32 Disk Imager,选择解压出来的bone-debian-8.4-lxqt-4gb-armhf-2016-05-13-4gb.img文件,选择正确的写入设备(MicroSD卡),点击Write等待片刻即可。

烧录完成,将MicroSD卡插入BBB卡槽,按住USER/BOOT按钮后开机,即可从SD存储启动。

当然,我们的最终目的是升级eMMC的板载系统,具体方法官网也有讲到:

To turn these images into eMMC flasher images, edit the /boot/uEnv.txt file on the Linux partition on the microSD card and remove the '#' on the line with 'cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh'. Enabling this will cause booting the microSD card to flash the eMMC. Images are no longer provided here for this to avoid people accidentally overwriting their eMMC flash.

烧录好系统到MicroSD卡后,编辑/boot/uEnv.txt文件,取消注释cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh,从而开启自动烧录到eMMC的功能脚本。之所以不再提供单独的eMMC镜像是为了防止有些人大脑不清楚的时候误操作覆盖掉eMMC里面的系统文件(怎么感觉是官方自己这么干过得到的血的教训。。。)

注意!

  1. MicroSD卡烧录完系统后,因为是Linux文件系统,Windows下不可见。另外/boot/uEnv.txt文件也无从修改(即使我知道你可以,但是仍然不建议在Windows下修改Linux文件系统文件),这时我们可以先启动BBB Industrial,登录之后插上MicroSD卡,进行修改。如果你不会的话,跟我一起学写shell:
lsblk |grep -q mmcblk1 && mkdir /media/sd && mount /dev/mmcblk1p1 /media/sd && sed -i 's/#cmdline=init/cmdline=init/g' /media/sd/boot/uEnv.txt && umount /media/sd && poweroff || echo please insert ur sdcard properly!

别看命令这么长,其实shell编程逻辑比较简单,|表示上一个命令的输出作为下一个命令的输入,&&表示上一命令执行成功则执行此命令,||表示上一命令失败则执行此命令。

所以上述命令的意思是查看当前存储设备——查找是否有sd卡插入——有则创建/media/sd目录并挂载——修改uEnv.txt文件,取消注释——卸载sd卡,关机(&& poweroff,方便烧录,可选)——如果没有检测到会提醒你正确插入sd卡。sed命令的用法看这里。

  1. 选择烧录到eMMC时,按住S2开机,随后以太网接口旁边四个LED全亮即可松开,随后进入流水灯模式代表正在烧录
  2. 烧录到eMMC的过程可能会持续45分钟,当烧录完毕时,以太网接口旁边的四个灯会全亮(不闪烁),此时关闭电源,拔掉MicroSD卡,重启即会从eMMC新的镜像启动。
  3. 想从MicroSD卡启动的话记得重新注释那一行(行首加个#

好的,趁着等待的这会儿,我去吃饭了~

吃完饭继续更新

咦,这和剧本写得不一样啊导演!四个灯全灭而不是全亮,不管了,拔掉MicroSD卡重启看看,当然这时如果有串口调试模块就好了。等了好一会儿,宿主机显示出BEAGLEBONE磁盘,SSH和虚拟串口都可以使用了。我们再看看新系统:

可以看到,更新后的系统是Debian Jessie 8.4(官网骗人啊),使用英伟达 (Nvidia,造显卡那个) jetson tk1开发板编译,内核版本4.4.9,默认没有安装rdp远程桌面服务。可用空间218M什么鬼。。。

3000:Cloud9

1880:Node-RED

更多信息可以使用以下命令:

cat /proc/cpuinfo # 查看CPU信息
dmesg | grep scheduler # 支持的系统I/O调度
cat /sys/block/mmcblk0/queue/scheduler # 当前所使用的I/O调度算法
cat /proc/driver/rtc # 板载RTC信息
cat /sys/power/state # 支持的电源管理模式

系统初始设置

更改时区

timedatectl set-timezone Asia/Shanghai

更改时间

timedatectl set-time "yyyy-MM-dd hh:mm:ss"

注意年月日之间使用短横杠-连接。然而运行改命令会提示Failed to set time: Automatic time synchronization is enabled,由于设置了自动更新时间无法手动更改,后面也发现连上网重启之后会获得正确的时间。

关于硬件时钟和系统时钟可以看我之前写的文章《吃我一记咸鱼突刺——使用板载RTC定时开机》

使用无线网络

BBB可以使用有线网或无线网,我这里掏出之前买的Edimax无线网卡,使用的是经典RT3070芯片。

通过以下命令可以看到无线网卡已经被识别:

lsusb
iwconfig
lsmod
iw list # 该命令可以看到无线网卡支持的模式,比如monitor,AP,Station等,后续会讲 

一般修改/etc/network/interfaces文件(低版本内核修改此文件仅支持wep加密)、wireless_tools或者使用wpa_suppliant可以连接网络。然而interfaces文件里有这么一句:# WiFi use: -> connmanctl,正好netstat -lnp里面也有connmanctl的身影,看名字应该是个网络连接管理软件。

connmanctl是啥

connmanctl --help看了一下使用介绍,发现功能挺多啊。

ConnMan是一个专为嵌入式设备和快速解析设计的命令行网络管理程序,支持诸多模块,而且内置dhcp(IP地址分配)和ntp(网络授时)功能。

使用方法可以看这些:

  • Connmanctl Cheat Sheet——看这个就会用了
  • Arch Wiki Connman 页面
  • Connman 文档

简单来说,[technologies]理解为网卡interfaces,[services]理解为可连接的网络:

connmanctl
> enable wifi # 启用无线网卡
> scan wifi # 扫描无线网络
> services # 列举扫描到的无线网络
> services wifi_*_psk # [optional] 查看某个无线网络的具体信息
> agent on # [ptional] 无密码的可以不需要这句
> connect wifi_*_psk # 不是SSID,二是后面对应的wifi_*,根据自己情况修改此时会要求你输入网络密码
> state # 成功连接状态为ready,已连上网是online
> help # 显示帮助文件
> exit # 退出

成功连接后,会在/var/lib/connman目录下生成配置文件,而且下次开机就会自动连接了

【无线网络扫描结果】*——favorite;A——autoconnect;O——online。connect后面的参数是wifi_开头的而不是你的无线网名称。managed代表AP模式 (非Ad-Hoc),psk为加密方式。开放网络是none,此时不需要agent on。

注意:

  • 随便掏出来的Edimax估计坏了,先后出现过各种奇怪问题,包括:

    • connect时显示Error /net/connman/service/[the ssid]: Method "Connect" with signature "" on interface "net.connman.Service" doesn't exist——更新:需要关闭tether模式才行
    • 连接成功后只能获取到254.169这种无效IP地址
    • ifconfig手动为wlan0设置IP地址仍然不能联网
  • 于是我又掏出来一个小米随身wifi (使用mt7601u芯片,包括360、小度等都使用该芯片),还好新版Linux 内核已经包含该芯片驱动,可以直接使用。具体可以参考我之前写的关于USB无线网卡选择的文章,这回正常了,很顺利。
  • connmanctl 还有一个tether命令,需要无线网卡支持ap模式,可惜mt7601u不支持,仅支持station,monitor模式,rt3070倒是支持,connmanctl tether wifi on之后可以搜索到一个名为BeagleBone-146C的无线网。更新:tether和station模式不能同时打开。
  • 更多用法可以使用 connmanctl help或者查看上面所说的文档

网线直连共享上网

这种主要针对没有路由器,没有开箱即用的无线网卡,手头只有一根网线的情况。

新入手一块板子,没有路由器,没有显示器,也没用串口调试模块,手头仅有一根网线,眼前一抹黑,怎么办?

继续参考我之前写的文章《网线直连控制Guitar (增强版)》,你可以学到直连线和交叉线;Windows上搭建DHCP服务器,tftp协议相关的知识。

这样BBB Industrial也可以通过宿主机来上网更新了。当然如果你有路由器直接插上网线就可以,多简单。

更新系统(内核、软件)

更换软件源为tsinghua (清华大学),也可以使用ustc (中国科学技术大学,但是最近不稳定),常用的阿里源不包括Debian armhf架构就不列出来了。

sed -i 's/httpredir.debian.org/mirrors4.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

是不是发现sed命令很好用!

# 更新系统
apt-get update && apt-get upgrade

推荐你去看看/etc/apt/sources.list文件,值得一看。因为升级时速度过慢,可以改upm,node.js的更新地址,或者使用代理(connman就支持设置代理)。此外内核的更新没有Raspberry Pi使用rpi-update那么方便了。

再次运行lsb_release -a命令可以看到已经升级为最新的Debian Jessie 8.5了。另外不推荐冒然执行 apt-get dist-upgrade升级系统,原因我也讲过,upgrade遇到依赖冲突时会保持原样,dist-upgrade会强行升级依赖而往往无法做到满足所有依赖,例如软件A需要库1.1版本,软件B需要库2.4版本,后者会升级为库2.4并导致软件A无法使用。

转载于:https://www.cnblogs.com/sjqlwy/p/bbb_debian.html

BeagleBone Black Industrial系统更新设置一贴通相关推荐

  1. 华为手机老是android自动升级,安卓手机系统升级!华为手机系统更新设置

    原标题:安卓手机系统升级!华为手机系统更新设置 安卓手机系统升级!华为手机系统更新设置?手机系统是手机使用的生命,而随时对手机系统进行更新就保障手机的运行.手机系统升级,可以修复手机之前的漏洞Bug, ...

  2. win7如何打开微软更新服务器地址,win7系统更新设置在哪里?小编告诉你

    很多win7用户向小编抱怨说win7自动更新太烦了,几乎每隔几天就要更新一次,影响自己使用电脑.那么win7系统更新设置在哪里呢?其实win7系统更新设置很醒目,那么win7系统更新设置在哪里?小编告 ...

  3. 联想android系统怎么关闭自动更新,系统自动更新怎么关闭|关闭系统更新设置方法-系统城...

    2019-02-14 14:58:54 浏览量:2540 microsoft更新附带着很多其他的产品,而这些产品是用户们不需要的程序,系统经常会自动更新某些软件,非常烦人.针对这一问题,我们最好的办法 ...

  4. 如何在多可系统里设置腾讯通RTX参数

    1.配置RTX相关参数: 以RTX2011为例进行说明 2.在腾讯通服务器端的安装目录下(RTXServer)找到AppConnConfig.xml,用记事本打开,添加安装了多可文档管理系统的计算机I ...

  5. android 自动升级 图,手机系统更新好不好 安卓手机系统更新方法【图文教程】...

    智能手机的功能如此丰富,在于系统的智能化,目前人们所用的手机系统大多是 苹果 的ios系统以及谷歌的安卓系统.除了苹果手机外大部分智能手机使用的都是安卓系统,手机用智能系统后的功能是多了很多,但几乎每 ...

  6. 计算机防火墙不能更改,win7系统更新防火墙设置不能更改的解决方法

    我们在操作win7系统电脑的时候,常常会遇到win7系统更新防火墙设置不能更改的困惑吧,一些朋友看过网上零散的win7系统更新防火墙设置不能更改的处理方法,并没有完完全全明白win7系统更新防火墙设置 ...

  7. switch日版有中文吗_Switch中文系统更新方法 NS怎么设置中文系统语言

    任天堂 Switch 1月29日更新了中文的系统语言补丁,大家终于可以在Switch上使用中文语言进行系统等一系列设置了,但是很多玩家并不太了解具体更新和设定的流程,那么今天就带来由"ACG ...

  8. 锤子T1 恢复出厂设置后,应用商店/系统更新,无法联网,提示超时

    1.这个原因是系统版本的问题,需要做更新才能使用,因为[设置]->[系统更新]检查更新时,提示联网超时,所以需要手动下载跟新包,之后就可以自动更新了. 2.获取更新包,扫描下面的官网二位码,打开 ...

  9. IOS10-IOS13屏蔽系统更新描述文件|去除‘设置’①小红点教程

    大家都知道在iPhone系统更新的时候都会提示咱们进行更新,但是有些小伙伴不想更新,但是不更新有一个小红点1这样人很烦躁,对于强迫症的人实在是忍不了,今天我就给大家分享一个方法,只需要一个描述文件就可 ...

最新文章

  1. 2003系统服务器,雨林木风 windows server 2003企业版服务器系统
  2. linux文件删除指定内容,Linux bash删除文件中含“指定内容”的行功能示例
  3. SparkStreamingStateful
  4. JS魔法堂:判断节点位置关系
  5. Linux-xargs命令
  6. 前端笔试能查吗_老码农的字节跳动前端面试总结
  7. c# datetime._C#| 带示例的DateTime.DayOfWeek属性
  8. 几种常见的Java排序算法
  9. coreseek mysql_coreseek,php,mysql全文检索部署(一)-阿里云开发者社区
  10. 云闪付app怎么删除常用转账人?云闪付转账记录怎么删除?
  11. java 毫秒转分钟和秒_毫秒转换为天、小时、分、秒
  12. mysql 建数据库命令_新手入门MySQL数据库命令大全
  13. Intel/Nvidia双显卡笔记本用U盘安装ubuntu和Nvidia驱动
  14. fluent p1模型_FLUENT基本物理模型介绍
  15. bzGhost 打造跨平台即时聊天软件之websocket
  16. 基于51单片机的指纹锁设计(附带密码解锁)
  17. Redis 在windows中启动
  18. 干掉Vivado幺蛾子(2)-- 快速替换debug probes
  19. pbe近似_pbe近似_科学网—[转载]赝势及泛函介绍(1) - 冯宇超的博文
  20. java 神剑_java语音短信的实现

热门文章

  1. 统计了300位硬件工程师的工资,我悟了
  2. Python绘制双对数曲线
  3. C#【EF Core框架】使用乐观锁处理并发冲突
  4. sklearn中的数据集2 (Covertype 一个关于植被的数据集)
  5. 极简设计模式 - UML类图几种线条
  6. ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享
  7. 华大单片机HC32L130/HC32L136PWM配置
  8. 如何在网页中添加 GitHub Corners
  9. 新松机器人袁_中科新松许小刚:智能协作机器人是中国机器人产业发展新节点...
  10. 假如给我三天光明阅读心得收获