NVIDIA-PRIME: Không thể chuyển sang intel


10

Bất cứ khi nào tôi chuyển từ gpu (gtx 1060) sang igpu của mình (Intel 530), tôi không thể khởi động. Màn hình tải bị kẹt với thông báo sau:

[Thất bại] Không thể khởi động NVIDIA Persistence Daemon. Xem 'systemctl status nvidia-continenced.service' để biết chi tiết.

Tuy nhiên, tôi có thể khởi động khi tôi quay lại gpu Nvidia và chuyển sang igpu của mình mà không cần khởi động lại hoạt động tạm thời. Tôi đang sử dụng Kubfox 16.10 và chỉ hiển thị máy tính xách tay nội bộ của tôi. Đó là đầu ra khi tôi chuyển sang igpu của mình:

sudo prime-select intel
Info: the current GL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: the current EGL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: selecting nvidia-378-prime for the intel profile
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

sudo prime-select nvidia
Info: the current GL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: the current EGL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: selecting nvidia-378 for the nvidia profile
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

Kết quả của lspci -k | grep -EA2 'VGA | 3D'

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
        DeviceName:  Onboard IGD
        Subsystem: CLEVO/KAPOK Computer HD Graphics 530
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060] (rev a1)
        Subsystem: CLEVO/KAPOK Computer Device 6a03
        Kernel driver in use: nvidia

Tôi đã cố gắng tự mình giải quyết vấn đề này trong hơn một tuần và không biết phải làm gì. Mọi thứ tôi đã thử đều thất bại.

Liệu bạn có thể giúp mình không?

CẬP NHẬT 5.2.2017:

Tôi đã thử nghiệm lại ngày hôm nay và nhận ra rằng việc chuyển sang gpu intel hoàn toàn không hoạt động với 375 và 378. Đăng xuất đóng băng màn hình. Vậy tại sao nó hoạt động một lần? Nếu tôi cài đặt lại tất cả các trình điều khiển sau khi tôi xóa các trình điều khiển cũ và sau đó sử dụng intel select Prime (không khởi động lại!), Prime-select không cập nhật các cấu hình chính -> Nó chọn một trong các cấu hình không phải nvidia cũ (cấu hình mesa thay vì nvidia) và nó hoạt động. Nhưng ngay sau khi tôi chuyển sang cấu hình nvidia hoặc khởi động lại, các cấu hình chính được cập nhật và nó không hoạt động nữa. Vì vậy, tôi đoán có điều gì đó không đúng với các lựa chọn thay thế EGl cho gpu intel? Xin lỗi đã làm phiền.

CẬP NHẬT 12.2.2017:

Hôm qua, tôi đã sửa đổi phần mềm nvidia-Prime và sửa lỗi. Tôi sẽ sớm xuất bản (có thể vào tuần tới) phiên bản sửa đổi của mình và dán một liên kết ở đây, nhưng tôi vẫn gặp phải một vấn đề: khi tôi tắt PC sau khi tôi thực thi sudo prime-select intel:

ksmserver gặp sự cố (Tôi đang sử dụng Kubfox, có lẽ không phải là vấn đề với Ubuntu)

-> PC không thể tắt hoàn toàn và các lựa chọn thay thế cập nhật (sai) cũ cho GPU Intel được khôi phục

-> Tôi không thể khởi động.

Tuy nhiên, nếu tôi chạy sudo prime-select intelsau khi tắt máy ở chế độ phục hồi thì mọi thứ đều hoạt động tốt và tôi có thể sử dụng GPU Intel.

CẬP NHẬT 17.2.2017:

Tôi đã đăng tải cách giải quyết của mình và tôi vẫn đang cố gắng sửa lỗi trong Kho chính thức. Tuy nhiên, đây có lẽ là một lỗi trong các lựa chọn thay thế cập nhật, vì vậy tiếp theo tôi phải đăng một báo cáo lỗi ở đó.

Trong khi chờ đợi, hãy tận hưởng cách giải quyết của tôi! Hy vọng nó cũng làm việc cho bạn. Nếu có bất kỳ câu hỏi xin vui lòng để lại nhận xét.

CẬP NHẬT 26.2.2017

Như @whizzzkid đã chỉ ra, card đồ họa nvidia vẫn hoạt động sau khi áp dụng bản vá của tôi. Tuy nhiên, hôm nay tôi đã có thể giải quyết vấn đề này. Tôi có thể sẽ cập nhật câu trả lời của tôi để bao gồm bản vá thứ 2 vào tuần tới. Dưới đây là một số thử nghiệm tôi đã chạy:

Nvidia: 43-45W

Intel (nvidia trên): 29-31W

Intel (tắt nvidia): 15-17W


Vui lòng chỉnh sửa câu hỏi của bạn và thêm đầu ra của lspci -k | grep -EA2 'VGA|3D' lệnh đầu cuối.
Pilot6

Ồ, tôi thấy 10xx mcuối cùng không có ngay cả khi chúng là điện thoại di động.
Pilot6

Có lẽ nvidia-primekhông hỗ trợ này.
Pilot6

Chà, điều thú vị là, nó hoạt động miễn là tôi không khởi động lại. Tôi có thể sử dụng igpu nếu tôi đăng xuất và đăng nhập lại. Nhưng ngay khi tôi khởi động lại, nó không hoạt động nữa. Và gv Nvidia hoạt động, và được hỗ trợ bởi trình điều khiển.
C11235

1
Tôi đã sử dụng powertop để theo dõi việc sử dụng năng lượng. Nó chỉ hiển thị mức tiêu thụ năng lượng nếu bạn sử dụng pin làm nguồn điện. Hãy xem câu hỏi này hoặc trang người đàn ông đó để biết thêm thông tin.
C11235

Câu trả lời:


3

Đây là bản sửa lỗi / cách khắc phục lỗi của tôi:

Nếu bạn muốn sử dụng ong nghệ thay vì nvidia-Prime, hãy xem câu trả lời được cung cấp bởi @whizzzkid dưới đây.

Đã thử nghiệm với Kubfox 16.10 64 bit bằng KDE Plasma Phiên bản.7.5 và Khung KDE Phiên bản 5.26.0. Các bước sau đây làm việc cho tôi. Tôi hy vọng họ cũng sẽ làm việc cho bạn, nhưng tôi không thể đảm bảo điều đó và không chịu trách nhiệm nếu họ không làm vậy. Nhưng tôi rất vui lòng giúp bạn nếu bạn để lại nhận xét.

Trong trường hợp của tôi, vấn đề là bản cập nhật thay thế / usr / lib / nvidia-XYZ-Prime / hoàn toàn không hoạt động. Nó được cho là chuyển hướng các cuộc gọi đến trình điều khiển intel-mesa, nhưng vì một số lý do, nó đã không được. Vì vậy, có lẽ sau tất cả một lỗi trong cập nhật thay thế? Tôi vẫn chưa tìm thấy một nơi để báo cáo lỗi cho các lựa chọn thay thế cập nhật. Hãy bình luận nếu bạn có thể giúp tôi.

Về cơ bản, tôi đã sửa đổi nvidia-Prime một chút để thay đổi trực tiếp các lựa chọn thay thế cập nhật thành trình điều khiển intel-mesa thay vì / usr / lib / nvidia-XYZ-Prime /.

Quan trọng:

Trước khi bạn áp dụng bất kỳ bước nào trong số các bước này, hãy đảm bảo biết cách truy cập chế độ khôi phục trên PC. Nếu bạn không thể khởi động được nữa do hướng dẫn này, bạn vẫn có thể hoàn tác các thay đổi trong chế độ khôi phục bằng các lệnh trong phần cuối của hướng dẫn này. Xem trang web này về cách truy cập chế độ phục hồi để biết thêm thông tin.

Nếu bạn sử dụng hệ điều hành 32 bit , bạn phải loại bỏ tất cả các lệnh có chứa x86_64 trong Bước 4 và trong phần Cách hoàn tác tất cả các sửa đổi này .


Bước 1:

Cài đặt bản vá của tôi bằng một phương pháp dễ dàng được cung cấp bởi @whizzzkid trong câu trả lời của anh ấy bên dưới:

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Bước 2:

Áp dụng bản vá thứ hai của tôi để giảm mức tiêu thụ năng lượng ở chế độ intel:

Kiểm tra phiên bản trình điều khiển nvidia nào bạn có. Ví dụ với lệnh sau:

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  378.13  Tue Feb  7 20:10:06 PST 2017
GCC version:  gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)

Trong trường hợp này nvidia-XYZ là nvidia-378. Xem chủ đề Stackoverflow này .

Tạo một tệp bash chứa các nội dung sau có tên ví dụ poweroff.sh

#!/bin/bash
line=$(</etc/prime-discrete)
if [ "$line" == "off" ] 
   then
   rmmod nvidia-drm
   rmmod nvidia-modeset
   rmmod nvidia
   bash -c 'echo OFF > /proc/acpi/bbswitch'
fi 

Tạo một tệp bash thứ hai chứa các nội dung sau có tên là poweron.sh và thay thế XYZ bằng số phiên bản trình điều khiển nvidia của bạn.

#!/bin/bash
modprobe nvidia-XYZ
modprobe nvidia-XYZ-modeset
modprobe nvidia-XYZ-drm
modprobe nvidia-XYZ-uvm
echo ON > /proc/acpi/bbswitch

Trong chế độ Intel, bạn phải chạy tập lệnh đầu tiên sau khi đăng nhập bằng sudo và tập lệnh thứ hai trước khi đăng xuất bằng sudo (nếu không máy tính xách tay của bạn có thể bị sập, như trong trường hợp của tôi). Tôi chỉ thực hiện chúng với sudo bash FILENAME.

Cho đến nay tôi không thể tự động khởi động các tập lệnh này dưới quyền root khi đăng nhập và trước khi đăng xuất. Tuy nhiên, có thể là có thể với sự khởi đầu, như @Fiximan đã chỉ ra. Tôi có thể cập nhật câu trả lời này một lần nữa trong tương lai nếu tôi quản lý để làm như vậy.


(có thể) Lỗi cụ thể KDE Plasma:

Vẫn còn một lỗi mà tôi không thể sửa trong KDE Plasma: Bất cứ khi nào tôi chuyển từ Nvidia sang Intel sau khi tôi khởi động PC ở chế độ nvidia, ksmserver bị hỏng và PC không thể sử dụng được, tôi phải tắt nó bằng cách nhấn nút nguồn trong khoảng 5-10 giây. Điều này đôi khi dẫn đến các thay thế cập nhật được thay đổi thành nvidia-Prime thay vì intel-mesa dẫn đến màn hình đen khi khởi động .

Nếu bạn tình cờ bị ảnh hưởng bởi lỗi ksmserver, vui lòng đóng góp vào báo cáo lỗi chính thức trên bug.kde.org .

Tuy nhiên, có thể tránh được vấn đề PC không tắt máy bằng cách luôn chọn chế độ intel trước khi tắt máy , ngay cả khi bạn sử dụng chế độ nvidia. Nếu bạn làm điều này, mọi thứ sẽ hoạt động như bình thường và bạn không cần phải tắt PC bằng cách nhấn và giữ nút nguồn trừ khi bạn áp dụng hướng dẫn này ở chế độ nvidia.

Một cách giải quyết đơn giản cho lỗi màn hình đen khi khởi động là chỉ cần loại bỏ hoàn toàn các lựa chọn thay thế cập nhật không hoạt động:

Bước 1:

Bạn có thể truy cập lại PC sau khi vào chế độ khôi phục, chọn shell lệnh gốc và thực hiện 2 lệnh sau:

mount -o remount,rw /
prime-select nvidia

Bước 2:

Thực hiện các lệnh sau:

sudo update-alternatives --remove i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf

Làm thế nào để hoàn tác tất cả các sửa đổi

Chỉ cần thực hiện các lệnh sau:

sudo rm /usr/bin/prime-select
sudo mv /home/YOUR-USERNAME/prime-select.backup /usr/bin/prime-select
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603

1
Kiểm tra câu trả lời của tôi dưới đây.
whizzzkid

Này anh bạn, cảm ơn rất nhiều vì điều này! Khi tôi chạy tập lệnh poweroff của bạn, com của tôi chỉ bị treo (trước khi đăng xuất). Có một sửa chữa khác?
Wboy

Thật không may, tôi không biết bất kỳ sửa chữa khác. Điều này hoạt động trong trường hợp của tôi. Vấn đề của bạn cũng xảy ra trong trường hợp của tôi, như tôi đã viết, nhưng chỉ lần đầu tiên. Như tôi đã viết, bạn phải chuyển về Intel trước khi đăng xuất. Sau đó, lỗi này sẽ không xảy ra. (Ít nhất là trong trường hợp của tôi).
C11235

Xin chào @ C11235 Cảm ơn bạn đã sửa chữa. Tôi muốn hỏi bạn vài điều: Lần đầu tiên tôi cài đặt trình điều khiển nvidia mặc định được đặt trong nvidia. Vậy khi nào tôi nên chạy tập lệnh? và bạn có nghĩa là gì khi đăng nhập với quyền root?
Glats

Thật không may, phần này trong câu trả lời của tôi là một chút mơ hồ. Tôi có nghĩa là bạn đăng nhập và sau đó chạy tập lệnh dưới dạng root (ví dụ với sudo). Bạn nên chạy tập lệnh khi vừa đăng nhập và đã chuyển sang chế độ intel. Điều này lần lượt vô hiệu hóa hoàn toàn GPU nvidia. Cái thứ hai nên được thực hiện trước khi đăng xuất trong chế độ intel.
C11235

2

Bản vá của @ C11235 hoạt động, bây giờ tôi có thể chuyển đổi giữa nvidia và intel, nhưng điều này không làm giảm mức tiêu thụ điện năng. : - / có nghĩa là cả hai vẫn đang chạy.

BTW đây là một cách dễ dàng hơn để làm điều này.

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Cảm ơn bạn! Thật không may, bạn đã đúng, xem câu hỏi cập nhật của tôi. Bạn có phiền nếu tôi cập nhật câu trả lời của mình để bao gồm phương pháp cài đặt dễ dàng hơn không?
C11235

@ C11235 ồ chắc chắn rồi. Tôi đã có thể tìm ra tất cả điều này: gist.github.com/whizzzkid/37c0d365f1c7aa555885d102ec61c048 Tôi đang chạy 5,8W khi không hoạt động.
whizzzkid

Được, nó tuyệt đấy! Tôi đã kiểm tra hướng dẫn của bạn và nguyên nhân khiến mức tiêu thụ điện năng giảm xuống giống như trong trường hợp của tôi. Tôi đã viết một tập lệnh sử dụng bbswitch để vô hiệu hóa GPU nvidia nếu chọn chế độ intel bật tắt. Trong trường hợp của tôi, điều này thuận tiện hơn, vì tôi có một màn hình ngoài và gần như chỉ sử dụng chế độ nvidia, đó là lý do tại sao tôi muốn sử dụng nvidia-Prime thay vì bumblebee. Ngoài ra, hiệu suất khi sử dụng nvidia-Prime được cho là tốt hơn so với khi sử dụng ong nghệ.
C11235 ngày

2

Giải pháp cho việc không khởi động sau khi chuyển sang intel videocard:
Thêm tham số khởi động kernel:

acpi_osi=! acpi_osi="Windows 2009"

Lý do của vấn đề này: lỗi # 156341 trong kernel
Giải pháp nguồn: link

Một số chi tiết hơn, có thể nó sẽ dễ hiểu hơn:

sudo echo -e "GRUB_CMDLINE_LINUX_DEFAULT='acpi_osi=! acpi_osi='Windows 2009''"  | sudo tee -a /etc/default/grub
sudo update-grub

Ở dạng hiện tại, câu trả lời của bạn không tốt như nó có thể. Bạn có thể xem lại Cách viết câu trả lời hay không và xem xét mở rộng câu trả lời của bạn
J. Starnes

Điều này thực sự có hiệu quả với tôi, nhưng câu trả lời có thể được cải thiện. Tôi sẽ đề nghị cải tiến
Vladyslav Matviienko

1

Sự cố có thể xảy ra với Bản sửa lỗi thứ 2: Lệnh cuối cùng của lời nhắc mô tả "poweroff"

    bash: /proc/acpi/bbswitch: No such file or directory

Rõ ràng, khi tôi khởi động lại ở chế độ Intel (Thay đổi chế độ sẽ không có hiệu lực cho đến khi tôi khởi động lại, không biết điều này có bình thường không), mô-đun bbswitch thậm chí không được tải. Vì vậy, không có tập tin bbswitch và không có cách nào để tắt GPU nvidia.

Tôi đang sử dụng:

  • Máy tính xách tay MSI (GL72 7RDX)
  • GPU tích hợp: Intel® HD Graphics 630 (Kaby Lake GT2)
  • GPU riêng: Geforce GTX 1050
  • HĐH: Ubuntu 16.04 lts

Giải pháp cho vấn đề này:

Chỉnh sửa tệp / etc / mô-đun (với quyền root) và thêm dòng

    bbswitch

Bây giờ bbswitch Hoạt động ngay cả khi tôi khởi động ở chế độ intel và bản sửa lỗi thứ hai của C11235 hoạt động tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.