Нет такой вещи, как нагрузка на центральный процессор.
Средняя загрузка определяется как количество процессов, ожидающих системных ресурсов. Это не обязательно процессор. Также, так как процесс может ожидать процессорного времени и не работает активно на центральном процессоре, вы не можете приписать его какому-либо конкретному процессору, так как процесс может закончиться на любом процессоре (если только он не подключен).
Однако вы можете получить коэффициент использования % на один процессор. Используйте /proc/stat
и используйте 4-е поле каждого процессора, чтобы определить, насколько простаивает этот процессор (см. man 5 proc
и раздел /proc/stat
).
В основном читаем значение, спим 1 секунду, читаем значение еще раз, делим разницу на USER_HZ.
Вот как я получил программное обеспечение kmod -nvidia от rpmfusion nonfree, работающее с Fedora 26 на машине, сконфигурированной для «безопасной загрузки» / UEFI. Я получал сообщение об ошибке «необходимый ключ недоступен» при запуске modprobe для модулей ядра nvidia.
Можно и не слишком сложно оставить включенной безопасную загрузку UEFI и запустить проприетарный драйвер 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 = username@example.com
[ 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.