Start / Poradniki / Rozwiązywanie problemów / Linux
Linux
Autor: Jakub Rusinowski · Ostatnia aktualizacja: 1 września 2026
Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM
Unable to open /dev/kfd read-write: Permission denied
rocminfo: HSA_STATUS_ERROR_OUT_OF_RESOURCES
hsa api call failure at: ... HSA_STATUS_ERROR_OUT_OF_RESOURCES
| Jeśli widzisz | Przyczyną jest | Przejdź do |
|---|---|---|
sudo rocminfo działa, a samo rocminfo nie | Twój użytkownik nie należy do grup render i video | Rozwiązanie 1: dodaj grupy — ta asymetria to cała diagnoza |
Uruchomiłeś usermod, a groups dalej ich nie pokazuje | Przynależność do grup ustala się przy logowaniu | Rozwiązanie 2: wyloguj się i zaloguj ponownie |
| Tobie działa, ale usługa Ollama nadal nie może użyć GPU | Usługa działa na koncie ollama, które też potrzebuje tych grup | Rozwiązanie 3: dodaj konto usługi |
| Permission denied wyłącznie w kontenerze | Identyfikatory grup z hosta nie zostały przekazane do kontenera | Rozwiązanie 4: --group-add z numerycznymi identyfikatorami |
| Na tej dystrybucji żadna z grup nie istnieje | Różne dystrybucje inaczej nazywają te węzły i inaczej przypisują im właścicieli | Rozwiązanie 5: trwałą odpowiedzią jest reguła udev |
Tropem jest asymetria i sama w sobie stawia diagnozę: uruchom dokładnie to samo polecenie z sudo, a zadziała; uruchom je jako ty — zawiedzie. Nic w ROCm, w twojej karcie ani w sterowniku nie jest zepsute. Po prostu nie możesz otworzyć pliku urządzenia.
rocminfo zawodzi przy pierwszym uruchomieniu na twoim koncie.ROCm sięga do GPU przez dwa węzły urządzeń: /dev/kfd, węzeł obliczeniowy udostępniany przez kernel fusion driver, oraz /dev/dri/render*, węzły renderujące. Oba należą do grup systemowych — umownie render i video — właśnie po to, by dowolny lokalny użytkownik nie mógł zlecać zadań karcie. Twoje konto domyślnie nie należy do żadnej z nich, więc każde wywołanie ROCm zawodzi już na open(). sudo omija tę kontrolę i dlatego obejście sprawia wrażenie działającego — i dlatego tyle osób kończy, uruchamiając wnioskowanie jako root, nie zdając sobie sprawy, że niczego nie naprawiły. Błąd wychodzi na wierzch myląco: HSA_STATUS_ERROR_OUT_OF_RESOURCES brzmi jak problem z pamięcią, a bardzo często jest tym właśnie problemem z uprawnieniami, widzianym warstwę wyżej.
Jedno polecenie — i jest to udokumentowany warunek wstępny we własnym przewodniku instalacji ROCm od AMD. -a ma znaczenie: bez niego usermod -G zastępuje całą twoją listę grup zamiast do niej dopisywać, co potrafi usunąć cię z sudo i odciąć od administrowania maszyną.
⚠️ Zawsze dodawaj -a. sudo usermod -G video,render $LOGNAME bez tego zastępuje każdą twoją grupę dodatkową, łącznie z sudo — a na maszynie bez drugiego administratora to już problem do rozwiązania z nośnika ratunkowego.
# bash
sudo usermod -a -G video,render $LOGNAME
# Confirm the account record was updated (this does NOT mean it is active yet)
id -nG $LOGNAME
ls -l /dev/kfd /dev/dri/render*id -nG wypisuje render i video. Zwróć uwagę, że czyta to bazę kont — twoja bieżąca sesja wciąż ich nie ma, i o tym jest rozwiązanie 2.id -nG $LOGNAME | tr ' ' '\n' | grep -E '^(render|video)