dmesg |grep -i nvidia
[ 3.092611] nouveau 0000:01:00.0: NVIDIA GF117 (0d7000a2)
这里可以看出我们的nvida网卡型号为 GF117
去 这里 搜索 GF117
, 有结果:
可以看出对应的Code name是NVD7
根据 archwiki 中的说明, NVDx
系的网卡对应的安装包为 nvidia-390xx
pacman -Ss nvidia-390xx
extra/nvidia-390xx 390.67-4
NVIDIA drivers for linux, 390xx legacy branch
extra/nvidia-390xx-dkms 390.67-4
NVIDIA driver sources for linux, 390xx legacy branch
extra/nvidia-390xx-lts 1:390.67-1
NVIDIA drivers for linux-lts, 390xx legacy branch
extra/nvidia-390xx-settings 390.67-2
Tool for configuring the NVIDIA graphics driver, 390xx legacy branch
extra/nvidia-390xx-utils 390.67-2
NVIDIA drivers utilities
extra/opencl-nvidia-390xx 390.67-2
OpenCL implemention for NVIDIA
其中 nvidia-390xx
对应 linux kernel
, nvida-390xx-lts
对应 linux-lts kernel
, nvidia-390xx-dkms
对应其 他自编译的linux kernel
我这里用的只是普通的 linux kernel
,因此直接安装 nvidia-390xx
即可
sudo pacman -S nvidia-390xx nvidia-390xx-settings nvidia-390xx-utils --noconfirm
resolving dependencies...
looking for conflicting packages...
Packages (1) nvidia-390xx-390.67-4
Total Installed Size: 9.21 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
(0/1) checking keys in keyring [----------------------] 0%
(1/1) checking keys in keyring [######################] 100%
(0/1) checking package integrity [----------------------] 0%
(1/1) checking package integrity [######################] 100%
(0/1) loading package files [----------------------] 0%
(1/1) loading package files [######################] 100%
(0/1) checking for file conflicts [----------------------] 0%
(1/1) checking for file conflicts [######################] 100%
(0/1) checking available disk space [----------------------] 0%
(1/1) checking available disk space [######################] 100%
:: Processing package changes...
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [----------------------] 0%
(1/1) reinstalling nvidia-390xx [######################] 100%
:: Running post-transaction hooks...
(1/2) Updating linux module dependencies...
(2/2) Arming ConditionNeedsUpdate...
修改 /etc/default/grub
, 为 GRUB_CMDLINE_LINUX_DEFAULT
行添加参数 resume=/dev/sda2
sudo sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/ s!"$! nvidia-drm.modeset=1"!' /etc/default/grub
修改 /etc/mkinitcpio.conf
文件,在 HOOKS
中添加 resume
sudo sed -i '/^MODULES=/ s/)/ nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
重新生成initramfs
sudo mkinitcpio -g /boot/initramfs-linux.img
==> Starting build: 4.17.3-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
由于每次更新nvidia驱动都需要重新运行 mkinitcpio, 因此最好通过 pacman hook来自动运行
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia-390xx
[Action]
Depends=mkinitcpio
When=PostTransaction
Exec=/usr/bin/mkinitcpio -P
- 安装 bumblebee
sudo pacman -S bumblebee --noconfirm
resolving dependencies... looking for conflicting packages... Packages (1) bumblebee-3.2.1-17 Total Installed Size: 0.12 MiB Net Upgrade Size: 0.00 MiB :: Proceed with installation? [Y/n] (0/1) checking keys in keyring [----------------------] 0% (1/1) checking keys in keyring [######################] 100% (0/1) checking package integrity [----------------------] 0% (1/1) checking package integrity [######################] 100% (0/1) loading package files [----------------------] 0% (1/1) loading package files [######################] 100% (0/1) checking for file conflicts [----------------------] 0% (1/1) checking for file conflicts [######################] 100% (0/1) checking available disk space [----------------------] 0% (1/1) checking available disk space [######################] 100% :: Processing package changes... (1/1) reinstalling bumblebee [----------------------] 0% (1/1) reinstalling bumblebee [######################] 100% :: Running post-transaction hooks... (1/4) Reloading system manager configuration... (2/4) Creating system user accounts... (3/4) Reloading device manager configuration... (4/4) Arming ConditionNeedsUpdate...
- 添加当前用户到 bumblebee 组
sudo gpasswd -a ${USER} bumblebee
Adding user lujun9972 to group bumblebee
- 修改
/etc/bumblebee/bumblebee.conf
将
Driver=
修改为Driver=nvidia
将KernelDriver=nouveau
修改为KernelDriver=nvidia
- 启用 bumblebeed.service
sudo systemctl enable bumblebeed sudo systemctl start bumblebeed
nvidia-smi
Wed Jun 27 07:17:30 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.67 Driver Version: 390.67 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 NVS 5200M Off | 00000000:01:00.0 N/A | N/A |
| N/A 46C P0 N/A / N/A | 0MiB / 964MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+