Có cách nào đơn giản, an toàn để kích hoạt khóa GPU trên máy tính nhạy cảm không?


8

Câu trả lời cho câu hỏi trước đây của tôi, Ubuntu 12.04 bị đóng băng, yêu cầu power mach. Tôi nên tìm / grep để làm gì trong nhật ký? , đã khiến tôi nghi ngờ rằng máy tính của tôi đang bị khóa GPU không liên tục. Nó đã xảy ra khoảng một lần một tuần, thường là khi tôi đang sử dụng Chrome. Hôm nay nó xảy ra khi tôi đang tạo một sơ đồ trên lucidchart

Tôi có Dell Optiplex 755 với ATI Radeon HD 2400 XT và màn hình kép chạy ở chế độ Xinerama. Tôi đang sử dụng 12.04 với trình điều khiển ATI độc quyền được cài đặt.

Khi máy tính bị khóa, tôi vẫn có thể ssh. Và tôi muốn làm theo các hướng dẫn về báo cáo này được cung cấp tại https://wiki.ub Ubuntu.com/X/Troubledh Boot / Freeze

Có cách nào (an toàn) để gây ra khóa GPU để tôi có thể tiếp tục và báo lỗi, thay vì đợi cho đến khi nó xảy ra lần nữa không?

Câu trả lời:


11

Câu hỏi tuyệt vời.

Khối lượng công việc

Thư mục / usr / share / xdiagnose / workloads có một tập các khối lượng công việc được thiết kế để thực hiện hệ thống đồ họa của bạn để kích hoạt khóa.

$ ls /usr/share/xdiagnose/workloads/
README                       do_monitor_rotation_loop
do_chws_loop*                do_screensaver_loop*
do_cpu_spin_loop             do_video_loop*
do_disk_write_loop           do_vtswitch_loop*
do_glx_loop*                 repro.sh
do_kernel_compile_loop       run_workloads
do_monitor_disable_loop*     youtube-loop.html
do_monitor_resolution_loop*  youtube-reload.html

Lưu ý rằng để chạy chúng, bạn cần phải vượt qua 'chạy'. Ví dụ:

$ do_glx_loop chạy

Không có đối số các kịch bản sẽ hiển thị sử dụng. Một phần là vì sự an toàn (trong trường hợp mọi người chỉ mù quáng chạy tập lệnh), nhưng chủ yếu là để giữ cho API của tập lệnh gọn gàng.

Những người tôi đã đóng vai chính có lẽ là những người tốt nhất để bắt đầu. Tôi sẽ bắt đầu bằng cách chỉ chạy một kịch bản một lần và để nó đi một vài giờ. Nếu hệ thống của bạn tồn tại đủ tốt, thì hãy thử chạy hai hoặc nhiều hơn cùng một lúc.

Lưu ý rằng bản thân tôi đã không kiểm tra những siêu này rất nhiều, vì vậy không thể hứa rằng chúng không có lỗi. Nhưng chúng là các đoạn script khá ngắn và đơn giản nên hy vọng dễ sửa, và các bản vá tốt được chào đón rất nhiều.

Cũng lưu ý rằng chúng hoàn toàn có khả năng có thể kích hoạt các khóa không liên quan đến vấn đề bạn đang cố gắng giải quyết. Tất cả các khóa GPU đều trông giống hệt với mắt chưa được huấn luyện vì chúng có cùng các triệu chứng, ít nhiều.

Nhật ký

Nếu bạn đang ở trên Intel Graphics, có / sys / kernel / debug / Dri / 0 / i915_error_state mà bạn muốn. Đây là một ảnh chụp nhanh về trạng thái đăng ký tại thời điểm treo và trên cùng của nó chứa một số mã lỗi. IPEHR, PGTBL_ER, ESR, EIR. Ghép các mã đó lên để xem bạn có lỗi tương tự hay tương tự không.

Nếu bạn không ở trên Intel Graphics (như trong trường hợp này thì bạn không) hoặc nếu bạn không thấy các tệp i915_error_state được tạo, thì dmesg và /var/log/kern.log là những gì cần xem xét. Đôi khi với việc khóa gpu, chúng sẽ cho biết việc khóa GPU bị gây ra bởi hoặc trong.

Trình điều khiển -ati mã nguồn mở có radeontool và avivotool, để nắm bắt các trạng thái đăng ký. Chúng chủ yếu dành cho openource -ati, nhưng các công cụ cũng sẽ hoạt động với -fglrx. Tôi chưa bao giờ thấy nó yêu cầu một lỗi -fglrx, nhưng chắc chắn nó không thể làm tổn thương.

Kiểm tra

Đối với tất cả các trình điều khiển, bước tiếp theo thường là bắt đầu thử nghiệm các phiên bản trình điều khiển mới hơn hoặc cũ hơn. Đối với trình điều khiển độc quyền, bạn có thể kiểm tra ppa-x-update nhưng có lẽ bạn sẽ phải tải xuống và cài đặt trình điều khiển theo cách thủ công từ trang web của nhà cung cấp (và làm rối tung việc đóng gói hệ thống của bạn). Đối với các trình điều khiển FOSS như -intel, -nouveau, -ati có nghĩa là thử nghiệm các hạt nhân mới hơn hoặc mesa mới hơn. Chúng tôi cung cấp các bản dựng đóng gói của các hạt nhân mới hơn tại http://kernel.ubfox.com/~kernel-ppa/mainline/ . Đối với mesa, có nhiều PPA khác nhau như xorg-edgers. Tôi cũng đang trong quá trình chuẩn bị bản cập nhật 8.0.3 cho chính xác, chúng tôi tin rằng sẽ sửa một số bản khóa cho Đồ họa Intel.

Trong mọi trường hợp, đừng chỉ dừng lại khi bạn tìm thấy một phiên bản hoạt động. Hãy thử các phiên bản khác ở giữa phiên bản làm việc của bạn và phiên bản bị hỏng. Nếu bạn có thể thu hẹp khung thành hai phiên bản liền kề, điều đó có thể cực kỳ hữu ích cho các nhà phát triển trong việc cô lập bản vá nào gây ra hồi quy.

Đóng góp

Khi bạn khắc phục sự cố, bạn có thể phát hiện ra lỗi hoặc có thể đưa ra các cải tiến cho tập lệnh hoặc tài liệu. Đóng góp cho bất kỳ trong số này được chào đón nồng nhiệt. Với các tài liệu wiki, xin vui lòng chỉ cần tiếp tục và chỉnh sửa! Tôi cố gắng cập nhật chúng ít nhất một lần một năm, nhưng tôi không phải lúc nào cũng tìm đến nó và anh chàng tiếp theo ghé thăm trang chắc chắn sẽ đánh giá cao nỗ lực của bạn trong việc cải thiện chúng.

Đối với những thay đổi cho các kịch bản, cũng khá hoan nghênh. Gửi cho tôi những thay đổi tuy nhiên bạn cảm thấy thoải mái - như các bản vá, một nhánh bzr hoặc git hoặc thậm chí chỉ là bản sao của tập lệnh. Nếu bạn có kế hoạch thực hiện nhiều thay đổi, một nhánh bzr với đề xuất hợp nhất là cách ưa thích; hướng dẫn về cách thực hiện việc này có sẵn tại code.launchpad.net hoặc vui lòng gặp tôi trên IRC nếu bạn có thắc mắc.

Hoặc, nếu bạn chưa sẵn sàng đào sâu vào mã hóa nhưng muốn gắn cờ các lỗi hoặc các khu vực cần thêm chức năng, bạn có thể gửi báo cáo lỗi theo cách thông thường ( ubuntu-bug xdiagnose).

Sửa chữa nhanh chóng

Nếu bạn không quan tâm đến việc thực hiện bất kỳ sửa lỗi nào ở trên, đây là một số mẹo ngẫu nhiên:

Đối với trình điều khiển độc quyền, hãy thử gỡ cài đặt và xóa chúng hoàn toàn khỏi hệ thống của bạn, sau đó cài đặt lại từ đầu. Điều này không may "giải quyết" rất nhiều lỗi ...

Đối với trình điều khiển FOSS, có nhiều bộ chuyển đổi nhân khác nhau mà bạn có thể chơi xung quanh. Đối với các lỗi 3D / mesa, cũng có driconf để điều chỉnh các cài đặt khác nhau.

Cuối cùng

Cuối cùng, một yêu cầu ... vui lòng không gửi báo cáo lỗi cho Launchpad về "đóng băng ngẫu nhiên" cho đến khi bạn thực hiện ít nhất một chút điều tra như mô tả ở trên. Nếu không, bạn sẽ thêm vào tiếng ồn.

Chúng tôi cố gắng tìm ra các báo cáo lỗi được nghiên cứu kỹ lưỡng; chúng tôi tìm thấy những thứ này để tạo ra tiếng nổ cao hơn cho buck, và có nhiều khả năng kết thúc với một bản sửa lỗi thực tế cho bản phân phối.


Cảm ơn bạn cho câu trả lời của bạn. Bạn có phải là tác giả của wiki đóng băng xử lý sự cố ? Có vẻ như các tập lệnh xdiagnose / khối lượng công việc nên được đề cập ở đó - tôi sẽ chỉnh sửa nhưng không chắc chắn rằng tôi sẽ làm điều đó tốt như bạn. Ngoài ra, bạn không đề cập đến việc sử dụng radeontool ở đây, nhưng nó được đề cập trong wiki. Tôi vẫn nên sử dụng radeontool trong trường hợp của tôi?
Abe

Ngoài ra, liệu một tập lệnh chạy tất cả các tập lệnh trong xdiagnose / khối lượng công việc, bắt đầu tuần tự với các tập lệnh mà bạn đã in hoa thị, có hữu ích không? Cuối cùng, tôi có thể học cách gửi thay đổi ở đâu?
Abe

Đây là lỗi đầu tiên tôi tìm thấy (tôi nghĩ): do_chws_loop và do_glx_loop yêu cầu wmctrl, do_glx_loop yêu cầu glxgears, nhưng không tập lệnh nào "bao gồm chức năng để kiểm tra và cài đặt những gì nó cần." như được mô tả trong README. Tôi có thể có thể bắt đầu thêm chức năng như vậy, nhưng tôi có cần gửi một lỗi trước và sau đó sửa nó không? Và, có ổn không nếu tôi phải mất năm dòng nếu ... khác ...? Hoặc có một 'cách ưa thích' ... và điều này có nghĩa là các tập lệnh nên được chạy dưới quyền root? ... tại sao yêu cầu một đối số "chạy"? Xin lỗi cho tất cả các câu hỏi, tôi chỉ muốn có thể giúp đỡ nếu tôi có thể.
Abe

Chắc chắn, không có thăm dò, tôi sẽ cập nhật câu trả lời của tôi để bao gồm những điểm đó.
Bryce

Như bộ câu hỏi thứ ba của bạn. Có, việc kiểm tra kịch bản cho những gì họ cần đã có trong danh sách TODO của tôi. nếu ... các khối khác chắc chắn là một điểm khởi đầu tốt. Cuối cùng, tôi muốn có thể cho phép người dùng chạy các tập lệnh từ GUI, vì vậy họ muốn họ "truyền đạt" các yêu cầu của họ trở lại GUI để nó có thể làm mờ chúng nếu người dùng không có yêu cầu. Nhưng tôi còn lâu mới có thể làm điều đó, vì vậy chỉ cần kiểm tra đơn giản cho dòng lệnh là nơi thích hợp để bắt đầu.
Bryce
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.