Resolving Hex dependencies... Resolution completed in 0.096s Unchanged: axon 0.7.0 bumblebee 0.6.3 castore 1.0.18 circular_buffer 1.0.0 complex 0.6.0 decimal 2.3.0 elixir_make 0.9.0 ex_panda 0.2.0 exla 0.10.0 file_system 1.1.1 finch 0.21.0 fine 0.1.6 hpax 1.0.3 interactive_cmd 0.1.4 jason 1.4.4 lumis 0.5.0 marcli 0.3.1 mdex 0.12.1 metastatic 0.20.3 mime 2.0.7 mint 1.7.1 nerves 1.14.1 nerves_discovery 0.1.2 nerves_logging 0.2.4 nerves_runtime 0.13.12 nerves_system_bbb 2.29.3 nerves_system_br 1.33.5 nerves_system_grisp2 0.17.3 nerves_system_mangopi_mq_pro 0.15.3 nerves_system_osd32mp1 0.24.3 nerves_system_qemu_aarch64 0.3.3 nerves_system_rpi 2.0.2 nerves_system_rpi0 2.0.2 nerves_system_rpi0_2 2.0.2 nerves_system_rpi2 2.0.2 nerves_system_rpi3 2.0.2 nerves_system_rpi4 2.0.2 nerves_system_rpi5 2.0.2 nerves_system_x86_64 1.33.3 nerves_toolchain_aarch64_nerves_linux_gnu 13.2.0 nerves_toolchain_armv6_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_armv7_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_ctng 1.10.0 nerves_toolchain_riscv64_nerves_linux_gnu 13.2.0 nerves_toolchain_x86_64_nerves_linux_musl 13.2.0 nerves_uevent 0.1.5 nimble_options 1.1.1 nimble_parsec 1.4.2 nimble_pool 1.1.0 nx 0.10.0 nx_image 0.1.2 nx_signal 0.2.0 owl 0.13.0 polaris 0.1.0 progress_bar 3.0.0 property_table 0.3.3 ragex 0.11.0 req 0.5.17 ring_logger 0.11.5 rustler_precompiled 0.9.0 safetensors 0.1.3 shoehorn 0.9.3 tablet 0.3.2 telemetry 1.4.1 tokenizers 0.5.1 toolshed 0.4.2 uboot_env 1.0.2 unpickler 0.1.0 unzip 0.12.0 xla 0.9.1 All dependencies have been fetched ==> tablet Compiling 2 files (.ex) Generated tablet app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> decimal Compiling 4 files (.ex) Generated decimal app ==> jason Compiling 10 files (.ex) Generated jason app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 50 files (.ex) Generated nerves app ==> nerves_compatibility_test Nerves environment MIX_TARGET: mangopi_mq_pro MIX_ENV: prod Checking for prebuilt Nerves artifacts... Found nerves_system_mangopi_mq_pro in cache /home/nerves/.nerves/artifacts/nerves_system_mangopi_mq_pro-portable-0.15.3 Found nerves_toolchain_riscv64_nerves_linux_gnu in cache /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_aarch64-13.2.0 ==> nerves ==> nerves_toolchain_ctng Compiling 1 file (.ex) Generated nerves_toolchain_ctng app ==> nerves_system_br Generated nerves_system_br app ==> nerves_toolchain_riscv64_nerves_linux_gnu Generated nerves_toolchain_riscv64_nerves_linux_gnu app ==> nerves_system_mangopi_mq_pro Generated nerves_system_mangopi_mq_pro app ==> nerves_compatibility_test Nerves environment MIX_TARGET: mangopi_mq_pro MIX_ENV: prod ==> file_system Compiling 7 files (.ex) Generated file_system app ==> mime Compiling 1 file (.ex) Generated mime app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> fine Compiling 1 file (.ex) Generated fine app ==> ex_panda Compiling 4 files (.ex) Generated ex_panda app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> unpickler Compiling 3 files (.ex) Generated unpickler app ==> complex Compiling 2 files (.ex) Generated complex app ==> owl Compiling 19 files (.ex) Generated owl app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Compiling 5 files (.ex) Generated nerves_logging app ==> castore Compiling 1 file (.ex) Generated castore app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> unzip Compiling 6 files (.ex) warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: <>, buffer_position: new_buffer_pos } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:59:18 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 70 │ buffer = %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:70:18: Unzip.FileBuffer.next_chunk/2 warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: binary_part(buffer.buffer, 0, byte_size(buffer.buffer) - count) } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:87:24 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 89 │ %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:89:6: Unzip.FileBuffer.move_backward_by/2 warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: binary_part(buffer.buffer, count, byte_size(buffer.buffer) - count), buffer_position: min(buffer.buffer_position + count, buffer.limit) } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:98:23 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 100 │ %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:100:6: Unzip.FileBuffer.move_forward_by/2 Generated unzip app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> metastatic Compiling 151 files (.ex) Generated metastatic app ==> progress_bar Compiling 10 files (.ex) Generated progress_bar app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> xla Compiling 5 files (.ex) Generated xla app ==> nimble_parsec Compiling 4 files (.ex) Generated nimble_parsec app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling telemetry ==> nx Compiling 38 files (.ex) warning: ~~~ is deprecated. Use Bitwise.bnot/1 instead for clarity │ 655 │ def ~~~tensor when is_number(tensor), do: Bitwise.~~~(tensor) │ ~ │ └─ lib/nx/defn/kernel.ex:655:7 warning: ~~~ is deprecated. Use Bitwise.bnot/1 instead for clarity │ 656 │ def ~~~tensor, do: Nx.bitwise_not(tensor) │ ~ │ └─ lib/nx/defn/kernel.ex:656:7 Generated nx app ==> nx_image Compiling 1 file (.ex) Generated nx_image app ==> safetensors Compiling 3 files (.ex) Generated safetensors app ==> polaris Compiling 5 files (.ex) Generated polaris app ==> axon Compiling 27 files (.ex) warning: incompatible types given to Kernel.apply/2: apply(Axon.Initializers, []) given types: -Axon.Initializers-, empty_list() but expected one of: fun(), list(term()) typing violation found at: │ 135 │ apply(Axon.Initializers, []) │ ~ │ └─ lib/axon/quantization.ex:135:17: Axon.Quantization.weight_only_quantized_dense/3 warning: a struct for Axon.Loop.State is expected on struct update: %Axon.Loop.State{ state | epoch: epoch + 1, metrics: zero_metrics, iteration: 0, max_iteration: state.max_iteration } but got type: dynamic() where "state" was given the type: # type: dynamic() # from: lib/axon/loop.ex {:continue, state} when defining the variable "state", you must also pattern match on "%Axon.Loop.State{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 1695 │ ... %State{ │ ~ │ └─ lib/axon/loop.ex:1695:29: Axon.Loop.run/4 warning: a struct for Axon.Loop.State is expected on struct update: %Axon.Loop.State{state | epoch: epoch + 1, iteration: 0} but got type: dynamic(%{..., epoch: term(), metrics: term()}) where "state" was given the type: # type: dynamic(%{..., epoch: term(), metrics: term()}) # from: lib/axon/loop.ex {:halt_epoch, %{epoch: epoch, metrics: metrics} = state} when defining the variable "state", you must also pattern match on "%Axon.Loop.State{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 1927 │ {:cont, {batch_fn, final_metrics_map, %State{state | epoch: epoch + 1, iteration: 0}}} │ ~ │ └─ lib/axon/loop.ex:1927:47: Axon.Loop.halt_epoch/5 warning: Tuple.append/2 is deprecated. Use insert_at instead │ 49 │ Nx.reshape(scales, Tuple.append(ones, :auto)) │ ~ │ └─ lib/axon/quantization/layers.ex:49:30: Axon.Quantization.Layers.reshape_scales/2 └─ lib/axon/quantization/layers.ex:54:23: Axon.Quantization.Layers.reshape_output/2 warning: got "@impl true" for function __stream__/7 but no behaviour specifies such callback. The known callbacks are: * Nx.Defn.Compiler.__compile__/4 (function) * Nx.Defn.Compiler.__jit__/5 (function) * Nx.Defn.Compiler.__partitions_options__/1 (function) * Nx.Defn.Compiler.__to_backend__/1 (function) │ 18 │ def __stream__(_, _, _, _, _, _, _), do: raise("not implemented") │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/axon/defn.ex:18: Axon.Defn (module) Generated axon app ==> rustler_precompiled Compiling 4 files (.ex) Generated rustler_precompiled app ==> lumis Compiling 6 files (.ex) 17:17:46.265 [debug] Downloading NIF from https://github.com/leandrocp/lumis/releases/download/hex-lumis/v0.5.0/liblumis_nif-v0.5.0-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz 17:17:48.942 [debug] NIF cached at /home/nerves/.cache/rustler_precompiled/precompiled_nifs/liblumis_nif-v0.5.0-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz and extracted to /work/proj/_build/mangopi_mq_pro/lib/lumis/priv/native/liblumis_nif-v0.5.0-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz Generated lumis app ==> mdex Compiling 11 files (.ex) 17:17:49.171 [debug] Downloading NIF from https://github.com/leandrocp/mdex/releases/download/v0.12.1/libcomrak_nif-v0.12.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz 17:17:52.922 [debug] NIF cached at /home/nerves/.cache/rustler_precompiled/precompiled_nifs/libcomrak_nif-v0.12.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz and extracted to /work/proj/_build/mangopi_mq_pro/lib/mdex/priv/native/libcomrak_nif-v0.12.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz Generated mdex app ==> marcli Compiling 3 files (.ex) Generated marcli app ==> tokenizers Compiling 18 files (.ex) 17:17:53.420 [debug] Downloading NIF from https://github.com/elixir-nx/tokenizers/releases/download/v0.5.1/libex_tokenizers-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz 17:17:54.647 [debug] NIF cached at /home/nerves/.cache/rustler_precompiled/precompiled_nifs/libex_tokenizers-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz and extracted to /work/proj/_build/mangopi_mq_pro/lib/tokenizers/priv/native/libex_tokenizers-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz Generated tokenizers app ==> nx_signal Compiling 5 files (.ex) warning: Tuple.append/2 is deprecated. Use insert_at instead │ 739 │ |> Tuple.append(out_len) │ ~ │ └─ lib/nx_signal.ex:739:14: NxSignal.overlap_and_add_output_shape/2 Generated nx_signal app ==> bumblebee Compiling 95 files (.ex) Generated bumblebee app ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> nimble_pool Compiling 2 files (.ex) Generated nimble_pool app ==> exla Using libexla.so from /home/nerves/.cache/xla/exla/elixir-1.19.4-erts-16.2-xla-0.9.1-exla-0.10.0-3qfo2naslnsbaeekhxeqjfjmse/libexla.so Compiling 23 files (.ex) Generated exla app ==> finch Compiling 14 files (.ex) Generated finch app ==> req Compiling 19 files (.ex) Generated req app ==> ragex Compiling 123 files (.ex) Generated ragex app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Compiling 5 files (.ex) Generated nerves_uevent app ==> nerves_runtime Compiling 14 files (.ex) Generated nerves_runtime app ==> toolshed Compiling 5 files (.ex) Generated toolshed app ==> nerves_compatibility_test Compiling 2 files (.ex) Generated nerves_compatibility_test app |nerves| Building OTP Release... * [Nerves] validating vm.args * skipping runtime configuration (config/runtime.exs not found) * creating _build/mangopi_mq_pro/rel/nerves_compatibility_test/releases/0.1.0/vm.args Updating base firmware image with Erlang release... /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_aarch64-13.2.0/bin/riscv64-nerves-linux-gnu-strip: /work/proj/_build/mangopi_mq_pro/_nerves-tmp/rootfs_overlay/srv/erlang/lib/tokenizers-0.5.1/priv/native/stfegdQb: not enough room for program headers, try linking with -N /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_aarch64-13.2.0/bin/riscv64-nerves-linux-gnu-strip: /work/proj/_build/mangopi_mq_pro/_nerves-tmp/rootfs_overlay/srv/erlang/lib/tokenizers-0.5.1/priv/native/stfegdQb[.note.gnu.build-id]: bad value WARNING: Can't remove debug symbols from /work/proj/_build/mangopi_mq_pro/_nerves-tmp/rootfs_overlay/srv/erlang/lib/tokenizers-0.5.1/priv/native/libex_tokenizers-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so. This is expected for precompiled Rust. scrub-otp-release.sh: ERROR: Unexpected executable format for '/work/proj/_build/mangopi_mq_pro/_nerves-tmp/rootfs_overlay/srv/erlang/lib/lumis-0.5.0/priv/native/liblumis_nif-v0.5.0-nif-2.15-aarch64-unknown-linux-gnu.so' Got: readelf:AArch64;0x0 Expecting: readelf:RISC-V;0x5, RVC, double-float ABI This file was compiled for the host or a different target and probably will not work. Check the following: 1. If this file comes from a library, that library may be compiling to its source directory under `deps`. Manually clean up the source directory and try building again. 2. Are you using a path dependency in your mix deps? If so, run 'mix clean' in that directory to avoid pulling in any of its build products. 3. Did you recently upgrade or change your Nerves system? If so, try cleaning and rebuilding this project and its deps. 4. Are you building outside of Nerves' mix integration? If so, make sure that you've sourced 'nerves-env.sh'. If you are very sure you know what you are doing, you may place an empty file in the same directory as the offending file(s) called '.noscrub'. This will explicitly disable scrubbing for that directory. If you're still having trouble, please file an issue on Github at https://github.com/nerves-project/nerves_system_br/issues.