Привет! Я последовал этой инструкции https://www.reddit.com/r/homelab/comments/1hggz6l/an_updated_newbies_guide_to_setting_up_a_proxmox/ чтобы попробовать использовать свой Arc B580 в VM и LXC, но я выполнил все шаги до момента добавления PCI-устройства, но я не вижу ни одного DGx устройства в меню необработанных устройств. Ближайшее, что я предполагаю, это то, что GPU будет представлен этими 2 необработанными устройствами PCIe Надеюсь на возможные решения, так как хочу транскодировать с помощью моего GPU. Предполагая, что это GPU, IDRAC технически его распознает. PCIDeviceID – E20B, что является PCIe ID BattleMage в Linux
Я установил ядро 6.11 и могу передавать B580 в мою VM. Драйвер vifo-pci для ядра тоже загружается сразу после настройки передачи. Пока что я передавал только видеокарту в VM, а не в LXC. B580 там тоже определяется, но независимо от системы (Debian/Ubuntu) он загружается только с драйвером Xe. Загрузить его с i915 у меня пока не получилось, даже на самом Proxmox с force_probe, и я не знаю, работает ли вообще B580 с i915. Мой Intel CPU UHD G630 загружается отлично с i915... У меня пока не получилось настроить, чтобы Plex мог использовать b580 для транскодирования. Всегда выдает эту ошибку, и я не знаю, просто ли отсутствует пакет или драйвер Xe не поддерживается: Код: DEBUG - [Req#174de/Transcode] Кодеки: аппаратное транскодирование: тестирование API vaapi для устройства '/dev/dri/renderD129' (Intel Battlemage G21 [Intel Graphics]) ERROR - [Req#174de/Transcode] [FFMPEG] - libva: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64/iHD_drv_video.so init failed INFO - [Req#174de/Transcode] Подготовка драйвера imd для GPU Intel Battlemage G21 [Intel Graphics] Если у вас такая же ситуация, буду рад получить ответ, а также если вы нашли решение проблемы с транскодированием.
Я не использую VM для Plex, но и с LXC у меня тоже не получилось. В Plex просто нет выбора использовать B580 в качестве устройства для транскодирования, хотя A380 работает отлично. Добавлю, что я также использую ядро 6.11, но, полагаю, это просто не поддерживается, пока мы не получим ядро 6.12 от Proxmox.
Кстати, Battlemage вообще не поддерживается с i915, только с xe: https://github.com/intel-gpu/intel-gpu-i915-backports/issues/209. Насколько я знаю, Battlemage работает нормально только с ядром 6.13 и mesa > 24 (в текущем Debian этого нет, для 24 нужно включать репозиторий backports). Так что пока что, для этого приходится использовать PCI passthrough, а в гостевой системе — использовать самое свежее ядро + mesa. Кстати, чтобы отображать список PCIid в интерфейсе и в lspci, можно обновить PCIid с помощью команды `update-pciids`. Это запросит базу данных PCIid с сервера, поддерживаемого сообществом (это только визуальное изменение, не функциональное).
К информации: Я так и не смог запустить Intel B580 с Plex на Linux (Proxmox, Debian или Ubuntu), даже с ядром 6.12 и установленными mesa-va-драйверами.
ОШИБКА - [Req#24207/Transcode/oz675gkbhi8ggzby8lr81gs6/4f883795-ad41-40d9-b713-05d0209529ec] Не удалось установить значение 'vaapi=vaapi:/dev/dri/renderD129' для опции 'init_hw_device': I/O error. Версия драйвера Intel Media Driver, которая поставляется вместе с Plex, похоже, Version 24.1.5-3, а баттлмадж-поддержка была добавлена с Version 24.3.4. Я не эксперт, но подозреваю, что пока что эта карта не будет работать на Linux, что очень обидно, ведь я купил её именно для Plex.
Я умудрился запустить Intel B580 с Jellyfin, Ollama и Stable Diffusion все на одной VM. Целую неделю пытался использовать предустановку Proxmox, на которой у меня была Tesla Card, и Ubuntu VM, в которую я передал Tesla. Только после скачивания последней ISO Proxmox я установил свежую установку Proxmox, затем обновил ядро до 6.11.11-1. Затем я создал VM и установил Ubuntu 24.04 и ядро 6.13.x, уже без всего, что связано с Proxmox: с помощью Grub я добавил следующее: GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt" и добавил в черный список: echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf echo "blacklist xe" >> /etc/modprobe.d/blacklist.conf echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf. После этого я добавил карту в VM и установил все драйвера для GPU, установил Jellyfin, он обнаружил карту и использовал ее без проблем. Что касается Ollama и Diffusion, я использовал готовые Docker-файлы, чтобы запустить их в VM с Jellyfin. Надеюсь, это поможет. Cheers.
Я добавил GPU через вкладку "Оборудование", затем выбрал Intel Graphic PCI. Запустите следующее в Proxmox Shell, и это обновит имена аппаратных устройств: `update-pciids`. Я использовал только драйвера из предоставленной вами ссылки. Для Ollama Docker я использовал это руководство: https://syslynx.net/llm-intel-b580-linux/, а для Stable Diffusion — это руководство: https://github.com/simonlui/Docker_IPEX_ComfyUI.
У меня пока не очень получается. Зарегистрировал это в проекте ipex-llm: https://github.com/intel/ipex-llm/issues/12994. Я планировал использовать LXC-контейнер, но это потребовало бы использование ядра 6.11, что несовместимо с B580. Поэтому, как и вы, установил ядро Proxmox 6.11, установил Ubuntu 24.10 VM с ядром 6.13 и PCI raw passthrough. Запуск update-pciids в Proxmox помог идентифицировать B580 в списке, иначе я использовал lspci для нахождения адреса. Изначальный план с LXC был в том, чтобы легко монтировать локальную директорию, чтобы хранить модели вне хранилища объектов, а с VM это было еще важнее, чтобы эти вещи не забивали файловое хранилище. Поэтому я добавил устройство 9p также: args: -fsdev local,security_model=mapped,id=fsdev0,path=/mnt/rocket/llm/ -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare.
Смонтировал и добавил в /etc/fstab, а затем в контейнерах ipex-llm и open-webui указал на монтирование. Теперь все мои файлы читаются/записываются вне VM, так что мне не приходится беспокоиться о том, что она засорится ненужным мусором и старыми блобами, которыми я не знаю, как управлять. Использовал https://syslynx.net/llm-intel-b580-linux/, но ipex-llm не загружал модель. В логах указывалось, что ZES_ENABLE_SYSMAN не включен, хотя он есть в окружении контейнера. Более того, B580 указан как используемый. Попробовал несколько моделей на всякий случай, похоже, у них могут быть свои логи и т.д. Попробовал phi, llama и Gemma, все маленькие.
ggml_sycl_init: found 1 SYCL devices: time=2025-03-23T10:51:50.559+08:00 level=INFO source=runner.go:967 msg="starting go runner" time=2025-03-23T10:51:50.559+08:00 level=INFO source=runner.go:968 msg=system info="CPU : SSE3 = 1 | SSSE3 = 1 | AVX = 1 | AVX2 = 1 | F16C = 1 | FMA = 1 | LLAMAFILE = 1 | OPENMP = 1 | AARCH64_REPACK = 1 | CPU : SSE3 = 1 | SSSE3 = 1 | AVX = 1 | AVX2 = 1 | F16C = 1 | FMA = 1 | LLAMAFILE = 1 | OPENMP = 1 | AARCH64_REPACK = 1 | cgo(gcc)" threads=6 get_memory_info: [warning] ext_intel_free_memory is not supported (export/set ZES_ENABLE_SYSMAN=1 to support), use total memory as free memory llama_load_model_from_file: using device SYCL0 (Intel® Graphics [0xe20b]) - 11605 MiB free time=2025-03-23T10:51:50.559+08:00 level=INFO source=runner.go:1026 msg="Server listening on 127.0.0.1:45721" time=2025-03-23T10:51:50.704+08:00 level=INFO source=server.go:605 msg="waiting for server to become available" status="llm server loading model" llama_model_loader: loaded meta data with 34 key-value pairs and 883 tensors from /root/.ollama/models/blobs/sha256-377655e65351a68cddfbd69b7c8dc60c1890466254628c3e494661a52c2c5ada (version GGUF V3 (latest)) llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. ... llama_model_loader: - type q4_K: 205 tensors llama_model_loader: - type q6_K: 34 tensors llama_model_load: error loading model: error loading model hyperparameters: key not found in model: gemma3.attention.layer_norm_rms_epsilon llama_load_model_from_file: failed to load model panic: unable to load model: /root/.ollama/models/blobs/sha256-377655e65351a68cddfbd69b7c8dc60c1890466254628c3e494661a52c2c5ada goroutine 8 [running]: ollama/llama/runner.(*Server).loadModel(0xc000119560, {0x3e7, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0}, 0xc000503690, 0x0}, ...) ollama/llama/runner/runner.go:861 +0x4ee created by ollama/llama/runner.Execute in goroutine 1 ollama/llama/runner/runner.go:1001 +0xd0d time=2025-03-23T10:51:50.954+08:00 level=ERROR source=sched.go:455 msg="error loading llama server" error=" llama runner process has terminated: error loading model: error loading model hyperparameters: key not found in model : gemma3.attention.layer_norm_rms_epsilon\nllama_load_model_from_file: failed to load model"
Я только что обновился до 8.4 с ядром 6.14 (opt-in), но ничего не изменилось... Ну, если я что-то упустил, это, конечно, вполне вероятно. Может, @Barracudaking или @duhmojo заинтересуются, чтобы ещё раз проверить это для LXC?
Да, я тоже не могу заставить аппаратное декодирование/кодирование работать на Proxmox 8.4 с включенным opt-in 6.14 (jellyfin-ffmpeg 7.0.2 вообще не показывает никаких возможностей аппаратного декодирования/кодирования. Не только в LXC, где я мог что-то неправильно сконфигурировать, но и при установке непосредственно на хост, так что я уверен, что это не моя конфигурация LXC). Так что, возможно, что-то особенное в версии Linux kernel от Proxmox, что оставляет что-то важное для Battlemage. Я винил свою ОЧЕНЬ старую BIOS (Zen+ официально не поддерживается новыми версиями BIOS для этой платы, поэтому я не решаюсь ее обновлять, хотя, наверное, должно просто работать), но если я не единственный, кто столкнулся с этой проблемой, то дело, вероятно, не в ней.
Поигрался с виртуальными машинами, и, да, в них тоже не работает. И VM, и Proxmox на ядре 6.14, драйвера в VM установлены. Card0 я вижу, но render128 никак не появляется, что бы я ни делал... Честно говоря, я в тупике.
Извини, забыл отписаться, обновление BIOS решило проблему, теперь всё отлично работает! Так что, если у кого-то проблемы с Battlemage на Proxmox: попробуйте обновить BIOS! Resizeable Bar – ОБЯЗАТЕЛЬНО для Battlemage, поэтому обновитесь до версии BIOS, которая это поддерживает, и включите её.