LoginSignup
2
2

More than 1 year has passed since last update.

wslでnerves その7

Last updated at Posted at 2023-01-14

概要

wsl(wsl2じゃない)でnervesやってみる。
qemu(x86_64エミュレータ、ラズパイじゃない)でやってみた。
練習問題やってみた。

練習問題

ssh接続せよ。

方針

wslのubuntuから、qemuにsshする。

qemu起動手順

port 10022

"C:\Program Files\qemu\qemu-system-x86_64.exe" -drive file="hello_nerves.img",if=virtio,format=raw -net nic,model=virtio -net user,hostfwd=tcp::10022-:22,hostfwd=tcp::5300-:5300 -serial stdio

ssh接続手順

$ ssh -p 10022 localhost
The authenticity of host '[localhost]:10022 ([127.0.0.1]:10022)' can't be established.
ED25519 key fingerprint is SHA256:Bh9x6IA3Jr6neN6VjaNCtvM7+F5EZRaVQRfIJPtSyNs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:10022' (ED25519) to the list of known hosts.
Interactive Elixir (1.13.4) - press Ctrl+C to exit (type h() ENTER for help)
??????    ????
??  ??????  ??
??  ??  ??  ??   N  E  R  V  E  S
??  ??????  ??
????    ??????
hello_nerves 0.1.0 (b635da3d-e2de-5870-b878-d6d6630f4053) x86_64 x86_64
  Uptime       : 27 minutes and 5 seconds
  Clock        : 2023-01-14 22:25:02 UTC

  Firmware     : Valid (A)               Applications : 36 started
  Memory usage : 54 MB (48%)             Part usage   : 0 MB (0%)
  Hostname     : nerves-3456             Load average : 0.00 0.00 0.09

  eth0         : 10.0.2.15/24, fec0::5054:ff:fe12:3456/64, fe80::5054:ff:fe12:3456/64

Nerves CLI help: https://hexdocs.pm/nerves/iex-with-nerves.html

Toolshed imported. Run h(Toolshed) for more info.
iex(1)> :erlang.processes
[#PID<0.0.0>, #PID<0.1.0>, #PID<0.2.0>, #PID<0.3.0>, #PID<0.4.0>, #PID<0.5.0>,
 #PID<0.6.0>, #PID<0.7.0>, #PID<0.10.0>, #PID<0.877.0>, #PID<0.878.0>,
 #PID<0.880.0>, #PID<0.882.0>, #PID<0.883.0>, #PID<0.885.0>, #PID<0.886.0>,
 #PID<0.887.0>, #PID<0.889.0>, #PID<0.890.0>, #PID<0.891.0>, #PID<0.892.0>,
 #PID<0.893.0>, #PID<0.894.0>, #PID<0.895.0>, #PID<0.896.0>, #PID<0.897.0>,
 #PID<0.898.0>, #PID<0.899.0>, #PID<0.900.0>, #PID<0.901.0>, #PID<0.902.0>,
 #PID<0.903.0>, #PID<0.904.0>, #PID<0.905.0>, #PID<0.906.0>, #PID<0.911.0>,
 #PID<0.912.0>, #PID<0.913.0>, #PID<0.917.0>, #PID<0.918.0>, #PID<0.922.0>,
 #PID<0.926.0>, #PID<0.927.0>, #PID<0.928.0>, #PID<0.929.0>, #PID<0.930.0>,
 #PID<0.932.0>, #PID<0.933.0>, #PID<0.934.0>, #PID<0.935.0>, ...]
iex(2)> |> length
160
iex(3)> Application.loaded_applications()
[
  {:crypto, 'CRYPTO', '5.1.2'},
  {:public_key, 'Public key infrastructure', '1.13.2'},
  {:vintage_net_direct, 'Direct Ethernet networking for VintageNet', '0.10.6'},
  {:shoehorn, 'Shoehorn helps you handle OTP application failures', '0.9.1'},
  {:logger, 'logger', '1.13.4'},
  {:beam_notify, 'Send a message to the BEAM from a shell script', '1.0.0'},
  {:gen_state_machine, 'An Elixir wrapper for gen_statem.', '3.0.0'},
  {:elixir, 'elixir', '1.13.4'},
  {:property_table, 'In-memory key-value store with subscriptions', '0.2.2'},
  {:kernel, 'ERTS  CXC 138 10', '8.5.2'},
  {:nerves_runtime, 'Small, general runtime utilities for Nerves devices',
   '0.13.3'},
  {:vintage_net, 'Network configuration and management for Nerves', '0.12.2'},
  {:iex, 'iex', '1.13.4'},
  {:stdlib, 'ERTS  CXC 138 10', '4.2'},
  {:runtime_tools, 'RUNTIME_TOOLS', '1.19'},
  {:circular_buffer, 'General purpose circular buffer.\n', '0.4.1'},
  {:sasl, 'SASL  CXC 138 11', '4.2'},
  {:ring_logger, 'A ring buffer backend for Elixir Logger with IO streaming',
   '0.8.6'},
  {:nerves_motd, 'Message of the day for Nerves devices', '0.1.9'},
  {:ssh_subsystem_fwup,
   'Over-the-air updates to Nerves devices via an ssh subsystem', '0.6.1'},
  {:nerves_logging, 'Route system log messages through the Elixir logger',
   '0.2.0'},
  {:uboot_env, 'Read and write to U-Boot environment blocks', '1.0.1'},
  {:toolshed, 'Use Toolshed for path completion and more helpers for IEx',
   '0.2.26'},
  {:vintage_net_wifi, 'WiFi networking for VintageNet', '0.11.1'},
  {:muontrap, 'Keep your ports contained', '1.1.0'},
  {:asn1, 'The Erlang ASN1 compiler version 5.0.21', '5.0.21'},
  {:nerves_time, 'Keep time in sync on Nerves devices', '0.4.5'},
  {:vintage_net_ethernet, 'Ethernet networking for VintageNet', '0.11.0'},
  {:nerves_uevent,
   'Simple UEvent monitor for detecting hardware and automatically loading drivers',
   '0.1.0'},
  {:mdns_lite, 'A simple, no frills mDNS implementation in Elixir', '0.8.6'},
  {:nerves_pack, 'Initialization setup for Nerves devices', '0.7.0'},
  {:compiler, 'ERTS  CXC 138 10', '8.2.2'},
  {:ssh, 'SSH-2 for Erlang/OTP', '4.15.1'},
  {:one_dhcpd, 'One address DHCP server', '2.0.1'},
  {:hello_nerves, 'hello_nerves', '0.1.0'},
  {:nerves_ssh, 'Manage a SSH daemon and subsystems on Nerves devices', '0.4.1'}
]
iex(4)> Application.get_all_env(:ex)
[]
iex(5)> 



以上。

2
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
2
2