Můj stary notebook HP EliteBook 8560w už nestačí na Win 10, tak jsem se rozhodl jej použít na Linuxové testy. Jako první bylo nainstalováno Ubuntu a bez jakýchkoliv problemů grafická karta NVIDIA GF106GLM [Quadro 2000M] fungovala. Po úspěšné instalaci jsem chtěl vyzkoušet instalaci KALI Linuxu jako druhého OS pro notebook. Překvapení následovalo hned po instalaci. GUI se nerozběhlo a veškerá konfigurace byla dělána přes řádkovou konzoli (CTRL+ALT+F1). První link s popisem NVIDIA driverů jsem nasel tady. Je zde pěkně popsaná identifikace NVIDIA karet a postup pro instalaci driverů. HP EliteBook 8560w má následující grafickou kartu:
# lspci|grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)# lspci -s 01:00.0 -v
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1) (prog-if 00 [VGA controller])
DeviceName: 0
Subsystem: Hewlett-Packard Company GF106GLM [Quadro 2000M]
Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 1
Memory at d0000000 (32-bit, non-prefetchable) [size=32M]
Memory at c0000000 (64-bit, prefetchable) [size=128M]
Memory at c8000000 (64-bit, prefetchable) [size=64M]
I/O ports at 4000 [size=128]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 <?>
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Kernel driver in use: nouveau
Kernel modules: nouveau
KALI Linux používal po instalaci driver “nouveau”, stejně jako Ubuntu, ale GUI nefungovalo. Pokoušel jsem se nainstalovat driver podle postupu, ale to vedlo jenom k instalaci driveru verze 430.xx, který není vhodný pro moji kartu. Podporovaný driver jsem našel na této strance a měl by to být driver verze 390.xx. Tady je link na instalaci v KALI Linuxu, ale postup nenainstaloval driver správně. Karta pořád používala driver “nouveau” a GUI nefungovalo. Po několika přeinstalacích driveru a celého Kali Linuxu, jsem našel následujíci postup. Popisuje instalaci driveru od NVIDIA, který si překompiluje kernelové moduly během instalace a udělá potrebnou konfiguraci GUI. Někde jsem našel informaci, že maximální verze driveru může být 390.132. To není pravda a po několika pokusech nainstalovat driver 390.132 a potom 390.144, kvůli chybě během překladu kernelových modulů “fatal error: asm/kmap_types.h: No such file or directory” jsem použil nejnovější driver 390.147. Uvedená chyba byla v něm odstraněna dle Change logu pro Ubuntu. Takže postup je následující:
Vyhledat NVIDIA balíčky nainstalované omylem
# dpkg -l|grep -i nvidia
Odinstalovat je
# apt-get remove –purge nvidia-*
Pro jistotu i knihovny, které tam zůstali
# apt-get remove –purge libnvidia-*
Zrušit automatické zavedení driveru “nouveau”
# sed ‘s/quiet/quiet nouveau.modeset=0/g’ -i /etc/default/grub
# update-grub
# reboot
Zastavit GUI
# service gdm3 stop
Stáhnout driver 390.147
# wget -c https://us.download.nvidia.com/XFree86/Linux-x86_64/390.147/NVIDIA-Linux-x86_64-390.147.run
Změnit práva
# chmod +x NVIDIA-Linux-x86_64-390.147.run
Nainstalovat. Během instalace je potřeba registrovat kernelové moduly s DKMS a neinstalovat 32-bitové drivery. Během instalace je hlášena chyba o neexistenci cesty na glvnd, která se dá rešit parametrem při spouštění driveru, nebo jednoduše ignorovat
# ./NVIDIA-Linux-x86_64-390.147.run –glvnd-egl-config-path=/etc/glvnd/egl_vendor.d
Následný reboot zprovozní GUI
# reboot
Správně nainstalovaný driver vypadá takto
# lspci|grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)# lspci -s 01:00.0 -v
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1) (prog-if 00 [VGA controller])
DeviceName: 0
Subsystem: Hewlett-Packard Company GF106GLM [Quadro 2000M]
Flags: bus master, fast devsel, latency 0, IRQ 44, IOMMU group 1
Memory at d0000000 (32-bit, non-prefetchable) [size=32M]
Memory at c0000000 (64-bit, prefetchable) [size=128M]
Memory at c8000000 (64-bit, prefetchable) [size=64M]
I/O ports at 4000 [size=128]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 <?>
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
# nvidia-smi
Wed Apr 6 14:46:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.147 Driver Version: 390.147 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro 2000M Off | 00000000:01:00.0 N/A | N/A |
| N/A 28C P12 N/A / N/A | 123MiB / 1985MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+