概要
wsl(wsl2じゃない)でnervesやってみる。
qemu(x86_64エミュレータ、ラズパイじゃない)でやってみた。
nerves_livebookに、手出してみた。
環境
windows 10
ubuntu 20.04LTS(WSL)
手順
$ git clone https://github.com/nerves-livebook/nerves_livebook.git
$ cd nerves_livebook
エラー発生
$ mix deps.get
No preset version installed for command mix
Please install a version by running one of the following:
asdf install elixir 1.15.6-otp-26
or add one of the following versions in your config file at /home/ore/elixir/nerves_livebook/.tool-versions
elixir 1.15.7-otp-26
対処
$ asdf install elixir 1.15.6-otp-26
==> Checking whether specified Elixir release exists...
==> Downloading 1.15.6-otp-26 to /home/ore/.asdf/downloads/elixir/1.15.6-otp-26/elixir-precompiled-1.15.6-otp-26.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6645k 100 6645k 0 0 4757k 0 0:00:01 0:00:01 --:--:-- 4757k
==> Copying release into place
$ elixir -v
No preset version installed for command erl
Please install a version by running one of the following:
asdf install erlang 26.1.1
or add one of the following versions in your config file at /home/ore/elixir/nerves_livebook/.tool-versions
erlang 26.1.2
$ asdf install erlang 26.1.1
asdf_26.1.1 is not a kerl-managed Erlang/OTP installation
No build named asdf_26.1.1
Downloading 26.1.1 to /home/ore/.asdf/downloads/erlang/26.1.1...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 102M 100 102M 0 0 7929k 0 0:00:13 0:00:13 --:--:-- 7873k
Extracting source code
Building Erlang/OTP 26.1.1 (asdf_26.1.1), please wait...
APPLICATIONS DISABLED (See: /home/ore/.asdf/plugins/erlang/kerl-home/builds/asdf_26.1.1/otp_build_26.1.1.log)
* jinterface : No Java compiler found
* odbc : ODBC library - link check failed
APPLICATIONS INFORMATION (See: /home/ore/.asdf/plugins/erlang/kerl-home/builds/asdf_26.1.1/otp_build_26.1.1.log)
* wx : No OpenGL headers found, wx will NOT be usable
* No GLU headers found, wx will NOT be usable
* wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available
* wxWidgets must be installed on your system.
* Please check that wx-config is in path, the directory
* where wxWidgets libraries are installed (returned by
* 'wx-config --libs' or 'wx-config --static --libs' command)
* is in LD_LIBRARY_PATH or equivalent variable and
* wxWidgets version is 3.0.2 or above.
DOCUMENTATION INFORMATION (See: /home/ore/.asdf/plugins/erlang/kerl-home/builds/asdf_26.1.1/otp_build_26.1.1.log)
* documentation :
* xsltproc is missing.
* fop is missing.
* xmllint is missing.
* The documentation cannot be built.
Erlang/OTP 26.1.1 (asdf_26.1.1) has been successfully built
Cleaning up compilation products for 26.1.1
Cleaned up compilation products for 26.1.1 under /home/ore/.asdf/plugins/erlang/kerl-home/builds
$ elixir -v
Erlang/OTP 26 [erts-14.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
Elixir 1.15.6 (compiled with Erlang/OTP 26)
$ mix deps.get
** (Mix) Archive "nerves_bootstrap" could not be found. Please make sure the archive is installed locally.
$ mix local.hex
Are you sure you want to install "https://builds.hex.pm/installs/1.14.0/hex-2.0.6.ez"? [Yn] y
* creating /home/ore/.asdf/installs/elixir/1.15.6-otp-26/.mix/archives/hex-2.0.6
$ mix local.rebar
* creating /home/ore/.asdf/installs/elixir/1.15.6-otp-26/.mix/elixir/1-15/rebar3
ore@DESKTOP-PGIJSCM:~/elixir/nerves_livebook$ mix archive.install hex nerves_bootstrap
Resolving Hex dependencies...
Resolution completed in 0.026s
New:
nerves_bootstrap 1.12.1
* Getting nerves_bootstrap (Hex package)
All dependencies are up to date
Compiling 5 files (.ex)
Generated nerves_bootstrap app
Generated archive "nerves_bootstrap-1.12.1.ez" with MIX_ENV=prod
Are you sure you want to install "nerves_bootstrap-1.12.1.ez"? [Yn] y
* creating /home/ore/.asdf/installs/elixir/1.15.6-otp-26/.mix/archives/nerves_bootstrap-1.12.1
$ mix deps.get
Resolving Hex dependencies...
Resolution completed in 0.847s
Unchanged:
atecc508a 1.2.1
aws_signature 0.3.1
beam_notify 1.1.0
blue_heron 0.4.1
blue_heron_transport_uart 0.1.4
bmp280 0.2.12
bunt 0.2.1
castore 1.0.4
cc_precompiler 0.1.8
circuits_gpio 1.1.0
circuits_i2c 1.2.2
circuits_spi 2.0.0
circuits_uart 1.5.1
circular_buffer 0.4.1
complex 0.5.0
cowboy 2.10.0
cowboy_telemetry 0.4.0
cowlib 2.12.1
credo 1.7.1
decimal 2.1.1
delux 0.4.1
dialyxir 1.4.2
dns_cluster 0.1.1
earmark_parser 1.4.37
ecto 3.10.3
elixir_make 0.7.7
erlex 0.2.6
ex_doc 0.30.9
file_system 0.2.10
finch 0.16.0
fss 0.1.1
gen_state_machine 3.0.0
geo 3.6.0
hpax 0.1.2
hts221 1.0.0
input_event 1.4.2
jason 1.4.1
jose 1.11.6
kino 0.11.2
kino_maplibre 0.1.10
kino_vega_lite 0.1.10
livebook 0.11.4
makeup 1.1.1
makeup_elixir 0.16.1
makeup_erlang 0.1.2
maplibre 0.1.6
mdns_lite 0.8.8
mime 2.0.5
mint 1.5.1
mint_web_socket 1.0.3
muontrap 1.3.2
nerves 1.10.4
nerves_key 1.2.0
nerves_key_pkcs11 1.2.0
nerves_logging 0.2.2
nerves_motd 0.1.13
nerves_pack 0.7.0
nerves_runtime 0.13.6
nerves_ssh 0.4.3
nerves_system_bbb 2.19.1
nerves_system_br 1.24.1
nerves_system_grisp2 0.8.1
nerves_system_mangopi_mq_pro 0.6.1
nerves_system_npi_imx6ull 0.12.1
nerves_system_osd32mp1 0.15.1
nerves_system_rpi 1.24.1
nerves_system_rpi0 1.24.1
nerves_system_rpi2 1.24.1
nerves_system_rpi3 1.24.1
nerves_system_rpi3a 1.24.1
nerves_system_rpi4 1.24.1
nerves_system_srhub 0.29.1
nerves_system_x86_64 1.24.1
nerves_time 0.4.6
nerves_time_zones 0.3.3
nerves_toolchain_aarch64_nerves_linux_gnu 1.8.0
nerves_toolchain_armv6_nerves_linux_gnueabihf 1.8.0
nerves_toolchain_armv7_nerves_linux_gnueabihf 1.8.0
nerves_toolchain_ctng 1.9.3
nerves_toolchain_riscv64_nerves_linux_gnu 1.8.0
nerves_toolchain_x86_64_nerves_linux_musl 1.8.0
nerves_uevent 0.1.0
nimble_options 1.0.2
nimble_parsec 1.4.0
nimble_pool 1.0.0
nx 0.6.3
one_dhcpd 2.0.2
phoenix 1.7.8
phoenix_ecto 4.4.2
phoenix_html 3.3.2
phoenix_live_dashboard 0.8.2
phoenix_live_view 0.20.1
phoenix_pubsub 2.1.3
phoenix_template 1.0.3
picam 0.4.1
pigpiox 0.1.2
pinout 0.1.3
plug 1.15.1
plug_cowboy 2.6.1
plug_crypto 2.0.0
progress_bar 3.0.0
property_table 0.2.4
protobuf 0.8.0
qmi 0.8.6
ramoops_logger 0.3.1
ranch 1.8.0
recon 2.5.4
req 0.4.5
ring_logger 0.11.1
sbom 0.6.2
scroll_hat 0.2.1
shoehorn 0.9.1
ssh_subsystem_fwup 0.6.1
stb_image 0.6.4
table 0.1.2
telemetry 1.2.1
telemetry_metrics 0.6.1
telemetry_poller 1.0.0
tflite_beam 0.3.3
tflite_elixir 0.3.4
toolshed 0.3.1
uboot_env 1.0.1
vega_lite 0.1.8
vintage_net 0.13.5
vintage_net_direct 0.10.7
vintage_net_ethernet 0.11.2
vintage_net_mobile 0.11.4
vintage_net_qmi 0.3.5
vintage_net_wifi 0.11.7
websock 0.5.3
websock_adapter 0.5.5
x509 0.8.8
zoneinfo 0.1.7
* Getting nerves (Hex package)
* Getting shoehorn (Hex package)
* Getting ring_logger (Hex package)
* Getting toolshed (Hex package)
* Getting jason (Hex package)
* Getting nerves_runtime (Hex package)
* Getting livebook (Hex package)
* Getting plug (Hex package)
* Getting vintage_net (Hex package)
* Getting blue_heron (Hex package)
* Getting blue_heron_transport_uart (Hex package)
* Getting bmp280 (Hex package)
* Getting circuits_gpio (Hex package)
* Getting circuits_i2c (Hex package)
* Getting circuits_spi (Hex package)
* Getting circuits_uart (Hex package)
* Getting delux (Hex package)
* Getting hts221 (Hex package)
* Getting input_event (Hex package)
* Getting kino (Hex package)
* Getting kino_maplibre (Hex package)
* Getting kino_vega_lite (Hex package)
* Getting maplibre (Hex package)
* Getting nerves_key (Hex package)
* Getting nerves_pack (Hex package)
* Getting nerves_time_zones (Hex package)
* Getting nx (Hex package)
* Getting phoenix_pubsub (Hex package)
* Getting picam (Hex package)
* Getting pigpiox (Hex package)
* Getting pinout (Hex package)
* Getting progress_bar (Hex package)
* Getting ramoops_logger (Hex package)
* Getting recon (Hex package)
* Getting req (Hex package)
* Getting scroll_hat (Hex package)
* Getting stb_image (Hex package)
* Getting tflite_elixir (Hex package)
* Getting vega_lite (Hex package)
* Getting vintage_net_mobile (Hex package)
* Getting vintage_net_qmi (Hex package)
* Getting nerves_system_rpi (Hex package)
* Getting nerves_system_rpi0 (Hex package)
* Getting nerves_system_rpi2 (Hex package)
* Getting nerves_system_rpi3 (Hex package)
* Getting nerves_system_rpi3a (Hex package)
* Getting nerves_system_rpi4 (Hex package)
* Getting nerves_system_bbb (Hex package)
* Getting nerves_system_osd32mp1 (Hex package)
* Getting nerves_system_x86_64 (Hex package)
* Getting nerves_system_npi_imx6ull (Hex package)
* Getting nerves_system_grisp2 (Hex package)
* Getting nerves_system_mangopi_mq_pro (Hex package)
* Getting nerves_system_srhub (Hex package)
* Getting credo (Hex package)
* Getting dialyxir (Hex package)
* Getting ex_doc (Hex package)
* Getting sbom (Hex package)
* Getting earmark_parser (Hex package)
* Getting makeup_elixir (Hex package)
* Getting makeup_erlang (Hex package)
* Getting makeup (Hex package)
* Getting nimble_parsec (Hex package)
* Getting erlex (Hex package)
* Getting bunt (Hex package)
* Getting file_system (Hex package)
* Getting nerves_system_br (Hex package)
* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)
* Getting nerves_toolchain_ctng (Hex package)
* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)
* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)
* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)
* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)
* Getting qmi (Hex package)
* Getting elixir_make (Hex package)
* Getting muontrap (Hex package)
* Getting table (Hex package)
* Getting tflite_beam (Hex package)
* Getting cc_precompiler (Hex package)
* Getting finch (Hex package)
* Getting mime (Hex package)
* Getting castore (Hex package)
* Getting mint (Hex package)
* Getting nimble_options (Hex package)
* Getting nimble_pool (Hex package)
* Getting telemetry (Hex package)
* Getting hpax (Hex package)
* Getting decimal (Hex package)
* Getting complex (Hex package)
* Getting zoneinfo (Hex package)
* Getting mdns_lite (Hex package)
* Getting nerves_motd (Hex package)
* Getting nerves_ssh (Hex package)
* Getting nerves_time (Hex package)
* Getting vintage_net_direct (Hex package)
* Getting vintage_net_ethernet (Hex package)
* Getting vintage_net_wifi (Hex package)
* Getting one_dhcpd (Hex package)
* Getting ssh_subsystem_fwup (Hex package)
* Getting atecc508a (Hex package)
* Getting nerves_key_pkcs11 (Hex package)
* Getting x509 (Hex package)
* Getting geo (Hex package)
* Getting fss (Hex package)
* Getting beam_notify (Hex package)
* Getting gen_state_machine (Hex package)
* Getting property_table (Hex package)
* Getting plug_crypto (Hex package)
* Getting aws_signature (Hex package)
* Getting dns_cluster (Hex package)
* Getting ecto (Hex package)
* Getting jose (Hex package)
* Getting mint_web_socket (Hex package)
* Getting phoenix (Hex package)
* Getting phoenix_ecto (Hex package)
* Getting phoenix_html (Hex package)
* Getting phoenix_live_dashboard (Hex package)
* Getting phoenix_live_view (Hex package)
* Getting plug_cowboy (Hex package)
* Getting protobuf (Hex package)
* Getting telemetry_metrics (Hex package)
* Getting telemetry_poller (Hex package)
* Getting cowboy (Hex package)
* Getting cowboy_telemetry (Hex package)
* Getting cowlib (Hex package)
* Getting ranch (Hex package)
* Getting phoenix_template (Hex package)
* Getting websock_adapter (Hex package)
* Getting websock (Hex package)
* Getting nerves_logging (Hex package)
* Getting nerves_uevent (Hex package)
* Getting uboot_env (Hex package)
* Getting circular_buffer (Hex package)
You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more
==> decimal
Compiling 4 files (.ex)
Generated decimal app
==> jason
Compiling 10 files (.ex)
Generated jason app
==> castore
Compiling 1 file (.ex)
Generated castore app
==> elixir_make
Compiling 6 files (.ex)
Generated elixir_make app
==> nerves
HOST_CC port.o
HOST_LD port
Compiling 50 files (.ex)
Generated nerves app
==> nerves_livebook
Nerves environment
MIX_TARGET: x86_64
MIX_ENV: dev
Checking for prebuilt Nerves artifacts...
Found nerves_system_x86_64 in cache
/home/ore/.nerves/artifacts/nerves_system_x86_64-portable-1.24.1
Found nerves_toolchain_x86_64_nerves_linux_musl in cache
/home/ore/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_x86_64-1.8.0
エラー発生
$ mix firmware.image
==> nerves
==> nerves_system_br
Generated nerves_system_br app
==> nerves_toolchain_ctng
Compiling 1 file (.ex)
Generated nerves_toolchain_ctng app
==> nerves_toolchain_x86_64_nerves_linux_musl
Generated nerves_toolchain_x86_64_nerves_linux_musl app
==> nerves_system_x86_64
Compiling 1 file (.ex)
Generated nerves_system_x86_64 app
==> nerves_livebook
Nerves environment
MIX_TARGET: x86_64
MIX_ENV: dev
==> earmark_parser
Compiling 2 files (.xrl)
Compiling 1 file (.yrl)
Compiling 3 files (.erl)
Compiling 46 files (.ex)
Generated earmark_parser app
==> gen_state_machine
Compiling 3 files (.ex)
Generated gen_state_machine app
==> file_system
Compiling 7 files (.ex)
Generated file_system app
===> Analyzing applications...
===> Compiling aws_signature
==> progress_bar
Compiling 10 files (.ex)
Generated progress_bar app
==> shoehorn
Compiling 7 files (.ex)
Generated shoehorn app
==> table
Compiling 5 files (.ex)
Generated table app
==> vega_lite
Compiling 6 files (.ex)
Generated vega_lite app
==> mime
Compiling 1 file (.ex)
Generated mime app
==> x509
Compiling 23 files (.ex)
Generated x509 app
==> circular_buffer
Compiling 1 file (.ex)
Generated circular_buffer app
==> ring_logger
Compiling 7 files (.ex)
Generated ring_logger app
==> nimble_options
Compiling 3 files (.ex)
Generated nimble_options app
==> bunt
Compiling 2 files (.ex)
Generated bunt app
===> Analyzing applications...
===> Compiling telemetry
==> telemetry_metrics
Compiling 7 files (.ex)
Generated telemetry_metrics app
===> Analyzing applications...
===> Compiling telemetry_poller
==> sbom
Compiling 6 files (.ex)
Generated sbom app
==> recon
Compiling 6 files (.erl)
recon_alloc.erl:706:7: Warning: matching on the float 0.0 will no longer also match -0.0 in OTP 27. If you specifically intend to match 0.0 alone, write +0.0 instead.
recon_alloc.erl:706:11: Warning: matching on the float 0.0 will no longer also match -0.0 in OTP 27. If you specifically intend to match 0.0 alone, write +0.0 instead.
Generated recon app
==> phoenix_pubsub
Compiling 11 files (.ex)
Generated phoenix_pubsub app
TFLITE_BEAM_CORAL_LIBEDGETPU_TRIPLET: native
Downloading libedgetpu https://github.com/cocoa-xu/libedgetpu/releases/download/v0.1.7/edgetpu_runtime_x86_64-linux-musl_v0.1.7.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 404
Unknown triplet: x86_64-linux-musl. Will try to copy requested runtime.
cp: cannot stat '/home/ore/elixir/nerves_livebook/deps/tflite_beam/3rd_party/cache/edgetpu_runtime_x86_64-linux-musl_v0.1.7/edgetpu_runtime/libedgetpu/edgetpu.h': No such file or directory
cp: cannot stat '/home/ore/elixir/nerves_livebook/deps/tflite_beam/3rd_party/cache/edgetpu_runtime_x86_64-linux-musl_v0.1.7/edgetpu_runtime/libedgetpu/edgetpu_c.h': No such file or directory
No .so file or .dylib file is found.
make: *** [Makefile:110: install_libedgetpu_runtime] Error 1
===> Hook for compile failed!
==> nerves_livebook
** (Mix) Could not compile dependency :tflite_beam, "/home/ore/.asdf/installs/elixir/1.15.6-otp-26/.mix/elixir/1-15/rebar3 bare compile --paths /home/ore/elixir/nerves_livebook/_build/x86_64_dev/lib/*/ebin" command failed. Errors may have been logged above.
You can recompile this dependency with "mix deps.compile tflite_beam --force", update it with "mix deps.update tflite_beam" or clean it with "mix deps.clean tflite_beam"
対処
mix.exsを、いじる。
$ mix deps.get
warning: module attribute @tflite_targets was set but never used
mix.exs:23: NervesLivebook.MixProject (module)
Resolving Hex dependencies...
Resolution completed in 0.899s
Unchanged:
atecc508a 1.2.1
aws_signature 0.3.1
beam_notify 1.1.0
blue_heron 0.4.1
blue_heron_transport_uart 0.1.4
bmp280 0.2.12
bunt 0.2.1
castore 1.0.4
cc_precompiler 0.1.8
circuits_gpio 1.1.0
circuits_i2c 1.2.2
circuits_spi 2.0.0
circuits_uart 1.5.1
circular_buffer 0.4.1
complex 0.5.0
cowboy 2.10.0
cowboy_telemetry 0.4.0
cowlib 2.12.1
credo 1.7.1
decimal 2.1.1
delux 0.4.1
dialyxir 1.4.2
dns_cluster 0.1.1
earmark_parser 1.4.37
ecto 3.10.3
elixir_make 0.7.7
erlex 0.2.6
ex_doc 0.30.9
file_system 0.2.10
finch 0.16.0
fss 0.1.1
gen_state_machine 3.0.0
geo 3.6.0
hpax 0.1.2
hts221 1.0.0
input_event 1.4.2
jason 1.4.1
jose 1.11.6
kino 0.11.2
kino_maplibre 0.1.10
kino_vega_lite 0.1.10
livebook 0.11.4
makeup 1.1.1
makeup_elixir 0.16.1
makeup_erlang 0.1.2
maplibre 0.1.6
mdns_lite 0.8.8
mime 2.0.5
mint 1.5.1
mint_web_socket 1.0.3
muontrap 1.3.2
nerves 1.10.4
nerves_key 1.2.0
nerves_key_pkcs11 1.2.0
nerves_logging 0.2.2
nerves_motd 0.1.13
nerves_pack 0.7.0
nerves_runtime 0.13.6
nerves_ssh 0.4.3
nerves_system_bbb 2.19.1
nerves_system_br 1.24.1
nerves_system_grisp2 0.8.1
nerves_system_mangopi_mq_pro 0.6.1
nerves_system_npi_imx6ull 0.12.1
nerves_system_osd32mp1 0.15.1
nerves_system_rpi 1.24.1
nerves_system_rpi0 1.24.1
nerves_system_rpi2 1.24.1
nerves_system_rpi3 1.24.1
nerves_system_rpi3a 1.24.1
nerves_system_rpi4 1.24.1
nerves_system_srhub 0.29.1
nerves_system_x86_64 1.24.1
nerves_time 0.4.6
nerves_time_zones 0.3.3
nerves_toolchain_aarch64_nerves_linux_gnu 1.8.0
nerves_toolchain_armv6_nerves_linux_gnueabihf 1.8.0
nerves_toolchain_armv7_nerves_linux_gnueabihf 1.8.0
nerves_toolchain_ctng 1.9.3
nerves_toolchain_riscv64_nerves_linux_gnu 1.8.0
nerves_toolchain_x86_64_nerves_linux_musl 1.8.0
nerves_uevent 0.1.0
nimble_options 1.0.2
nimble_parsec 1.4.0
nimble_pool 1.0.0
nx 0.6.3
one_dhcpd 2.0.2
phoenix 1.7.8
phoenix_ecto 4.4.2
phoenix_html 3.3.2
phoenix_live_dashboard 0.8.2
phoenix_live_view 0.20.1
phoenix_pubsub 2.1.3
phoenix_template 1.0.3
picam 0.4.1
pigpiox 0.1.2
pinout 0.1.3
plug 1.15.1
plug_cowboy 2.6.1
plug_crypto 2.0.0
progress_bar 3.0.0
property_table 0.2.4
protobuf 0.8.0
qmi 0.8.6
ramoops_logger 0.3.1
ranch 1.8.0
recon 2.5.4
req 0.4.5
ring_logger 0.11.1
sbom 0.6.2
scroll_hat 0.2.1
shoehorn 0.9.1
ssh_subsystem_fwup 0.6.1
stb_image 0.6.4
table 0.1.2
telemetry 1.2.1
telemetry_metrics 0.6.1
telemetry_poller 1.0.0
toolshed 0.3.1
uboot_env 1.0.1
vega_lite 0.1.8
vintage_net 0.13.5
vintage_net_direct 0.10.7
vintage_net_ethernet 0.11.2
vintage_net_mobile 0.11.4
vintage_net_qmi 0.3.5
vintage_net_wifi 0.11.7
websock 0.5.3
websock_adapter 0.5.5
x509 0.8.8
zoneinfo 0.1.7
All dependencies are up to date
==> nerves
==> nerves_livebook
Nerves environment
MIX_TARGET: x86_64
MIX_ENV: dev
Checking for prebuilt Nerves artifacts...
Found nerves_toolchain_x86_64_nerves_linux_musl in cache
/home/ore/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_x86_64-1.8.0
Found nerves_system_x86_64 in cache
/home/ore/.nerves/artifacts/nerves_system_x86_64-portable-1.24.1
$ mix firmware.image
warning: module attribute @tflite_targets was set but never used
mix.exs:23: NervesLivebook.MixProject (module)
==> nerves
==> nerves_livebook
Nerves environment
MIX_TARGET: x86_64
MIX_ENV: dev
==> plug_crypto
Compiling 5 files (.ex)
Generated plug_crypto app
==> hpax
Compiling 4 files (.ex)
Generated hpax app
==> dns_cluster
Compiling 1 file (.ex)
Generated dns_cluster app
==> jose
Compiling 112 files (.erl)
Compiling 8 files (.ex)
Generated jose app
===> Analyzing applications...
===> Compiling ranch
==> fss
Compiling 4 files (.ex)
Generated fss app
==> complex
Compiling 2 files (.ex)
Generated complex app
==> nx
Compiling 32 files (.ex)
Generated nx app
==> kino
Compiling 47 files (.ex)
Generated kino app
==> kino_vega_lite
Compiling 4 files (.ex)
Generated kino_vega_lite app
==> credo
Compiling 251 files (.ex)
Generated credo app
==> ecto
Compiling 56 files (.ex)
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/ecto/changeset/relation.ex:474: Ecto.Changeset.Relation.process_current/3
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/ecto/repo/preloader.ex:208: Ecto.Repo.Preloader.fetch_ids/4
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/ecto/changeset.ex:3156: Ecto.Changeset.optimistic_lock/3
Generated ecto app
==> plug
Compiling 1 file (.erl)
Compiling 40 files (.ex)
Generated plug app
==> phoenix_html
Compiling 9 files (.ex)
Generated phoenix_html app
==> phoenix_template
Compiling 4 files (.ex)
Generated phoenix_template app
==> geo
Compiling 27 files (.ex)
Generated geo app
==> ssh_subsystem_fwup
Compiling 4 files (.ex)
Generated ssh_subsystem_fwup app
==> pinout
Compiling 9 files (.ex)
Generated pinout app
==> protobuf
Compiling 34 files (.ex)
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/protobuf/wire.ex:105: Protobuf.Wire.to_proto/2
warning: use Bitwise is deprecated. import Bitwise instead
lib/protobuf/wire/varint.ex:46: Protobuf.Wire.Varint (module)
warning: use Bitwise is deprecated. import Bitwise instead
lib/protobuf/wire/zigzag.ex:4: Protobuf.Wire.Zigzag (module)
Generated protobuf app
==> uboot_env
Compiling 5 files (.ex)
Generated uboot_env app
==> delux
Compiling 8 files (.ex)
Generated delux app
==> erlex
Compiling 1 file (.yrl)
src/parser.yrl: Warning: conflicts: 27 shift/reduce, 0 reduce/reduce
Compiling 1 file (.xrl)
Compiling 2 files (.erl)
Compiling 1 file (.ex)
Generated erlex app
==> dialyxir
Compiling 66 files (.ex)
Generated dialyxir app
==> nimble_pool
Compiling 2 files (.ex)
Generated nimble_pool app
==> ramoops_logger
Compiling 2 files (.ex)
Generated ramoops_logger app
==> zoneinfo
Compiling 7 files (.ex)
Generated zoneinfo app
==> circuits_gpio
"**** MIX_ENV set to [prod] ****"
"**** CIRCUITS_MIX_ENV set to [] ****"
CC hal_sysfs.o
CC hal_sysfs_interrupts.o
CC hal_rpi.o
CC nif_utils.o
CC gpio_nif.o
LD gpio_nif.so
Compiling 2 files (.ex)
Generated circuits_gpio app
==> circuits_i2c
CC i2c_nif.o
LD i2c_nif.so
Compiling 2 files (.ex)
Generated circuits_i2c app
==> bmp280
Compiling 18 files (.ex)
Generated bmp280 app
==> hts221
Compiling 13 files (.ex)
Generated hts221 app
==> atecc508a
Compiling 21 files (.ex)
Generated atecc508a app
==> circuits_spi
CC hal_spidev.o
CC spi_nif.o
LD spi_nif.so
Compiling 6 files (.ex)
Generated circuits_spi app
==> input_event
CC input_event.o
LD input_event
Compiling 5 files (.ex)
Generated input_event app
==> nerves_time_zones
CC nif.o
LD nif.so
HOSTCC zic
CURL tzdata2023c.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 433k 100 433k 0 0 244k 0 0:00:01 0:00:01 --:--:-- 244k
ZIC zoneinfo
Compiling 5 files (.ex)
Generated nerves_time_zones app
==> cc_precompiler
Compiling 3 files (.ex)
Generated cc_precompiler app
==> stb_image
/home/ore/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_x86_64-1.8.0/bin/x86_64-nerves-linux-musl-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 --sysroot /home/ore/.nerves/artifacts/nerves_system_x86_64-portable-1.24.1/staging -shared -std=c11 -O3 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -fPIC -I/home/ore/.nerves/artifacts/nerves_system_x86_64-portable-1.24.1/staging/usr/lib/erlang/erts-14.1/include -I/home/ore/elixir/nerves_livebook/deps/stb_image/3rd_party/stb /home/ore/elixir/nerves_livebook/deps/stb_image/c_src/stb_image_nif.c -o /home/ore/elixir/nerves_livebook/_build/x86_64_dev/lib/stb_image/priv/stb_image_nif.so
Compiling 2 files (.ex)
07:26:55.739 [error] Process #PID<0.7596.0> raised an exception
** (Protocol.UndefinedError) protocol String.Chars not implemented for {:load_failed, ~c"Failed to load NIF library /home/ore/elixir/nerves_livebook/_build/x86_64_dev/lib/stb_image/priv/stb_image_nif: '/lib/x86_64-linux-gnu/libc.so: invalid ELF header'"} of type Tuple
(elixir 1.15.6) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir 1.15.6) lib/string/chars.ex:22: String.Chars.to_string/1
lib/stb_image_nif.ex:11: StbImage.Nif.load_nif/0
(kernel 9.1) code_server.erl:1398: anonymous fn/1 in :code_server.handle_on_load/5
07:26:55.741 [warning] The on_load function for module Elixir.StbImage.Nif returned:
{%Protocol.UndefinedError{
protocol: String.Chars,
value: {:load_failed,
~c"Failed to load NIF library /home/ore/elixir/nerves_livebook/_build/x86_64_dev/lib/stb_image/priv/stb_image_nif: '/lib/x86_64-linux-gnu/libc.so: invalid ELF header'"},
description: ""
},
[
{String.Chars, :impl_for!, 1, [file: ~c"lib/string/chars.ex", line: 3]},
{String.Chars, :to_string, 1, [file: ~c"lib/string/chars.ex", line: 22]},
{StbImage.Nif, :load_nif, 0, [file: ~c"lib/stb_image_nif.ex", ...]},
{:code_server, :"-handle_on_load/5-fun-0-", 1, [...]}
]}
Generated stb_image app
==> one_dhcpd
CC arp_set.o
LD arp_set
Compiling 8 files (.ex)
Generated one_dhcpd app
==> muontrap
CC muontrap.o
LD muontrap
Compiling 5 files (.ex)
Generated muontrap app
==> nerves_key_pkcs11
CC atecc508a.o
CC nerves_key_pkcs11.o
LD nerves_key_pkcs11.so
Compiling 1 file (.ex)
Generated nerves_key_pkcs11 app
==> nerves_key
Compiling 7 files (.ex)
Generated nerves_key app
==> nerves_logging
CC kmsg_tailer.o
LD kmsg_tailer
Compiling 5 files (.ex)
Generated nerves_logging app
==> mint
Compiling 1 file (.erl)
Compiling 19 files (.ex)
Generated mint app
==> finch
Compiling 13 files (.ex)
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/finch/http2/pool.ex:362: Finch.HTTP2.Pool.connected/3
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/finch/http2/pool.ex:460: Finch.HTTP2.Pool.connected_read_only/3
Generated finch app
==> req
Compiling 6 files (.ex)
Generated req app
==> maplibre
Compiling 3 files (.ex)
Generated maplibre app
==> kino_maplibre
Compiling 4 files (.ex)
Generated kino_maplibre app
==> mint_web_socket
Compiling 7 files (.ex)
Generated mint_web_socket app
==> property_table
Compiling 8 files (.ex)
Generated property_table app
==> nerves_uevent
CC uevent.o
LD uevent
Compiling 3 files (.ex)
Generated nerves_uevent app
==> nerves_runtime
Compiling 13 files (.ex)
Generated nerves_runtime app
==> toolshed
Compiling 5 files (.ex)
Generated toolshed app
==> nerves_ssh
Compiling 7 files (.ex)
Generated nerves_ssh app
==> beam_notify
CC beam_notify.o
LD beam_notify
Compiling 1 file (.ex)
Generated beam_notify app
==> vintage_net
CC if_monitor.o
LD if_monitor
Compiling 55 files (.ex)
Generated vintage_net app
==> mdns_lite
Compiling 1 file (.erl)
Compiling 18 files (.ex)
Generated mdns_lite app
==> vintage_net_direct
Compiling 2 files (.ex)
Generated vintage_net_direct app
==> vintage_net_ethernet
Compiling 4 files (.ex)
Generated vintage_net_ethernet app
==> vintage_net_wifi
CC force_ap_scan.o
LD force_ap_scan
CC mesh_mode.o
LD mesh_mode
CC mesh_param.o
LD mesh_param
Compiling 16 files (.ex)
Generated vintage_net_wifi app
==> websock
Compiling 1 file (.ex)
Generated websock app
===> Analyzing applications...
===> Compiling cowlib
===> Analyzing applications...
===> Compiling cowboy
===> Analyzing applications...
===> Compiling cowboy_telemetry
==> plug_cowboy
Compiling 5 files (.ex)
warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead
lib/plug/cowboy.ex:352: Plug.Cowboy.to_args/5
Generated plug_cowboy app
==> websock_adapter
Compiling 4 files (.ex)
Generated websock_adapter app
==> phoenix
Compiling 71 files (.ex)
Generated phoenix app
==> phoenix_live_view
Compiling 39 files (.ex)
Generated phoenix_live_view app
==> phoenix_live_dashboard
Compiling 36 files (.ex)
Generated phoenix_live_dashboard app
==> circuits_uart
CC uart_enum_osx.o
CC uart_comm_win.o
CC uart_comm.o
CC uart_enum_linux.o
CC uart_comm_unix.o
CC util.o
CC erlcmd.o
CC uart_enum_win.o
CC debug_tests.o
CC circuits_uart.o
CC uart_enum.o
LD circuits_uart
Compiling 6 files (.ex)
Generated circuits_uart app
==> nerves_time
CC ntpd_script.o
LD ntpd_script
Compiling 9 files (.ex)
Generated nerves_time app
==> nerves_motd
Compiling 3 files (.ex)
Generated nerves_motd app
==> nerves_pack
Compiling 1 file (.ex)
Generated nerves_pack app
==> phoenix_ecto
Compiling 7 files (.ex)
Generated phoenix_ecto app
==> livebook
Compiling 226 files (.ex)
Generated livebook app
==> nerves_livebook
Compiling 9 files (.ex)
Generated nerves_livebook app
|nerves| Building OTP Release...
* [Nerves] validating vm.args
* using config/runtime.exs to configure the release at runtime
* creating _build/x86_64_dev/rel/nerves_livebook/releases/0.11.0/vm.args
Updating base firmware image with Erlang release...
Copying rootfs_overlay: /home/ore/elixir/nerves_livebook/_build/x86_64_dev/nerves/rootfs_overlay
Copying rootfs_overlay: /home/ore/elixir/nerves_livebook/rootfs_overlay
Building /home/ore/elixir/nerves_livebook/_build/x86_64_dev/nerves/images/nerves_livebook.fw...
Firmware built successfully! ?
Now you may install it to a MicroSD card using `mix burn` or upload it
to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.
Writing to /home/ore/elixir/nerves_livebook/nerves_livebook.img...
100% [====================================] 38.42 MB in / 39.05 MB out
Success!
Elapsed time: 1.894 s
nerves_livebook.img できた。
以上。