LoginSignup
7
2

More than 3 years have passed since last update.

NervesでShellに落ちた

Last updated at Posted at 2019-12-26

NervesにsshするとElixirのiexが起動している状態になっています。
いや、本来Linuxで動きゆきシェル使いたいやんって思ったので調べてみました。

やり方

mix.exsに以下の設定を追記します。

mix.exs
 defp deps do
    [
      (略)
      # 追加
      {:nerves_network, "~> 0.5", targets: @all_targets},
      {:nerves_firmware_ssh, "~> 0.3"}, targets: @all_targets},
      {:nerves_runtime_shell, "~> 0.1.0", targets: @all_targets} ←今回追記した行
    ]
  end

この状態でファームウェアを更新します。

bash
$ mix deps.get
$ mix firmaware
$ ./upload.sh NervesのIPアドレス

Nervesにログインして確認します。
Ctrl+Gする(コントロールキーを押しながらgを押す)とiexに戻ることができます。

iex
$ ssh NervesのIPアドレス

iex> Nerves.Runtime.Shell.start
#PID<0.1069.0>
Nerves Interactive Command Shell

Type Ctrl+G to exit the shell and return to Erlang job control.
This is not a normal shell, so try not to type Ctrl+C.

/srv/erlang[1]> ※Ctrl+Gを押す

iex>

なんだかうまく抜けられない時は、いろいろ試しているなかで成功率が高かったので以下を試してみてください。

iex
/srv/erlang[1]> ※Ctrl+Gを押す→でも何もおこならい

/srv/erlang[2]> exit
Interactive shell port exited with status 0
/srv/erlang[3]> ※Ctrl+Gを押す

iex>

まとめ

Shellに落ちることができました\(^o^)/
でも、フツーのLinuxなどで利用できるコマンドはほとんどなく何ができて何ができないのかも分かりません。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2