知行合一
Advent Calendar 2022 29日目1の記事です。
I'm ready for 12/25,2022
I'm looking forward to 12/25,2022
I can't wait for 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
Elixirを楽しんでいますか
Nerves Tip #18 - Revert to the previously loaded firmware
— Jon Jon (@JonCarstens) January 28, 2022
Run `Nerves.Runtime.revert` to go back to the previously loaded firmware.#NervesTips #MyElixirStatus
Nerves.Runtime.revert/1を試してみます。
Nervesをやったことがある方に向けて書いています。
以下のコマンドを使ったことがあるくらいの知識で大丈夫です。
$ mix local.hex
$ mix local.rebar
$ mix archive.install hex nerves_bootstrap
$ mix nerves.new hello_nerves
$ cd hello_nerves
$ export MIX_TARGET=rpi4
$ mix deps.get
$ mix firmware
$ mix burn
Nerves.Runtime.revert/1
Nervesには、A面とB面がありまして2つのファームウェアを書き込むことができます。
どちらか一方がアクティブになります。
ふつうはOTA(Over the Air)でファームウェアを書き換えたときに、自動でアクティブ面が切り替わります。
Nerves.Runtime.revert/1を使うことで、任意のタイミングでアクティブな面を切り替えることができます。
Jon Jonさんのツイートで私ははじめて知りました。
実際に使ってみる
Nerves Livebookを使います。
以下に予めビルドされたファームウェアがあります。
私は、nerves_livebook_rpi4.fw
をダウンロードして使いました。
v0.5.1とv0.5.0を焼いてみます。
以下の手順でやってみました。
-
fwup
で、Nerves Livebookのv0.5.1を焼く -
./upload.sh
で、Nerves Livebookのv0.5.0 - Nerves Livebookのv0.5.0でグラフが動かないことを確認する
- Nerves.Runtime.revert/1 でB面のv0.5.1に切り替える
- v0.5.1のため、グラフ表示ができることを確認する
ちなみに
なにを隠そう、私がIssueを書いて、 @mnishiguchi さんが追試と解析をしてくれて、v0.5.1で解決しています。
$\huge{その一歩は我々人類にとって大きな進撃になる!!}$
バンドメンバを紹介します〜
なんちゃって。
上記がグラフが表示できなくなってしまった問題の解決に立ち向かったメンバーです。
とまれ、Nerves.Runtime.revert/1を使ってみる話に戻します。
以下、詳細です。
Nerves Livebook v0.5.1を焼いて動かす
$ fwup nerves_livebook_rpi4.fw # v0.5.1
microSDカードを挿し込んでRun!
v0.5.1が動き始めます。
upload.shをつくる
適当なNervesプロジェクトが必要です(たぶん)
$ export MIX_TARGET=rpi4
$ mix firmware.gen.script
Nerves Livebook v0.5.0をOTA(Over the Air)で焼く
$ ./upload.sh nerves.local nerves_livebook_rpi4.fw # v0.5.0
passwordは、nerves
です。
さら〜っと書いていますが、
$\huge{Over\ the\ Air🚀}$
ですよ!、奥さん!
一度再起動がかかります。
10秒くらい待ちましょう。
焦りは禁物です。
Nerves Livebook v0.5.0でグラフが表示されないことを確認する
さきほどの手順で、v0.5.0が動いています。
このv0.5.0では、グラフ表示ができない問題があります。
うん、表示されないね
ssh nerves.local
$ ssh nerves.local
passwordは、nerves
です。
sshでNervesに接続できたら、あとは一生Elixirを楽しめます。
Nerves.Runtime.revert/1
今日は、Nerves.Runtime.revert/1を楽しんでみます。
iex> Nerves.Runtime.revert
上記のコマンドで、v0.5.0 => v0.5.1に変わります。
もちろん、一度再起動がかかります。
10秒ほどお待ちください。
焦りは禁物です。
Nerves Livebook v0.5.1でグラフが表示されることを確認する
さきほどの手順で、v0.5.1が動くようになりました。
このv0.5.1では、グラフ表示ができるはずです。
確かめてみます。
表示されました!
Wrapping up
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
Nerves.Runtime.revert/1を使ってみました。
楽しみました。
デバッグでいろいろ使えそうです。
2022年に流行る技術予想 ーー それは、Elixir、Phoenix LiveView、Livebook、Nerves Livebookです
Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。
iex> Date.diff(~D[2022-05-24], ~D[2022-01-29])
115
そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirとPhoenixの特集がでますよ〜
次号のWEB+DB PRESSでElixirとPhoenix特集が出ます!お楽しみに!!1 pic.twitter.com/d4hIfhIfZ1
— 栗林健太郎 (@kentaro) January 18, 2022
I organize autoracex.
And I belong to NervesJP, fukuoka.ex, EDI.
I hope someday you'll join us.
We Are The Alchemists, my friends!