问题描述
我正在构建一个Nerves项目,并尝试按照此处.我已经用Phoenix设置了一个UI项目,并将自定义图像放在项目目录下它自己的目录中.Nerves的主要项目是此处,而定制固件是此处我将MIX_TARGET设置为与自定义图片名称(rpi0_wiringPi)相同,并且在运行时:
I'm building a Nerves project and am attempting to verify my custom firmware will be built with the main Nerves application following the instructions here. I've set up a UI project with Phoenix and have the custom image in its own directory under a project directory. The main Nerves project is here and the custom firmware is here I've set my MIX_TARGET equal to the custom image name (rpi0_wiringPi) and when running:
mix deps.get
我得到了错误
* (ArgumentError) argument error
:erlang.binary_to_atom(nil, :utf8)
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5
(stdlib) erl_eval.erl:233: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
现在,我对该目录中的混合所做的任何操作都会引发相同的错误,包括混合帮助.那会告诉我该项目的mix.exs文件中有什么不对劲,但它在下面,对我来说似乎很好
And now anything I do regarding mix in that directory throws the same error including mix help. That would tell me something is amiss in the mix.exs file for that project but it's below and appears fine to me
defmodule Fw.MixProject do
use Mix.Project
@target System.get_env("MIX_TARGET") || "host"
def project do
[
app: :fw,
version: "0.1.0",
elixir: "~> 1.4",
target: @target,
archives: [nerves_bootstrap: "~> 1.0"],
deps_path: "deps/#{@target}",
build_path: "_build/#{@target}",
lockfile: "mix.lock.#{@target}",
start_permanent: Mix.env() == :prod,
aliases: [loadconfig: [&bootstrap/1]],
deps: deps()
]
end
# Starting nerves_bootstrap adds the required aliases to Mix.Project.config()
# Aliases are only added if MIX_TARGET is set.
def bootstrap(args) do
Application.start(:nerves_bootstrap)
Mix.Task.run("loadconfig", args)
end
# Run "mix help compile.app" to learn about applications.
def application do
[
mod: {Fw.Application, []},
extra_applications: [:logger, :runtime_tools]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:nerves, "~> 1.3", runtime: false},
{:nerves_network, "~> 0.3"},
{:ui, path: "../ui"},
{:shoehorn, "~> 0.2"}
] ++ deps(@target)
end
# Specify target specific dependencies
defp deps("host"), do: []
defp deps(target) do
[
{:nerves_runtime, "~> 0.8"}
] ++ system(target)
end
defp system("rpi"), do: [{:nerves_system_rpi, "~> 1.0", runtime: false}]
defp system("rpi0"), do: [{:nerves_system_rpi0, "~> 1.0", runtime: false}]
defp system("rpi0_wiringPi"), do: [{:nerves_system_rpi0_wiringPi, path: "../nerves_system_rpi0_wiringPi", runtime: false}]
defp system("rpi2"), do: [{:nerves_system_rpi2, "~> 1.0", runtime: false}]
defp system("rpi3"), do: [{:nerves_system_rpi3, "~> 1.0", runtime: false}]
defp system("bbb"), do: [{:nerves_system_bbb, "~> 1.0", runtime: false}]
defp system("ev3"), do: [{:nerves_system_ev3, "~> 1.0", runtime: false}]
defp system("qemu_arm"), do: [{:nerves_system_qemu_arm, "~> 1.0", runtime: false}]
defp system("x86_64"), do: [{:nerves_system_x86_64, "~> 1.0", runtime: false}]
defp system(target), do: Mix.raise("Unknown MIX_TARGET: #{target}")
end
这是目录结构:
clicky
fw
ui
nerves_system_rpi0_wiringPi
由于无论我做什么,mix都会引发错误,因此我无法从中获得任何帮助.有没有办法让混合方式记录正在执行的日志或其他可以帮助我解决问题的日志?
Since mix is throws the error no matter what I do, I cannot get any assistance from it. Is there a way to have mix write a log of what it's doing or something else that would help me troubleshoot the issue?
推荐答案
我也遇到了此错误.事实证明,mix.exs并不是问题.我忽略了在config.exs中设置Nerves网络环境变量(NERVES_NETWORK_SSID,NERVES_NETWORK_PSK和NERVES_NETWORK_MGMT).一旦我修复了'mix deps.get'的工作原理.
I also ran into this error. Turns out not to have been a problem with mix.exs. I had neglected to set the Nerves networking environment variables(NERVES_NETWORK_SSID, NERVES_NETWORK_PSK and NERVES_NETWORK_MGMT) in config.exs. Once I fixed that 'mix deps.get' worked.
这篇关于运行mix deps.get引发:erlang.binary_to_atom参数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!