Многие образы прошивок предоставляются пакетом linux-firmware
, который установлен по умолчанию, но вам может потребоваться установить драйвер вашей карты вручную.
Из arch wiki: Чтобы проверить, загружен ли драйвер для вашей карты, проверьте вывод команды lspci -k
или lsusb -v
, в зависимости от того, подключена ли карта через PCI(e) или USB. Затем проверьте сообщения ядра на наличие загруженной прошивки командой dmesg | grep firmware
. Если модуль ядра не загружен, перейдите к разделу Установка драйвера.
У меня была аналогичная проблема, и я попал в эту ветку. Другое возможное решение - просто выполнить команду make export без каких-либо аргументов:
include .env
export
Это экспортирует все переменные make как переменные среды. Такое поведение может соответствовать, а может и не соответствовать всем вариантам использования, но оно сработало для меня и не связано с какими-либо мастерами сценариев оболочки.
Вот элегантное решение, которое не импортирует переменные Make, но задает любые экспорты среды для подпроцессов оболочки. Лично я предпочитаю, чтобы мои профили были динамическими скриптами.
export BASH_ENV=tools/sh/env.sh
Есть некоторые подводные камни. К сожалению, ENV не работает, я думаю, он должен (, но это проблема Bash, а не Make ). Кроме того, действительно требуется еще одна строка, потому что интерпретатор оболочки Make по умолчанию — /bin/sh.
BASH_ENV := tools/sh/env.sh
SHELL := /usr/bin/bash
На стороне up -это также позволяет включать функции оболочки в сценарии Makefile, но только для сценариев рецептов. Я не знаю, как поживают другие оболочки, кроме Bash. И еще кое-что происходит. Я поместил тестовый файл как GIST .
Можно вообразить множество сложных сценариев оболочки. Мне больше всего нравится этот Q/A за простые ответы.
Чтобы завершить предыдущий ответ из meuh
, если вы хотите, чтобы файл env был динамическим, вы можете определить функцию настройки.
env/local-dev.env
, env/integ.env
файл с некоторым содержимым define setup_env $(eval ENV_FILE := env/$(1).env) @echo " - setup env $(ENV_FILE)" $(eval include env/$(1).env) $(eval export sed 's/=.*//' env/$(1).env) endef
Тогда используйте его
localDevEnv: ## load env/local-dev.env environment $(call setup_env,local-dev) integEnv: ## load env/integ.env environment $(call setup_env,integ)
Если у вас есть bash, вы можете использовать опцию allexport
перед загрузкой файла .env
.
# sample usage:
# $ make from-env RECIPE=another-recipe
from-env:
bash -c 'set -o allexport; source.env; set +o allexport; make "$$RECIPE"'
another-make-recipe:
printenv
пример использования значений.env в Makefile
#!make
include.env
migrateinit:
migrate create -ext sql -dir mysql/migrations -seq int_schema
migrateup:
migrate -path mysql/migrations -database "mysql://${DB_USER_NAME}:${DB_PASSWORD}@tcp(${DB_HOST}:${DB_PORT})/${DB_NAME}" -verbose up 1
migratedown:
migrate -path mysql/migrations -database "mysql://${DB_USER_NAME}:${DB_PASSWORD}@tcp(${DB_HOST}:${DB_PORT})/${DB_NAME}" -verbose down 1