このステップは非常に重要です
202300704 アップデート、黒い画面の問題は主に Linux カーネルのアップデートが原因で発生します
# 一定要保持当前的内核,也就是安装 NVIDIA 驱动时用的内核
sudo apt-mark hold linux-image-generic linux-headers-generic
1. オリジナルのオープンソースドライバーをブロックする
20230706 22:46 更新: この手順は無駄のようです。!!
sudo gedit /etc/modprobe.d/blacklist.conf
# 在文件末尾输入
blacklist nouveau
options nouveau modeset=0
# 更新
sudo update-initramfs -u
# 重启
reboot
# 重启后验证是否完成屏蔽
lsmod | grep nouveau
# 无输出则屏蔽成功
2.グラフィックスカードのモデルを確認します
# 查看nvidia显卡型号
lspci | grep -i nvidia
# 输出
01:00.0 3D controller: NVIDIA Corporation Device 25a0 (rev a1)
# 查看集成显卡型号
lspci | grep -i vga
PCI ID リポジトリは、 16 進数値コードに従って、対応するグラフィックス カード モデルを見つけることができます。
3.NVIDIA公式Webサイトからドライバーをダウンロードします。
グラフィックス カードのモデルに応じてドライバーをダウンロードし(Ctrl + マウス クリック - 「ジャンプ」)、公式 Web サイトが推奨する .run ファイルをダウンロードし、ダウンロードが完了したらメイン ディレクトリに移動します。
4.グラフィックカードドライバーをインストールする
软件和更新-附加驱动
ドライバーをubuntu に直接インストールすることをお勧めします。
4.1. 手動インストール
# 添加权限
sudo chmod a+x NVIDIA-Linux-x86_64-*.run
# 安装
sudo ./NVIDIA-Linux-x86_64-*.run -no-x-check -no-nouveau-check
// -no-opengl-files 只安装驱动文件,不安装OpenGL文件(据说台式机需要,否则会循环登录)
// -no-x-check 安装驱动时不检查X服务(for:you appear to be running an x server pleaseexit x before installing)
// -no-nouveau-check 安装驱动时不检查nouveau
// 安装过程中会询问是否安装32位的,选择 NO
// 安装过程或询问是否执行 nvidia-xconfig 选择 NO
# 安装完成后挂载nvidia
modprobe nvidia
# 验证是否安装成功
nvidia-smi
// 会显示显卡温度,风扇转数等信息
# 安装选择显卡的工具
sudo apt install nvidia-prime
# 选择使用nvidia
sudo prime-select nvidia
// nvidia 使用nivdia显卡
// intel 使用intel集成显卡
// on-demand 使用混合显卡
// query 查看当前使用的显卡
5. NVIDIA グラフィックス カード ドライバーのアンインストール コマンド
# 按照上述教程安装的
sudo ./NVIDIA-Linux-x86_64-*.run --uninstall
# 使用sudo安装或者ubuntu软件更新器里面安装的
sudo apt remove --purge nvidia*
sudo apt autoremove
6.黒い画面の問題を解決する
更新 20230706: この手順は不要になりました。役に立ちません。カーネルが更新されないようにするだけです。
問題の説明: nvidia のプライムセレクトを実行した後、コンピューターを再起動すると、左上隅のカーソルが点滅し、ログイン ページに入ることができません。nvidia-xconfig
たまたまコマンドを実行した場合、/etc/X11/xorg.conf
システムは生成後もログインできませんが、ループでログインすることはなくなり、ログイン直後に停止します。**この問題は、X11 構成ファイルで発生します。関連する参考リンクは次のとおりです。
Ubuntu 環境に NVIDIA ドライバーをインストールすると黒い画面が発生する理由を少し詳しく分析します
sudo nvidia-xconfig を実行すると黒い画面が表示されるのはなぜですか
ubuntu に nvidia ドライバーをインストールした後、ログイン/ログイン インターフェイスがループ状態になる
解決策:
- nvidia-xconfig は、NVIDIA グラフィックス カード用の xorg 構成ファイルのみを設定します。コア グラフィックス + 独立したグラフィックスを搭載したコンピューターでは、この構成ファイルは無効です。そのため、ログイン直後にスタックするという問題が発生します。
- xorg.conf が存在しない場合、X サーバーはシステムのステータスを検出し、構成を自動的に生成します。ただし、自動生成された構成では、独立したグラフィックス ドライバーが nouveau (nvidia ドライバーのインストール中に無効になるシステム独自のドライバー) として検出されます。したがって、この場合、プライムセレクトを使用してデフォルトのグラフィックス カードを独立したグラフィックスに設定すると、ドライバーが見つからないためにシステムは起動に失敗し続け、ログイン ループが発生します。
解決策の手順:
# 终端执行
sudo nvidia-xconfig
# 此时会在/etc/X11中生成xorg.conf文件,打开进行编辑 --20230704 删除了这个文件还是可以进入图形界面
sudo gedit /etc/X11/xorg.conf
これを次の内容に置き換え、nvidia-xconfig によって生成されたファイルにインテル グラフィックス カードのサポートを手動で追加します。
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 535.54.03
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA GeForce RTX3050TI"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
BusID は次のコマンドで表示できます。
xxxxxx:~$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Device 46a6 (rev 0c)
DeviceName: Onboard IGD
Subsystem: Hewlett-Packard Company Device 89c0
Kernel driver in use: i915
--
01:00.0 3D controller: NVIDIA Corporation Device 25a0 (rev a1)
Subsystem: Hewlett-Packard Company Device 89c1
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
インストールプロセス中に学習した関連コマンドを記録します。
7. グラフィカルインターフェース管理コマンド
# 安装图形界面管理器
sudo apt install lightdm
# 切换
sudo dpkg-reconfigure lightdm // 登录在左边
sudo dpkg-reconfigure gdm3 // 登录在中间
8. 自動カーネル更新コマンドをオフにする
# 查看当前已安装内核
dpkg --get-selections | grep linux-image
linux-image-5.15.0-67-generic install
linux-image-5.15.0-76-generic install
linux-image-generic-hwe-20.04 install
# 保持当前内核
sudo apt-mark hold linux-image-generic linux-headers-generic
# 解除保持
sudo apt-mark unhold linux-image-generic linux-headers-generic
# 修改配置
sudo vim /etc/apt/apt.conf.d/10periodic
# 原来是这样的
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";
# 改成这样的
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
# 修改配置
sudo vim /etc/apt/apt.conf.d/20auto-upgrades
# 原来是这样的
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";
# 改成这样的
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
9. カーネル管理関連コマンド
# 查看当前使用内核(绝对不能删除这个内核)
uname -r
# 查看内核列表
sudo dpkg --get-selections |grep linux-image
linux-image-5.15.0-67-generic deinstall
linux-image-5.15.0-76-generic install
linux-image-generic-hwe-20.04 install
linux-image-unsigned-5.15.0-67-generic deinstall
# or
sudo dpkg --get-selections |grep linux
binutils-x86-64-linux-gnu install
console-setup-linux install
libselinux1:amd64 install
libselinux1-dev:amd64 install
linux-base install
linux-firmware install
linux-generic-hwe-20.04 install
linux-headers-5.15.0-76-generic install
linux-headers-generic-hwe-20.04 install
linux-hwe-5.15-headers-5.15.0-76 install
linux-image-5.15.0-67-generic deinstall
linux-image-5.15.0-76-generic install
linux-image-generic-hwe-20.04 install
linux-image-unsigned-5.15.0-67-generic deinstall
linux-libc-dev:amd64 install
linux-modules-5.15.0-67-generic deinstall
linux-modules-5.15.0-76-generic install
linux-modules-extra-5.15.0-67-generic deinstall
linux-modules-extra-5.15.0-76-generic install
linux-sound-base install
pptp-linux install
syslinux install
syslinux-common install
syslinux-legacy install
util-linux install
# 删除内核
sudo apt remove linux-image-5.15.0-67-generic .. # 所有带5.15.0-67的