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.