nvidia uvm что такое
Could not load nvidia-uvm
3 Answers 3
I got the same problem on my machine, I find the solution here:
Edit the file /etc/modprobe.d/bumblebee.conf or create a new file if you are not using bumblebee and add a line to it:
You should replace nvidia-340-uvm into the version you are using. You can find it by
Thank you! But my string differs:
Maybe it will help anybody more.
Today, I came across a day fulfilled of PURGES and APTITUDE/APT-GET’s. I was trying to fix the problem of activating the nvidia-uvm.
I have a CUDA 6.5 already installed. I updated my nvidia to 352 thinking that the 340 was with problems. But as you will see, it was a matter of activating components blacklisted by the bumblebee.
sudo apt-get install bumblebee bumblebee-nvidia
However, I decide to comment the following from file «/etc/modprobe.d/bumblebee.conf»:
Workaround to make sure nvidia-uvm is removed as well
remove nvidia rmmod nvidia-uvm nvidia (commentted)
It was giving problems in my modprobe activation. First of all, I do not know why, but I have to, always, run the optirun command with some process and, then, execute sudo modprobe nvidia-XXX-uvm
EX: «sudo optirun glxspheres64 sudo modprobe nvidia-352-uvm»
I think it is because bumblebee blocks some component that should be activated when optirun is executed. Anyway, it worked for me and I hope can save some PURGE/INSTALL that everyone maybe be tired of executing.
NVIDIA/nvidia-drivers
Пакет x11-drivers/nvidia-drivers содержит проприетарный графический драйвер для видеокарт NVIDIA. Альтернативой с открытым исходным кодом является nouveau.
В проприентарном драйвере содержатся некоторые функции-обвертки, которые скомпилируют для текущего ядра блоб (от англ. binary linked object — объект двоичной компоновки), который берет на себя основную работу по взаимодействию с платой. Драйвер состоит из двух частей: модуля ядра и драйвера X11. Обе части находятся в одном пакете. Вследствие особенностей упаковки драйверов, необходимо сделать некоторый выбор перед их установкой.
Пакет включает в себя последние драйвера от NVIDIA с поддержкой большинства видеокарт NVIDIA. Имеется несколько версий пакета зависящие от старости карты. Пакет использует eclass для обнаружения типа используемой видеокарты, чтобы установить подходящую версию.
Contents
USE-флаги
USE flags for x11-drivers/nvidia-drivers NVIDIA Accelerated Graphics Driver
X | Add support for X11 |
dist-kernel | Enable subslot rebuilds on Distribution Kernel upgrades |
driver | Install kernel driver modules |
persistenced | Install the persistence daemon for keeping devices state when unused |
static-libs | Build static versions of dynamic libraries as well |
tools | Install additional tools such as nvidia-settings |
wayland | Enable dev-libs/wayland backend |
Аппаратная совместимость
Пакет x11-drivers/nvidia-drivers поддерживает целый диапазон доступных видеокарт NVIDIA. В зависимости от видеокарты, которая имеется в системе, для установки доступно большое число версий. Прочитайте официальную документацию NVIDIA Что такое устаревший драйвер?, для того, чтобы узнать, какую версию пакета x11-drivers/nvidia-drivers лучше использовать. Достаточно подходящий способ узнать это с помощью интерактивной формы предложенной здесь. Введите видеокарту (учитывая параметр Legacy в поле ‘Product Type’), и форма отобразит наилучшую поддерживаемую версию.
Устаревшее аппаратное обеспечение
Если карта определилась как устаревшая, замаскируйте свежие выпуски nvidia-drivers, то есть:
Заметьте, что Gentoo не предоставляет версии 71.86.xx. Если в системе установлена видеокарта, которой необходимы эти драйвера, то рекомендуется использовать драйвер nouveau.
Установка
Как упоминалось выше, драйвер ядра NVIDIA устанавливается и работает на текущем ядре. Он собирается в виде модуля, поэтому ядро должно поддерживать загрузку модулей ядра (смотрите ниже).
Модуль ядра ( nvidia.ko ) состоит из проприетарной части (широко известной как двоичный блоб), которая управляет графическими чипами, и части с открытым исходным кодом (клей — англ. glue), которая во время исполнения работает как посредник между проприетарной частью и ядром. Они должны работать вместе слаженно, иначе можно столкнуться с потерей данных (из-за паники ядра, сбоя X-сервера с несохраненными данными в X-приложениях) и даже повреждением аппаратного обеспечения (перегрев и другие проблемы с управлением питания тут же приходят на ум).
Совместимость ядра
Время от времени, новый релиз ядра изменяет внутренний двоичный интерфейс приложений (англ. ABI, application binary interface) для драйверов, что означает, что все драйвера, которые используют этот интерфейс, должны быть соответствующим образом изменены. Для драйверов с открытым исходным кодом, особенно распространяемых с ядром, эти изменения практически тривиальны для исправления, так как цепочка вызовов между драйверами и другими частями ядра может быть просмотрена достаточно легко. Для проприетарных драйверов типа nvidia.ko, это далеко не так. При изменении внутреннего двойчного интерфейса приложений, невозможно просто исправить используемый клей, потому что неизвестно как этот клей используется проприетарной частью. Если удастся наладить работу и все будет работать исправно, вы все еще рискуете тем, что работа nvidia.ko в новом, неподдерживаемом ядре приведет к потере данных и аппаратному сбою.
Когда выпускается новая, несовместимая версия ядра, лучше некоторое время оставаться на последнем поддерживаемом ядре. Обычно, NVIDIA требуется несколько недель для подготовки нового проприетарного релиза, который, по их мнению, подходит для общего использования. Просто будьте терпеливы. Если же обновление совершенно необходимо, ebuild-файл nvidia-drivers поддерживает команду epatch_user из класса eutils.class: это позволит вам исправить nvidia-drivers для их совместимости с последним, неподдерживаемым релизом ядра. Однако заметьте, что ни мейнтейнеры пакета nvidia-drivers, ни NVIDIA не оказывают тех. поддержки, в данной ситуации. Гарантия на аппаратное обеспечение, скорее всего, будет аннулирована. Мейнтейнеры Gentoo не смогут исправить ваши проблемы, так как это проприетарный драйвер, который может быть отлажен только NVIDIA. Мейнтейнеры ядра (как пакета Gentoo, так и разработчики самого ядра), определенно не будут поддерживать проприетарные драйвера или, любую испорченную систему, которая может вызвать проблемы.
With at least some if not all driver versions it may also be required to enable VGA Arbitration and the IPMI message handler:
Если на компьютере есть видеокарта AGP, вы можете дополнительно включить в ядро поддержку драйвера agpgart, встроенного в ядро, или в качестве модуля. Если модуль apggart не используется, то драйверы будут использовать собственную реализацию apggart, называемую NvAGP. На определенных системах, это приводит к лучшей производительности, чем встроенный в ядро agpgart, а на некоторых, к худшей. Оцените оба варианта на своей собственной системе для достижения наилучшей производительности. Если вы не уверены что делать, используйте встроенный в ядро agpgart:
Теперь убедитесь, что драйвер nouveau отключен:
Для UEFI систем uvesafb не работает. Предупреждаем, что включение поддержки «efifb» в ядре ( CONFIG_FB_EFI=y ) приводит к непостоянным(иногда появляется, иногда нет) проблемам с запуском драйверов NVIDIA. На данный момент не существует альтернативного кадрового буфера для UEFI систем.
В результате, приведенном выше, заметьте, что ядро linux-3.7.10-gentoo помечено звездочкой ( * ), для того, чтобы продемонстрировать, что это то ядро, на которое указывает символьная ссылка.
Если символьная ссылка не указывает на корректные исходные тексты, обновите ее, выбирая номер требуемых вами исходных текстов ядра, как в приведенном далее примере.
Конфигурация
Драйвера
После завершения установки, запустите modprobe nvidia для загрузки модуля ядра в память. Если это было обновление (пакета x11-drivers/nvidia-drivers), то сначала удалите предыдущий модуль.
Подпись модулей ядра (опционально)
В случае использования подписи для безопасной загрузки ядра, нужно подписать модули ядра NVIDIA перед их загрузкой.
Начиная с версии драйвера 358.09, был сделан новый модуль для работы с настройками режима монитора. В таких версиях драйвера также нужно подписать этот модуль.
После подписи модулей, драйвер будет загружаться должным образом. Этот метод подписания модуля может быть использован для подписи других модулей; не только для драйверов nvidia. Просто измените путь к соответствующему модулю.
X-сервер
For laptops with integrated Intel graphics card, try the XOrg config as suggested by the NVIDIA/Optimus page.
Разрешения
The user(s) needing to access the video card will need to be added to the video group:
Note that users will be able to run X without permission to the DRI subsystem, but acceleration will be disabled.
Включение глобальной поддержки nvidia
Серии GeForce 8 и более поздние GPU выходят с поддержкой VDPAU, которая заменила собой поддержку XvMCNVIDIA. Смотри статью VDPAU для включения поддержки VDPAU.
Использование инструмента управления настройками от nVidia
Использование
Тестирование видеокарты
Устранение проблем
Чтобы получить список ошибок для пакета x11-drivers/nvidia-drivers, открытых на данный момент, взгляните на Gentoo bugtracker: known bugs.
Random Freezes
Random freezes have various reasons, check that:
Blinking console cursor and compat use flag
If a blinking console appears instead of X when using the compat nvidia-drivers USE flag on nvidia-drivers-430 and newer there might have a segmentation fault when xorg starts.
Looking for the segfault:
Follow bug #684324 for further details.
FATAL: modpost: GPL-incompatible module *.ko uses GPL-only symbol
Когда ebuild жалуется о ‘mutex_destroy’ GPL-only symbol:
Драйвер не инициализируется, если включены прерывания MSI
Драйвер NVIDIA в Linux по умолчанию использует Message Signaled Interrupts (прерывания инициируемые сообщениями, MSI). В результате этого мы получаем совместимость и расширяемость, в основном из-за отсутствия необходимости разделения IRQ. На некоторых системах наблюдаются проблемы с поддержкой MSI, хотя они хорошо работают с прерываниями virtual wire (виртуальные провода). Это приводит к невозможности запустить X вместе с драйвером NVIDIA, либо к проблемам инициализации CUDA.
Работа с 2D ускорением на машинах с 4 Гб памяти и больше.
Если есть проблемы с 2D-ускорением графики на NVIDIA, то скорее всего системе не удалось настроить диапазон совмещения записи (write-combining range) в MTRR. Чтобы это проверить, пересмотрите содержимое следующих файлов /proc/mtrr :
Перезагрузитесь и войдите в BIOS, затем найдите настройки MTRR (возможно, под CPU Settings). Измените настройки с continuous на discrete и перезагрузитесь обратно в Linux. Теперь записи со словом uncachable больше нет и 2D-ускорение работает без каких-либо неполадок.
Alternatively, it might be necessary to enable MTRR cleanup support (CONFIG_MTRR_SANITIZER=Y) in the Linux kernel:
Failed to initialize DMA on Ryzen
no such device, при попытке загрузить модуль ядра
Это обычно вызвано одной из следующих проблем:
Direct rendering не активирован
Если direct rendering не работает, это может быть потому, что Direct Rendering Manager включен в ядро, что вызывает конфликт с драйвером. Проверьте статус Direct Rendering следуя инструкциям раздела Тестирование видеокарты.
Во-первых, отключите Direct Rendering Manager ( CONFIG_DRM ) в ядре :
Далее, соберите заново x11-drivers/nvidia-drivers, так как драйвер мог быть пересобран с DRM-символами ядра. Это должно исправить проблему.
Замедленное или заикающееся проигрывание видео
В последнее время можно наблюдать сбои с проигрыванием некоторых типов видео на бинарных драйверах NVIDIA, вызывающие медленное воспроизведение или значительное заикание. Эта проблема происходит при замене для определенных процессоров общего ACPI метода холостого хода на метод от Intel.
Если вы используете GRUB2 в качестве загрузчика, вы можете добавить этот параметр в файл /etc/default/grub так:
После перезагрузки вы можете проверить что изменение применилось:
No HDMI Output/Video/Sound
This problem tended to occur whenever the HDMI hub device turned-off for a period of time, or the computer was started with an HDMI hub device turned off.
First, find the PCI device ID, using lspci.
When this problem occurs, substitute the PCI ID within the following command for rescanning the PCI bus:
This avoides disable runtime power management for PCI function 0, placing this PCI bus always on.
Отсутствует вертикальная синхронизация (no VSync, tearing) в OpenGL приложениях
Добавление следующей опции в раздел экрана предотвращает разрывы на GTX 660, 660 Ti, и, возможно, других GPU (источник):
Тонкая настройка
Документация
Пакет x11-drivers/nvidia-drivers также поставляется с исчерпывающей документацией. Она устанавливается в каталог /usr/share/doc и может быть просмотрена с помощью следующей команды:
Параметры модуля ядра
Отредактируйте файл /etc/modprobe.d/nvidia.conf и обновите информацию о модулях:
. и загрузите его снова:
Расширенная конфигурация X-сервера
GLX-интерфейс также имеет огромное количество параметров, которые можно настроить. Они управляют конфигурацией выхода TV, одновременным выводом на два монитора, определением частоты монитора, и так далее. Опять же, все доступные параметры подробно описаны в документации.
NVIDIA (Русский)
Данная статья описывает процесс установки и настройки проприетарного драйвера графических карт NVIDIA. Для получения информации о драйверах с открытым исходным кодом обратитесь к статье Nouveau (Русский). Также есть отдельная статья для обладателей ноутбуков с гибридной графикой Intel и NVIDIA, см. NVIDIA Optimus (Русский).
Contents
Установка
1. Если вы не знаете модель установленной графической карты, воспользуйтесь следующей командой:
2. Определите версию драйвера, необходимую для вашей видеокарты:
3. Установите подходящий драйвер для своей карты:
4. Для поддержки 32-разрядных приложений также необходимо установить соответствующий пакет nvidia lib32 из репозитория multilib (например, lib32-nvidia-utils или lib32-nvidia-390xx-utils AUR ).
5. Перезагрузите систему. Пакет nvidia содержит файл, который добавляет модуль nouveau в чёрный список, поэтому перезагрузка необходима.
После того, как драйвер был установлен, можно перейти к разделу #Настройка.
Не поддерживаемые драйвера
Если у вас установлена видеокарта серии GeForce 300 или старее (выпущенная в 2010 или раньше), Nvidia больше не поддерживает драйвера для данной карты. Это означает, что указанные драйвера не поддерживают текущую версию Xorg. В таком случае проще использовать драйвер Nouveau, который поддерживает старые видеокарты с текущей версией Xorg.
Однако устаревшие драйверы Nvidia ещё доступны и могут предоставлять лучшую стабильность или 3D-производительность, если вы готовы откатить версию Xorg (Русский):
Собственное ядро
Если вы используете собственной ядро, то сборка модулей Nvidia может быть автоматизированна при помощи DKMS.
Установите пакет nvidia-dkms (или специфичную ветку, например, nvidia-340xx-dkms AUR ). Модуль будет пересобираться после каждого обновления драйвера или ядра благодаря DKMS Pacman Hook.
DRM kernel mode setting
Не забывайте запускать mkinitcpio каждый раз после обновления драйвера. См. раздел #Pacman hook для автоматизации данных действий.
Pacman hook
Для того, чтобы не забывать обновлять initramfs после обновления nvidia, вы можете использовать pacman hook следующим образом:
Так же измените Target=linux если используется другое ядро.
Аппаратное ускорение видео
NVDEC and VDPAU
Ускоренное декодирование видео с помощью VDPAU поддерживается на картах GeForce 8 series и более поздних версиях. Ускоренное декодирование видео с помощью NVDEC поддерживается на картах Fermi и более новых. Дополнительная информация Hardware video acceleration (Русский).
Ускоренное декодирование видео MPEG-1 и MPEG-2 с помощью XvMC поддерживается на серии видеокарт GeForce4, GeForce 5 FX, GeForce 6 и GeForce 7. Смотрите XvMC.
Настройка
Эта статья или раздел нуждается в переводе
Вполне возможно, что после установки драйвера, вам будет не нужно создавать конфигурационные файлы для сервера Xorg. Вы можете запустить тест для проверки корректной работы сервера Xorg без файла конфигурации. Однако, может потребоваться создание конфигурационного файла (предпочтительно /etc/X11/xorg.conf.d/20-nvidia.conf поверх /etc/X11/xorg.conf ) для дополнительной настройки. Это конфигурация может быть сгенерирована инструментом конфигурации NVIDIA Xorg или можно создать её вручную. Если создается вручную, это может быть минимальной конфигурацией (в том смысле, что она будет содержать базовые настройки сервера Xorg), либо она может включать в себя ряд настроек, которые могут обоходить автоматически обнаруженные настройки Xorg или предварительно заданные настройки.
Минимальная настройка
Базовый блок конфигурации в 20-nvidia.conf (или устаревший блок в xorg.conf ) должен выглядеть так:
Автоматическая настройка
Пакет NVIDIA, включает в себя автоматический инструмент для создания файла конфигурации сервера Xorg ( xorg.conf ) и может быть запущен путем выполнения:
Если есть строка с указанием загрузки DRI, убедитесь, что она закомментирована:
NVIDIA Settings
Также, вы можете запустить настройки от обычного пользователя и сохранить в
Несколько мониторов
Использование NVIDIA Settings
Используйте nvidia-settings для настройки мультимониторной конфигурации.
ConnectedMonitor
Если драйвер не определил второй монитор, вы можете принудительно указать его с помощью опции ConnectedMonitor
TwinView
Если вы имеете несколько карт, которые совместимы с технологией SLI, вы можете использовать несколько мониторов присоединённых к разным картам (пример: две карты в режиме SLI с подключением монитора на каждой карте). Опция «MetaModes» совместно с режимом SLI Mosaic позволяет это. Ниже указана конфигурация, которая работает для вышеупомянутого примера и безупречно запускает GNOME.
Ручная конфигурация из командной строки с использованием xrandr
Эта статья или раздел нуждается в переводе
Некоторые примеры работы с командой xrandr :
Vsync при использовании TwinView
Если вы используете TwinView и вертикальную синхронизацию (опция «Sync to VBlank» в nvidia-settings), вы заметите, что только один экран корректно использует синхронизацию, если у вас два идентичных монитора. Несмотря на то, что nvidia-settings имеет необходимую опцию для выбора, какой именно экран синхронизировать (опция «Sync to this display device»), это не всегда работает. Решением будет добавить следующие переменные окружения при запуске, например в /etc/profile :
Gaming using TwinView
Если вы захотите сыграть в полноэкранные игры при использовании TwinView, вероятно вы заметите, что игры распознают два экрана как один большой экран. Хотя это технически правильно (виртуальный экран X в действительности соответствует размеру ваших экранов вместе), вы, вероятно, не захотите так играть.
Чтобы исправить это для SDL, попробуйте:
Для OpenGL, добавьте Metamodes в свой xorg.conf в секции Device и перезапустите X:
Режим Mosaic
Режим Mosaic единственный способ использовать более чем два монитора через несколько видеокарт с использованием композитинга. Ваш оконный менджер может распознать, а может и не распознать различия между мониторами.
Base Mosaic
SLI Mosaic
Если вы имеете конфигурацию SLI и все графические ускорители серии Quadro FX 5800, Quadro Fermi или новее, тогда вы можете использовать режим SLI Mosaic. он можеть быть включен из графического интерфейса nvidia-settings или из командной строки:
Драйвер Persistence
Начиная с версии 319, Nvidia изменила порядок работы драйвера persistence, теперь он запускается как демон при загрузке. Смотрите раздел драйвер Persistence (англ.) документации Nvidia, для получения детальной информации.
Электрический блогнот
мои заметки на полях
Linux как установить CUDA
Установить CUDA (Compute Unified Device Architecture) библиотеки в Linux очень легко и в тоже время сложно. Казалось бы, что тут сложного, сделай какой-нибудь apt-get install cuda или yum install cuda и система на автомате все сама установит. Действительно, во многих случаях этого достаточно, но, как говорится, есть нюансы.
Так вот, чтобы использовать всю мощь вашей графической карты необходимо выполнение следующих условий:
Вот пунктом номер 3 мы и будем заниматься в этой статье.
Все последующие шаги будут приведены для Ubuntu 18.04 (самая популярная система), но они так же подойдут и для других дистрибутивов Linux.
Предисловие
Устанавливать CUDA будем от обычного пользователя, в домашнюю папку. Я не сторонник установки в /usr/local таких вещей, которые часто приходится обновлять. Лучше поставить куда-нибудь в безопасное место, чтобы не запороть работающую систему. Например, /home/username/cuda подойдет отлично. Надоест эксперементировать с CUDA, просто удалите эту папку и все. И не надо заботиться, что какие-то зависимости нарушились в системе.
Шаг 1 — проверяем nvidia драйвер
Исходим из того, что Nvidia карточка у ва есть и nvidia драйвер установлен в систему и запущен.
Далее определяем версию nvidia драйвера с помощью команды modinfo:
Есть еще один способ определить версию драйвера. Для этого воспользуемся утилитой nvidia-smi:
Nvidia-smi так же выдала версию 435.21.
Если nvidia-smi не будет в вашей системе, то пользуйтесь способом с modinfo.
Шаг 2 — качаем CUDA Toolkit
Между весрией Nvidia драйвера и версией CUDA Toolkit существует связь. Для определенной версии Nvidia драйвера нужно скачивать и устанавливать строго соответствующий пакет CUDA Toolkit, иначе ничего не получится. Опять же есть два способа определить версию CUDA Toolkit.
Первый способ:
идем на страницу cuda toolkit release notes и в таблице «Table 1. CUDA Toolkit and Compatible Driver Versions» ищем нужное соотвествие между версией драйвера и версией CUDA Toolkit:
Например, на моем ноуте установлен nvidia драйвер версии 435.21, значит мне подойдут все версии CUDA Toolkit кроме 10.2. Иными словами 10.1 включительно и ниже.
Если у вас драйвер версии 390, то CUDA Toolkit надо скачивать версии 9.1 и ниже.
Второй способ:
можно снова воспользоваться утилитой nvidia-smi:
здесь четко написано, для вашего драйвера нужна CUDA 10.1.
После того, как определились с версией CUDA Toolkit идем и скачиваем его со страницы:
https://developer.nvidia.com/cuda-toolkit-archive
После скачивания в директории для загрузок появится файл:
cuda_10.1.105_418.39_linux.run
Шаг 3 — устанавливаем CUDA Toolkit
Инсталлер скачан. Сделаем его исполняемым:
И сразу же запускаем:
Запускается долго (наверняка происходит самораспаковка).
После соглашения с EULA появляется экран:
Как видите здесь размечен драйвер, мы его устанавливать не будем, он уже в системе и запущен.
Далее наводи курсор на «CUDA Toolkit 10.1» и жмем букву «A», тем самым переходя к расширенным настройкам:
Здесь делаем неактивными все позиции, как на скриншоте и переходим в «Change Toolkit Installation Path» и вводим имя директории для установки:
в прцессе установки нужно будет еще ввести «Root install path» вводим туже саму директорию:
Когда установка завершится нужно будет дать системе знать куда установлена CUDA, для этого в файл
/.bashrc прописываем следующие строки:
На этом установка закончена.
Шаг 4 — Тест
Тестируем связку CUDA и драйвера Nvidia. Для этого воспользуемся примеры из устанвки CUDA.
Возьмем тест с частицами.
Шаг 5 — устанавливаем cuDNN
Если вы планируете использовать CUDA в машинном обучении, то просто необходимо устанвить библиотеку cuDNN. Этабиблиотека позволяет максимально эффективно использовать мощности графического ускорителя при работе с нейронными сетями. Ставится cuDNN элементрано:
1) регистрируетесь;
2) скачиваете нужную версию (для каждой CUDA своя cuDNN);
3) распаковываете архив в папку куда установлена CUDA.
Выводы
В данной статье приведено описание способа установки CUDA библиотек в Linux в случае, когда графический драйвер уже установлен, а у пользователя нет прав администратора.