树莓派上安装meshctl(译文)

原文链接:

https://medium.com/@ly.lee/install-meshctl-on-raspberry-pi-51aa1e2579e6

译者注meshctl是运行在linux平台上的蓝牙Mesh配置管理工具软件。

1. 安装BlueZ

meshctl属于开源蓝牙协议栈BlueZ软件套件的一部分(BlueZ无法在Windows及macOS上安装,所以我们使用树莓派。译者注:实际上BlueZ是Linux官方蓝牙协议栈)。BlueZ在树莓派上应该属于预安装软件,但是默认的安装是缺少meshctl工具的。这篇文章讲解如何安装带有meshctl选项的BlueZ。

开始前,请先参阅蓝牙技术联盟(SIG)的官方指南:

“Developer Study Guide: Deploying BlueZ v5.50 on Raspberry Pi3, Part1 — Deployment”

跟着如下章节中的指示做:

“0. Prerequisite”

“1. Install BlueZ v5.50”

在 “2. Rebuilding the kernel for BlueZ v5.50” 这一章节前停止。

2. 下载树莓派内核源码

我们需要重新编译构建树莓派的内核。为啥呢?因为meshctl需要AEAD-AES_CCM加密套件,这玩意会以一个安全服务的形式运行在内核中。这一步需要超过一小时的时间去完成。

在命令提示符里输入如下命令:

cd ~

sudo apt-get install -y git bc bison flex libssl-dev

uname -a

你应该能看到形似如下的命令输出:

Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux

看到那个4.19了不?这个很重要——这是你树莓派内核的版本号。我们需要下载对应我们内核版本的内核源代码,否则我们的树莓派在重新构建内核后很可能启动不了。

输入下面的命令:

git clone --depth=1 --branch rpi-4.19.y https://github.com/raspberrypi/linux

注意:将上述命令中的4.19替换成你自己树莓派内核的版本号。

3. 初始化树莓派内核配置

首先,我们将新的树莓派内核初始化为默认设置。

如果你的树莓派是1,zero,zero W,或者Compute Module,输入:

cd linux

KERNEL=kernel

make bcmrpi_defconfig

如果你的树莓派是2,3,3+,或者Compute Module 3,输入:

cd linux

KERNEL=kernel7

make bcm2709_defconfig

如果你的树莓派是4,输入:

cd linux

KERNEL=kernel7l

make bcm2711_defconfig

4. 配置树莓派内核

现在,让我们配置内核并开启meshctl所需要的AEAD-AES_CCM加密套件。输入:

make menuconfig

使用键盘上的方向键将光标移动到Cryptographic API选项:

按回车。

使用键盘上的方向键,在如下模块选项上移动光标,按 S 键进行选择:

Hash Modes → CMAC support

Random Number Generation → User-space interface for hash algorithms

Random Number Generation → User-space interface for symmetric key cipher algorithms

当某个模块被选中的时候,模块前面的<>中会变成 *。

多次点击Esc键直到看到 Do you wish to save your new configuration… 的提示:

选择YES并按下回车,回到命令提示符界面。

5. 构建树莓派内核

在正式构建内核前,我们先把老的内核备份到 /OLDboot 以防新内核启动失败。输入:

sudo cp -r /boot /OLDboot

现在我们正式编译、安装新的内核。输入:

make -j4 zImage modules dtbs

sudo make modules_install

sudo cp arch/arm/boot/dts/*.dtb /boot/

sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/

sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/

sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

sudo sync

sudo reboot

这个过程估计得要一个多小时才能完成。等上述流程都完成后,我们的树莓派就会以新的内核启动。

6. 测试meshctl

重启后,打开命令行并输入:

meshctl

按下回车键,应该会出现[meshctl]#提示符。

如果你没看到任何错误信息,那么恭喜你成功安装了meshctl

输入下面这个命令退出meshctl

exit

注意:请记住永远使用exit命令来正确地退出meshctl,否则的话蓝牙驱动会被锁定,导致你最终不得不重启树莓派来解决这个问题。

如果你看到的是下面这个信息:

Failed to parse provisioning database file prov_db.json

这表明你的内核并没有正确地安装AEAD-AES_CCM套件。仔细阅读,并按本文前面的章节步骤重新做一遍。

参考文献

如果你在配置及构建树莓派内核的过程中遇到任何问题,请参阅官方指导文档:

“Kernel Building”

“Configuring The Kernel”

如果你在配置管理蓝牙Mesh的过程中遇到任何问题,请参阅蓝牙技术联盟的官方指导文档:

“How to Deploy BlueZ v5.50 on Raspberry Pi 3 and Use It, Part 2 — Provisioning”

这里有一个很棒的关于在Zephyr嵌入式OS上的搞蓝牙Mesh的系列文章:

“Patient Monitoring System using 96Boards”

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348