NVIDIA GeForce GTX 660 Tiグラフィックカードを搭載したコンピュータにFedora 21をインストールしました。最初にシステムをインストールしたときに、kmod-nvidia
RPMFusionからパッケージをインストールするまでシステムを実行する際に多くの問題がありました。それ以来、オペレーティングシステム自体に対する私の経験はあまりありませんでした。
ただし、カーネル選択画面と起動時に復号化パスワードの入力を求められた場合は、デフォルトのテキストインターフェイスを使用しているため、デフォルトのグラフィックドライバを使用していることがわかります(テーマに表示されるプレーンテキストボックスと比較)。plymouth
)。また、復号化フレーズを入力すると、Fedoraバルーンの代わりに棒グラフがロードされます。
これは明らかに大きな問題ではありませんが、私のシステムに有能なドライバがあることを知っていますが、システムに最初にロードする方法がわからないので、しばらく気になりました。
最初にシステムを診断して修理するときは、次のようにしました。このガイド真でなければ偽です。
助けてくれてありがとう!
答え1
以下は、rpmfusion nonfreeからkmod-nvidiaソフトウェアをインポートし、Secure Boot / UEFI用に設定されたコンピュータでFedora 26で使用する方法です。 nvidiaカーネルモジュールに対してmodprobeを実行すると、「必要なキーを使用できません」というエラーが発生します。
UEFIセキュアブートを有効にして独自のnvidiaドライバを実行することは可能であり、それほど難しくありません。
- rpmfusion無料と非フリーのストレージをインストールした後、kmod-nvidiaをインストールします。
dnf install kmod-nvidia
opensslを設定し、次のコマンドを実行して自己署名証明書とキーを生成します。
cd /root #or somewhere reasonably safe cat > mokutil-openssl.conf << XYZZY [ req ] default_bits = 4096 distinguished_name = req_distinguished_name string_mask = utf8only x509_extensions = exts prompt = no [ req_distinguished_name ] O = username CN = username emailAddress = [email protected] [ exts ] basicConstraints=critical,CA:FALSE keyUsage=digitalSignature subjectKeyIdentifier=hash authorityKeyIdentifier=keyid XYZZY # create the certificate & key openssl req -x509 -new -nodes -utf8 -sha256 -days 7300 -config ./mokutil-openssl.conf -outform DER -out mokutil.der -keyout mokutil.key -batch # to verify the certificate: openssl x509 -inform DER -in ./mokutil.der -noout -text |less
次に、提供されたユーティリティを使用して新しいnvidiaカーネルモジュールに署名します。
cd /lib/modules/$(uname -r)/extra/nvidia /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia.ko /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-drm.ko /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-modeset.ko /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-uvm.ko
信頼できるようにするには、証明書をBIOSに追加する必要があります。
# first, we stage the new certificate to be added to the BIOS on # the next reboot. You will be prompted to enter a password when # running the utility; the BIOS will ask for the same password on # reboot. mokutil --import ./mokutil.der # This command shows whether or not mokutil was able to stage the # new certificate for import into the BIOS. If the process is # unsuccessful, you may have to enter the BIOS and import the key # manually from its interface, perhaps from a USB stick. If this # command returns your certificate, you should reboot. The BIOS # will prompt you to take action and enter in the password you # input in the previous step. mokutil -N # This command shows which certificates are trusted by the BIOS. # There will be one installed by the manufacturer and if mokutil --list-enrolled
すべてが順調に進んだ場合は、コンピュータに新しいモジュールがロードされた可能性があります。確認できます
lsmod |grep nvidia
新しいカーネルをインストールするときは、モジュールに再署名する必要があります。
ほとんどの情報を見つけました。ここただし、署名ユーティリティはPerlを使用して呼び出す必要はありません。また、kmod-nvidiaビルドプロセスを通じて出力された4つのモジュールすべてに署名しました。
答え2
Liczyrzepaの答え(私にとって非常に役に立つ)で、Fedoraが新しいカーネルをリリースするたびに(つまり、常に!)すべての「追加」モジュールに署名する小さなスクリプトを作成できましたが、Fedoraがリリースされ始めると、は次のとおりです。 .ja.xz モジュールのスクリプトが失敗します。
私は私が受け取ったエラーメッセージのためにしばらく難しい状況に直面するようになったので、役に立つかもしれません。 Liczyrzepaの回答の「ワンタイム」部分、つまりキー生成とBIOSへのインストールも適用されます。
#!/bin/bash
signfile=/usr/src/kernels/$(uname -r)/scripts/sign-file
key=/root/mokutil.key
der=/root/mokutil.der
for moddir in /lib/modules/$(uname -r)/extra/*
do
cd $moddir
echo "entered $moddir"
for module in *.ko*; do
module_basename=${module:0:-3}
module_suffix=${module: -3}
if [[ "$module_suffix" == ".xz" ]]; then
unxz $module
$signfile sha256 "${key}" "${der}" "${module_basename}"
xz -f ${module_basename}
else
$signfile sha256 "${key}" "${der}" "${module_basename}"
fi
echo "signed $module"
done
done