mirror of
https://github.com/lupyuen/lupyuen.github.io.git
synced 2025-01-13 09:08:30 +08:00
446 lines
No EOL
27 KiB
HTML
446 lines
No EOL
27 KiB
HTML
<!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" />
|
||
<link rel="canonical" href="https://lupyuen.org/articles/install-meshctl-on-raspberry-pi.html" />
|
||
<!-- 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" />
|
||
<meta property="og:image"
|
||
content="https://lupyuen.github.io/images/legacy/m1.jpeg">
|
||
|
||
<!-- 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">
|
||
|
||
<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");
|
||
}
|
||
a {
|
||
color: #77d;
|
||
}
|
||
</style>
|
||
<!-- End scripts/rustdoc-header.html -->
|
||
|
||
</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">
|
||
<div class="figure cm cl ai paragraph-image">
|
||
|
||
<p><img src="https://lupyuen.github.io/images/legacy/m1.jpeg" /></p>
|
||
|
||
|
||
<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>
|
||
</div>
|
||
</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"
|
||
href="https://lupyuen.github.io">
|
||
<div class="cp el em">
|
||
<div class="as n en o p s eo ep eq er es cf"></div>
|
||
|
||
</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"
|
||
href="https://lupyuen.github.io">Lup
|
||
Yuen Lee 李立源</a></span>
|
||
|
||
</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"
|
||
href="https://lupyuen.github.io/articles/install-meshctl-on-raspberry-pi">
|
||
15 Oct 2019</a> <!-- -->·
|
||
<!-- -->
|
||
<!-- -->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"
|
||
href="https://lupyuen.github.io/articles/bluetooth-mesh-with-nrf52-and-apache-mynewt"><em
|
||
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
|
||
doesn’t run on Windows and macOS, that’s 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. We’ll
|
||
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
|
||
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&utm_source=internal&utm_medium=blog&utm_content=Deploying-BlueZ-v5.50-on-Raspberry-Pi3-Update"
|
||
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 — it’s 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 won’t 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">Let’s 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>
|
||
<div class="figure iz ja jb jc jd cl by bz paragraph-image">
|
||
|
||
<p><img src="https://lupyuen.github.io/images/legacy/m2.png" /></p>
|
||
|
||
|
||
</div>
|
||
<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">
|
||
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
|
||
|
||
<p><img src="https://lupyuen.github.io/images/legacy/m3.png" /></p>
|
||
|
||
|
||
</div>
|
||
</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">
|
||
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
|
||
|
||
<p><img src="https://lupyuen.github.io/images/legacy/m4.png" /></p>
|
||
|
||
|
||
</div>
|
||
</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">
|
||
<div class="figure iz ja jb jc jd cl jv jw paragraph-image">
|
||
|
||
<p><img src="https://lupyuen.github.io/images/legacy/m5.png" /></p>
|
||
|
||
|
||
</div>
|
||
</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">Here’s 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">
|
||
<div class="figure iz ja jb jc jd cl">
|
||
|
||
<p><a href="https://youtu.be/ETDOdd6daUY">[Watch video on YouTube]</a></p>
|
||
|
||
|
||
<figcaption><p><em>AEAD-AES_CCM encryption for meshctl on
|
||
Raspberry Pi</em></p></figcaption>
|
||
</div>
|
||
</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, we’ll 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 it’s 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 don’t
|
||
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 doesn’t 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
|
||
href="https://www.raspberrypi.org/documentation/linux/kernel/building.md"
|
||
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
|
||
href="https://www.raspberrypi.org/documentation/linux/kernel/configuring.md"
|
||
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
|
||
href="https://3pl46c46ctx02p7rzdsvsg21-wpengine.netdna-ssl.com/wp-content/uploads/2019/03/Tutorial-How-to-set-up-BlueZ_Part2-3.pdf?utm_campaign=developer&utm_source=internal&utm_medium=blog&utm_content=Deploying-BlueZ-v5.50-on-Raspberry-Pi3-Update"
|
||
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
|
||
href="https://www.96boards.org/blog/patient-monitoring-system-part4/"
|
||
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>
|
||
|
||
<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>
|
||
|
||
</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
|
||
--> |