lupyuen.org/articles/install-meshctl-on-raspberry-pi.html

446 lines
27 KiB
HTML
Raw Normal View History

2021-02-23 19:37:17 +08:00
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=bsmaklHF" />
<link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=qtvMKcIJ" />
2024-12-30 11:07:24 +08:00
<link rel="canonical" href="https://lupyuen.org/articles/install-meshctl-on-raspberry-pi.html" />
2021-02-23 19:37:17 +08:00
<!-- End Wayback Rewrite JS Include -->
<title data-rh="true">Install meshctl on Raspberry Pi. Follow these instructions to install… | by Lup Yuen Lee 李立源 |
Medium</title>
<meta data-rh="true" charset="utf-8" />
<meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1" />
<meta data-rh="true" name="theme-color" content="#000000" />
<meta data-rh="true" property="og:type" content="article" />
<meta data-rh="true" property="article:published_time" content="2019-10-16T04:30:17.217Z" />
<meta data-rh="true" name="title"
content="Install meshctl on Raspberry Pi. Follow these instructions to install… | by Lup Yuen Lee 李立源 | Medium" />
<meta data-rh="true" property="og:title" content="Install meshctl on Raspberry Pi" />
<meta data-rh="true" property="twitter:title" content="Install meshctl on Raspberry Pi" />
<meta data-rh="true" name="description"
content="Follow these instructions to install the Bluetooth Mesh provisioning tool meshctl for Raspberry Pi for the article “Bluetooth Mesh with nRF52 and Apache Mynewt” meshctl is part of the open-source…" />
<meta data-rh="true" property="og:description"
content="Follow these instructions to install the Bluetooth Mesh provisioning tool meshctl for Raspberry Pi for the article “Bluetooth Mesh with…" />
<meta data-rh="true" property="twitter:description"
content="Follow these instructions to install the Bluetooth Mesh provisioning tool meshctl for Raspberry Pi for the article “Bluetooth Mesh with…" />
<meta data-rh="true" name="twitter:card" content="summary_large_image" />
<meta data-rh="true" name="twitter:creator" content="@MisterTechBlog" />
<meta data-rh="true" name="author" content="Lup Yuen Lee 李立源" />
<meta data-rh="true" name="robots" content="index,follow,max-image-preview:large" />
<meta data-rh="true" name="referrer" content="unsafe-url" />
<meta data-rh="true" name="twitter:label1" value="Reading time" />
<meta data-rh="true" name="twitter:data1" value="4 min read" />
2021-02-26 13:24:17 +08:00
<meta property="og:image"
content="https://lupyuen.github.io/images/legacy/m1.jpeg">
2021-02-23 19:37:17 +08:00
2021-02-23 19:49:26 +08:00
<!-- Begin scripts/rustdoc-header.html: Header for Custom Markdown files processed by rustdoc, like chip8.md -->
<link rel="alternate" type="application/rss+xml" title="RSS Feed for lupyuen" href="/rss.xml" />
<link rel="stylesheet" type="text/css" href="../normalize.css">
<link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle">
2021-02-25 08:40:21 +08:00
2021-02-23 19:49:26 +08:00
<link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle">
<link rel="stylesheet" type="text/css" href="../prism.css">
<script src="../storage.js"></script><noscript>
<link rel="stylesheet" href="../noscript.css"></noscript>
<link rel="shortcut icon" href="../favicon.ico">
<style type="text/css">
#crate-search {
background-image: url("../down-arrow.svg");
2021-02-23 19:37:17 +08:00
}
2021-02-23 19:49:26 +08:00
a {
color: #77d;
2021-02-23 19:37:17 +08:00
}
2021-02-23 19:49:26 +08:00
</style>
<!-- End scripts/rustdoc-header.html -->
2021-02-23 19:37:17 +08:00
</head>
<body>
<div id="root">
<div class="a b c">
<article>
<section class="bw bx by bz ai ca cb r"></section><span class="r"></span>
<div>
<div class="s u cc cd ce cf"></div>
<section class="cg ch ci cj ck">
<div class="cl ai">
2021-02-25 21:05:13 +08:00
<div class="figure cm cl ai paragraph-image">
2021-02-23 19:49:26 +08:00
<p><img src="https://lupyuen.github.io/images/legacy/m1.jpeg" /></p>
2021-02-25 15:21:12 +08:00
2021-02-25 21:00:07 +08:00
<figcaption><p><em>EBYTE E73-TBB Development Board (based on nRF52)
provisioned into a Bluetooth Mesh by running meshctl on Raspberry Pi 4</em></p></figcaption>
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
</div>
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<div>
<h1 id="024f" class="dm dn bo do b dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef">Install meshctl
on Raspberry Pi</h1>
<div class="eg">
<div class="n eh ei ej ek">
<div class="o n">
<div><a rel="noopener"
2021-02-26 07:32:12 +08:00
href="https://lupyuen.github.io">
2021-02-23 19:37:17 +08:00
<div class="cp el em">
2021-02-25 22:31:47 +08:00
<div class="as n en o p s eo ep eq er es cf"></div>
2021-02-23 19:37:17 +08:00
</div>
</a></div>
<div class="eu ai r">
<div class="n">
<div style="flex:1"><span class="bn b bo bp bq br r ef q">
<div class="ev n o ew"><span class="bn dj dk bp cu ex ey ez fa fb ef"><a
class="bh bi at au av aw ax ay az ba fc bd bl bm" rel="noopener"
2021-02-26 07:32:12 +08:00
href="https://lupyuen.github.io">Lup
2021-02-23 19:37:17 +08:00
Yuen Lee 李立源</a></span>
2021-02-25 16:37:54 +08:00
2021-02-23 19:37:17 +08:00
</div>
</span></div>
</div><span class="bn b bo bp bq br r bs bt"><span class="bn dj dk bp cu ex ey ez fa fb bs">
<div><a class="bh bi at au av aw ax ay az ba fc bd bl bm" rel="noopener"
2021-02-25 22:10:34 +08:00
href="https://lupyuen.github.io/articles/install-meshctl-on-raspberry-pi">
15 Oct 2019</a> <!-- -->·
2021-02-23 19:37:17 +08:00
<!-- -->
<!-- -->4
<!-- --> min read
</div>
</span></span>
</div>
</div>
</div>
</div>
</div>
<p id="91d0" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Follow these
instructions to install the Bluetooth Mesh provisioning tool <code
class="cy hh hi hj hk b">meshctl</code> for Raspberry Pi for the article <em class="hl"></em><a
class="bh fw hm hn ho hp" target="_blank" rel="noopener"
2021-02-25 16:46:23 +08:00
href="https://lupyuen.github.io/articles/bluetooth-mesh-with-nrf52-and-apache-mynewt"><em
2021-02-23 19:37:17 +08:00
class="hl">Bluetooth Mesh with nRF52 and Apache Mynewt</em></a><em class="hl"></em></p>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="7407" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">1. Install BlueZ
</h1>
<p id="8f74" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef"><code
class="cy hh hi hj hk b">meshctl</code> is part of the open-source BlueZ software suite (which
doesnt run on Windows and macOS, thats why we are using a Pi). BlueZ may be preinstalled on Pi but
the default installation lacks the <code class="cy hh hi hj hk b">meshctl</code> utility. Well
install BlueZ now with the <code class="cy hh hi hj hk b">meshctl</code> option…</p>
<p id="4bb0" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Refer to the
official guide by Bluetooth SIG:<br /><em class="hl"></em><a
2021-02-23 19:49:26 +08:00
href="https://3pl46c46ctx02p7rzdsvsg21-wpengine.netdna-ssl.com/wp-content/uploads/2019/03/T1804_How-to-set-up-BlueZ_LFC_FINAL-1.pdf?utm_campaign=developer&amp;utm_source=internal&amp;utm_medium=blog&amp;utm_content=Deploying-BlueZ-v5.50-on-Raspberry-Pi3-Update"
2021-02-23 19:37:17 +08:00
class="bh fw hm hn ho hp" target="_blank" rel="noopener nofollow"><em class="hl">Developer Study
Guide: Deploying BlueZ v5.50 on Raspberry Pi3, Part 1 — Deployment</em></a><em class="hl"></em>
</p>
<p id="a6a6" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Follow the
instructions in the sections…</p>
<p id="45f2" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><em
class="hl">“0. Prerequisite”</em></p>
<p id="8c11" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><em
class="hl">“1. Install BlueZ v5.50”</em></p>
<p id="903b" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><strong
class="gq iy">BUT stop before</strong> <em class="hl">“2. Rebuilding the kernel for BlueZ
v5.50”</em></p>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="1a41" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">2. Download Pi
Kernel Source Files</h1>
<p id="4dc0" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">We shall
rebuild the Pi kernel now. Why? Because <code class="cy hh hi hj hk b">meshctl</code> needs
AEAD-AES_CCM encryption, which runs as a secure service in the kernel. This may take an hour or more
to complete.</p>
<p id="cd37" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Enter the
following at a command prompt…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="c1da" class="ef jh ib bo hk b dk ji jj r jk">cd ~<br/>sudo apt-get install -y git bc bison flex libssl-dev<br/>uname -a</span></pre>
<p id="1020" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">You should see
a message like…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="ffa2" class="ef jh ib bo hk b dk ji jj r jk">Linux raspberrypi <strong class="hk iy">4.19</strong>.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux</span></pre>
<p id="85c7" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">See the <code
class="cy hh hi hj hk b">4.19</code> part? This is important — its the <strong
class="gq iy">Version Number</strong> for your Pi kernel. We need to fetch the kernel source files
for our kernel version, or our Pi wont boot after rebuilding the kernel.</p>
<p id="76a4" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Enter this
command…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="7f53" class="ef jh ib bo hk b dk ji jj r jk">git clone --depth=1 --branch rpi-<strong class="hk iy">4.19</strong>.y https://github.com/raspberrypi/linux</span></pre>
<p id="a69a" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><strong
class="gq iy">BUT replace </strong><code
class="cy hh hi hj hk b"><strong class="gq iy">4.19</strong></code><strong class="gq iy"> by your Pi
Kernel Version Number</strong>.</p>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="0528" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">3. Initialise Pi
Kernel Settings</h1>
<p id="ed14" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">We shall now
initialise the new Pi kernel to the default settings…</p>
<p id="2c40" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><strong
class="gq iy"><em class="hl">For Raspberry Pi 1, Pi Zero, Pi Zero W, and Compute Module,
enter…</em></strong></p>
<pre
class="iz ja jb jc jd je jf jg"><span id="b0f0" class="ef jh ib bo hk b dk ji jj r jk">cd linux<br/>KERNEL=kernel<br/>make bcmrpi_defconfig</span></pre>
<p id="5dc3" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><strong
class="gq iy"><em class="hl">For Raspberry Pi 2, Pi 3, Pi 3+, and Compute Module 3,
enter…</em></strong></p>
<pre
class="iz ja jb jc jd je jf jg"><span id="f3e3" class="ef jh ib bo hk b dk ji jj r jk">cd linux<br/>KERNEL=kernel7<br/>make bcm2709_defconfig</span></pre>
<p id="929b" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><strong
class="gq iy"><em class="hl">For Raspberry Pi 4, enter…</em></strong></p>
<pre
class="iz ja jb jc jd je jf jg"><span id="b650" class="ef jh ib bo hk b dk ji jj r jk">cd linux<br/>KERNEL=kernel7l<br/>make bcm2711_defconfig</span></pre>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="0fe1" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">4. Configure Pi
Kernel</h1>
<p id="d75b" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">Lets configure
the kernel and select the AEAD-AES_CCM encryption needed by <code
class="cy hh hi hj hk b">meshctl</code>. Enter…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="1e0f" class="ef jh ib bo hk b dk ji jj r jk">make menuconfig</span></pre>
<p id="61a5" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Press the arrow
keys to move the cursor to <code class="cy hh hi hj hk b">Cryptographic API.</code></p>
2021-02-25 21:05:13 +08:00
<div class="figure iz ja jb jc jd cl by bz paragraph-image">
2021-02-23 19:49:26 +08:00
2021-02-24 10:35:42 +08:00
<p><img src="https://lupyuen.github.io/images/legacy/m2.png" /></p>
2021-02-23 19:49:26 +08:00
2021-02-25 15:21:12 +08:00
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
<p id="2340" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Press <code
class="cy hh hi hj hk b">Enter</code></p>
<p id="3b2f" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Press the arrow
keys to move the cursor to each of these modules. Press <code class="cy hh hi hj hk b">S</code> to
select…</p>
<p id="5724" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">1<code
class="cy hh hi hj hk b">Hash Modes → CMAC support</code></p>
</div>
</div>
<div class="cl">
<div class="n p">
<div class="jn jo jp jq jr js ae jt af ju ah ai">
2021-02-25 21:05:13 +08:00
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
2021-02-23 19:49:26 +08:00
2021-02-24 10:35:42 +08:00
<p><img src="https://lupyuen.github.io/images/legacy/m3.png" /></p>
2021-02-23 19:49:26 +08:00
2021-02-25 15:21:12 +08:00
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
</div>
</div>
</div>
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<p id="5bcf" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">2<code
class="cy hh hi hj hk b">Random Number Generation → User-space interface for hash algorithms</code>
</p>
<p id="91de" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">3<code
class="cy hh hi hj hk b">Random Number Generation → User-space interface for symmetric key cipher algorithms</code>
</p>
</div>
</div>
<div class="cl">
<div class="n p">
<div class="jn jo jp jq jr js ae jt af ju ah ai">
2021-02-25 21:05:13 +08:00
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
2021-02-23 19:49:26 +08:00
2021-02-24 10:35:42 +08:00
<p><img src="https://lupyuen.github.io/images/legacy/m4.png" /></p>
2021-02-23 19:49:26 +08:00
2021-02-25 15:21:12 +08:00
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
</div>
</div>
</div>
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<p id="337e" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">You should see
<code class="cy hh hi hj hk b">(*)</code> when the module is selected.</p>
<p id="bea2" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Press <code
class="cy hh hi hj hk b">Esc</code> a few times until you see the prompt <code
class="cy hh hi hj hk b">Do you wish to save your new configuration</code></p>
</div>
</div>
<div class="cl">
<div class="n p">
<div class="jn jo jp jq jr js ae jt af ju ah ai">
2021-02-25 21:05:13 +08:00
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
2021-02-23 19:49:26 +08:00
2021-02-24 10:35:42 +08:00
<p><img src="https://lupyuen.github.io/images/legacy/m5.png" /></p>
2021-02-23 19:49:26 +08:00
2021-02-25 15:21:12 +08:00
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
</div>
</div>
</div>
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<p id="4468" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Select <code
class="cy hh hi hj hk b">Yes</code> and the command prompt reappears.</p>
<p id="9926" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Heres a video
that shows the steps…</p>
</div>
</div>
<div class="cl">
<div class="n p">
<div class="jn jo jp jq jr js ae jt af ju ah ai">
2021-02-25 21:05:13 +08:00
<div class="figure iz ja jb jc jd cl">
2021-02-24 18:55:57 +08:00
2021-02-24 19:10:42 +08:00
<p><a href="https://youtu.be/ETDOdd6daUY">[Watch video on YouTube]</a></p>
2021-02-24 18:55:57 +08:00
2021-02-25 15:21:12 +08:00
2021-02-25 21:00:07 +08:00
<figcaption><p><em>AEAD-AES_CCM encryption for meshctl on
Raspberry Pi</em></p></figcaption>
2021-02-25 21:05:13 +08:00
</div>
2021-02-23 19:37:17 +08:00
</div>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="0c72" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">5. Build Pi
Kernel</h1>
<p id="0b9c" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">Before building
the kernel, well backup the old kernel into <code class="cy hh hi hj hk b">/OLDboot</code> in case
the new kernel fails. Enter…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="09f5" class="ef jh ib bo hk b dk ji jj r jk">sudo cp -r /boot /OLDboot</span></pre>
<p id="4c2f" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Now we build
and install the kernel. Enter…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="a55e" class="ef jh ib bo hk b dk ji jj r jk">make -j4 zImage modules dtbs<br/>sudo make modules_install<br/>sudo cp arch/arm/boot/dts/*.dtb /boot/<br/>sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/<br/>sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/<br/>sudo cp arch/arm/boot/zImage /boot/$KERNEL.img<br/>sudo sync<br/>sudo reboot</span></pre>
<p id="b812" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">This kernel
build may take an hour or more to complete. When its done our Pi should reboot with the new kernel.
</p>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="1994" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">6. Test meshctl
</h1>
<p id="60eb" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">After
rebooting, open a command prompt and enter…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="5461" class="ef jh ib bo hk b dk ji jj r jk">meshctl</span></pre>
<p id="bd1d" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Press <code
class="cy hh hi hj hk b">Enter</code> to see the <code class="cy hh hi hj hk b">[meshctl]#</code>
prompt.</p>
<p id="ed4f" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">If you dont
see any errors, congratulations you have installed <code class="cy hh hi hj hk b">meshctl</code>!</p>
<p id="a8ea" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Enter this to
exit <code class="cy hh hi hj hk b">meshctl</code></p>
<pre
class="iz ja jb jc jd je jf jg"><span id="12b0" class="ef jh ib bo hk b dk ji jj r jk">exit</span></pre>
<p id="8874" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Remember:
Always exit <code class="cy hh hi hj hk b">meshctl</code> properly, otherwise it will lock on to the
Bluetooth driver and you would need to reboot the Pi to fix this.</p>
<p id="739a" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">If you see this
message instead…</p>
<pre
class="iz ja jb jc jd je jf jg"><span id="65fa" class="ef jh ib bo hk b dk ji jj r jk">Failed to parse provisioning database file prov_db.json</span></pre>
<p id="91b7" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">It means that
your kernel still doesnt have AEAD-AES_CCM encryption installed. Carefully redo each step from the
top of this article.</p>
</div>
</div>
</section>
<hr class="hq dj hr hs ht hu dg hv hw hx hy hz" />
<section class="cg ch ci cj ck">
<div class="n p">
<div class="z ab ac ae af dl ah ai">
<h1 id="86ba" class="ia ib bo bn ic id ie if ig ih ii ij ik il im in io ip iq ir is ef">References</h1>
<p id="34d7" class="go gp bo gq b gr it gt gu iu gw gx iv gz ha iw hc hd ix hf hg cg ef">If you have
problems configuring and building the Pi kernel, refer to the official guides…</p>
<ol class="">
<li id="12ce" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg jz ka kb ef"><em
class="hl">“</em><a
2021-02-23 19:49:26 +08:00
href="https://www.raspberrypi.org/documentation/linux/kernel/building.md"
2021-02-23 19:37:17 +08:00
class="bh fw hm hn ho hp" target="_blank" rel="noopener nofollow"><em class="hl">Kernel
Building</em></a><em class="hl"></em></li>
<li id="1c28" class="go gp bo gq b gr kc gt gu kd gw gx ke gz ha kf hc hd kg hf hg jz ka kb ef"><em
class="hl">“</em><a
2021-02-23 19:49:26 +08:00
href="https://www.raspberrypi.org/documentation/linux/kernel/configuring.md"
2021-02-23 19:37:17 +08:00
class="bh fw hm hn ho hp" target="_blank" rel="noopener nofollow"><em class="hl">Configuring The
Kernel</em></a><em class="hl"></em></li>
</ol>
<p id="b701" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">If you have
problems provisioning the Bluetooth Mesh, refer to the official guide by Bluetooth SIG…</p>
<p id="c676" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><em
class="hl">“</em><a
2021-02-23 19:49:26 +08:00
href="https://3pl46c46ctx02p7rzdsvsg21-wpengine.netdna-ssl.com/wp-content/uploads/2019/03/Tutorial-How-to-set-up-BlueZ_Part2-3.pdf?utm_campaign=developer&amp;utm_source=internal&amp;utm_medium=blog&amp;utm_content=Deploying-BlueZ-v5.50-on-Raspberry-Pi3-Update"
2021-02-23 19:37:17 +08:00
class="bh fw hm hn ho hp" target="_blank" rel="noopener nofollow"><em class="hl">How to Deploy BlueZ
v5.50 on Raspberry Pi 3 and Use It, Part 2 — Provisioning</em></a><em class="hl"></em></p>
<p id="cbbf" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef">Here is an
excellent series of articles on Bluetooth Mesh for Zephyr embedded OS…</p>
<p id="2f43" class="go gp bo gq b gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg cg ef"><em
class="hl">“</em><a
2021-02-23 19:49:26 +08:00
href="https://www.96boards.org/blog/patient-monitoring-system-part4/"
2021-02-23 19:37:17 +08:00
class="bh fw hm hn ho hp" target="_blank" rel="noopener nofollow"><em class="hl">Patient Monitoring
System using 96Boards</em></a><em class="hl"></em></p>
</div>
</div>
</section>
</div>
</article>
</div>
</div>
2021-02-26 20:10:47 +08:00
<ul>
<li>
<p><a href="https://github.com/sponsors/lupyuen">Sponsor me a coffee</a></p>
</li>
<li>
<p><a href="https://lupyuen.github.io">Check out my articles</a></p>
</li>
<li>
<p><a href="https://lupyuen.github.io/rss.xml">RSS Feed</a></p>
</li>
</ul>
2021-02-23 19:37:17 +08:00
</body>
</html>
<!--
FILE ARCHIVED ON 08:36:09 Jul 17, 2020 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 11:35:57 Feb 23, 2021.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
-->
<!--
playback timings (ms):
exclusion.robots.policy: 0.347
captures_list: 86.975
exclusion.robots: 0.365
RedisCDXSource: 1.823
PetaboxLoader3.resolve: 26.596
esindex: 0.017
CDXLines.iter: 29.229 (3)
LoadShardBlock: 51.06 (3)
PetaboxLoader3.datanode: 727.886 (4)
load_resource: 720.111
-->