<h1> Chứng chỉ nhị phân cổ phiếu Xorg là gì </ h1>
Tải qua App Store Đọc bài đăng này trong ứng dụng của chúng tôi!
Tôi nên cài đặt trình điều khiển video nào X. Org X Server hoặc Trình điều khiển nhị phân Nvidia.
Vì vậy, tôi chỉ cần cài đặt ubuntu và bây giờ tôi đang cập nhật trình điều khiển video của tôi.
Tôi hiện diện với những lựa chọn sau đây.
Tôi nên chọn cái nào Và nếu có thể, tại sao? Có một số lợi thế hơn khác?
Câu hỏi hoàn hảo.
Bạn có thể xem trang này để giải thích chi tiết và chuẩn:
Nhưng để nói đơn giản, nếu bạn định chơi các trò chơi điện tử thế hệ mới trên hệ thống của bạn, hoặc làm bất kỳ công việc nào làm nặng tải card đồ họa, bạn nên sử dụng các trình điều khiển nvidia độc quyền.
Nếu không, bạn hoàn toàn khỏe mạnh với các trình điều khiển nguồn mã nguồn mở.
Câu trả lời ngắn: Trình điều khiển NVIDIA tốt hơn. Nhân tiện, bạn phải vô hiệu hóa cập nhật trình điều khiển video của Nvidia (xóa hoặc vô hiệu hoá ppa) nếu bạn không muốn "tiêu huỷ" distro của mình.
<h1> Chứng chỉ nhị phân cổ phiếu Xorg là gì </ h1>
Tải qua App Store Đọc bài đăng này trong ứng dụng của chúng tôi!
Sự cố Với trình tự nngôn 389.40 của NVIDIA và trình điều khiển Nouveau vào ngày 17.10.
tôi kinda có một vấn đề duy nhất với nouveau (xorg) - server và trình điều khiển nvidia-384.90.
Vì vậy, vấn đề là sau đây,
Với Xorg Server / Wayland tôi không nhận được một đầu ra trên màn hình DisplayPort của tôi nhưng trên DVI-I + VGA Adapter Monitor của tôi, tôi nhận được một đầu ra. Ngoài ra với trình điều khiển nouveau có rất nhiều Stuttering, mà không xuất hiện với Driver Nvidia.
Với Driver Nvidia tôi nhận được một đầu ra trên DisplayPort Monitor của tôi nhưng không có trên DVI-I + VGA Adapter Monitor của tôi.
Sử dụng Ubuntu 17.10 và eGPU GTX770 trên Lenovo X230T.
<h1> Chứng chỉ nhị phân cổ phiếu Xorg là gì </ h1>
Tải qua App Store Đọc bài đăng này trong ứng dụng của chúng tôi!
Tùy chọn bổ sung cho NVIDIA bổ sung tốt nhất [đóng]
Xin chào, Dưới Các trình điều khiển bổ sung, có một vài lựa chọn để lựa chọn, nhưng đó là một trong những tốt nhất?
Sử dụng trình điều khiển Xorg nhị phân NVIDIA, mô đun hạt nhân và thư viện VDPAU từ bản cập nhật nvidia-310 (độc quyền, được thử nghiệm)
Sử dụng trình điều khiển Xorg nhị phân NVIDIA, mô-đun hạt nhân và thư viện VDPAU từ bản cập nhật nvidia-310 (thuộc quyền sở hữu)
Sử dụng trình điều khiển Xorg nhị phân NVIDIA, mô đun hạt nhân và thư viện VDPAU từ nvidia-304 (độc quyền)
Sử dụng trình điều khiển Xorg nhị phân NVIDIA, mô-đun nhân và thư viện VDPAU từ bản nâng cấp nvidia-304 (độc quyền)
Sử dụng trình điều khiển Xorg nhị phân NVIDIA, mô đun hạt nhân và thư viện VDPAU từ bản cập nhật nvidia-313 (độc quyền)
Người cuối cùng và người mà tôi đã chọn:
Sử dụng trình điều khiển X. Org X server - Nouveau hiển thị trình điều khiển từ xserver-xorg-video-nouveau (mã nguồn mở)
đóng cửa như ý kiến chủ yếu dựa trên Pilot6, Elder Geek, Eric Carvalho, David Foerster, WinEunuuchs2Unix ngày 1 tháng 12 '16 lúc 3:05.
Nhiều câu hỏi hay tạo ra một số ý kiến dựa trên kinh nghiệm của chuyên gia, nhưng câu trả lời cho câu hỏi này hầu như hoàn toàn dựa trên ý kiến chứ không phải là sự kiện, tài liệu tham khảo hoặc chuyên môn cụ thể. Nếu câu hỏi này có thể được sắp xếp lại để phù hợp với các quy tắc trong trung tâm trợ giúp, vui lòng chỉnh sửa câu hỏi.
Nouveau là trình điều khiển Linux nguồn mở, và cộng đồng (bạn, tôi, những người khác) thực sự có thể nhìn thấy hoặc thay đổi mã nguồn cho trình điều khiển này. Bạn có thể gửi báo cáo lỗi cho trình điều khiển này và cộng đồng có thể phản hồi các sự cố của bạn với các bản sửa lỗi.
Các trình điều khiển khác được liệt kê là tất cả sở hữu (thuộc sở hữu của Nvidia). Đây là mã nguồn đóng, vì vậy chúng tôi không thể nhìn thấy hoặc thay đổi mã. Chỉ có Nvidia mới có thể thực hiện các bản sửa lỗi và cập nhật mã này. Số phiên bản cao hơn, trình điều khiển mới hơn; vì vậy nvidia-313-cập nhật mới hơn nvidia-304-cập nhật. Các công cụ trong dấu ngoặc đơn bên cạnh phiên bản chỉ cho bạn một ít thông tin hơn. Một số người có thể gặp sự cố với trình điều khiển Nvidia Linux mới nhất và có thể chọn sử dụng một trình điều khiển cũ hơn / đã được kiểm tra.
Nếu bạn đang chơi game, bạn có thể muốn sử dụng trình điều khiển độc quyền của Nvidia. Các trình điều khiển độc quyền mới hơn quản lý điện năng tiêu thụ tốt hơn (tốt cho một máy tính xách tay) và có thể cho hiệu suất tốt hơn. Tuy nhiên, có thể có một số trục trặc với các trình điều khiển độc quyền; cá nhân tôi đã có kinh nghiệm các cửa sổ màu đen với một số hiệu ứng compiz trong Ubuntu.
Nếu mọi thứ đang hoạt động tốt cho bạn, bạn có thể gắn bó với trình điều khiển Nouveau nguồn mở. Từ những gì tôi nghe, trình điều khiển nguồn mở cho card đồ họa Nvidia đã nhận khá tốt gần đây.
Tài liệu Ubuntu.
Bài viết này bao gồm các tài liệu tương tự như bài báo khác. Thêm thông tin.
Có hai loại trình điều khiển mà chúng tôi có thể sử dụng: Trình điều khiển nguồn mở và độc quyền. Hướng dẫn này và các trang phụ của nó mô tả làm thế nào để cài đặt các trình điều khiển nhị phân / hạn chế độc quyền được cung cấp bởi các nhà sản xuất card màn hình.
Nếu bạn gặp lỗi với các trình điều khiển nguồn đóng, các nhà phát triển sẽ không thể hoặc thậm chí sẵn sàng hỗ trợ bạn trong việc giải quyết các vấn đề của bạn. Sử dụng có nguy cơ của riêng bạn .
Một lưu ý về trình điều khiển nguồn mở.
Trình điều khiển nguồn mở đã được cộng đồng Linux tạo ra để hoạt động với một số loại thẻ video và hầu hết các card màn hình đều có trình điều khiển nguồn mở. Ngoài ra, phần cứng cũ hơn thường được hỗ trợ tốt hơn bởi trình điều khiển nguồn mở. Trong một số trường hợp, không có trình điều khiển độc quyền cho card đồ hoạ (như Radeon không phải là HD) và cài đặt trình điều khiển đó sẽ chỉ dừng trình điều khiển nguồn mở hoạt động bình thường. Những loại trình điều khiển này thường được cấp phép với GPL và chúng tôi có thể sử dụng các trình điều khiển này một cách tự do. Lợi thế của việc sử dụng các trình điều khiển nguồn mở là chúng được hỗ trợ bởi cộng đồng và lỗi do các lập trình cộng đồng. Những bất lợi là trình điều khiển nguồn mở đôi khi không cung cấp hỗ trợ đầy đủ cho tất cả các tính năng của card màn hình. Tuy nhiên, điều này đang thay đổi, với sự ra đời của việc triển khai gallium.
Xác định thẻ video của bạn.
Để xác định nhãn và mô hình làm bằng thẻ, hãy chạy lệnh này từ thiết bị đầu cuối:
Có thể tìm thấy thông tin chi tiết hơn bằng cách chạy.
Hướng dẫn cài đặt cơ bản.
Cách đơn giản nhất để cài đặt trình điều khiển nhị phân là sử dụng trình quản lý bổ sung Trình quản lý bổ sung trong Ubuntu.
Không có X / từ bảng điều khiển.
Nếu bạn cần thay đổi trình điều khiển mà không sử dụng X GUI, có lẽ vì những trình điều khiển không được cài đặt, bạn có thể với các lệnh sau:
Ubuntu 14.04 LTS và phiên bản mới hơn, lệnh này sẽ hiển thị tất cả các thiết bị cần trình điều khiển và gói nào áp dụng cho chúng:
Ubuntu 12.04 LTS, sử dụng lệnh jockey-text:
Hướng dẫn Cài đặt Chi tiết hơn.
Đây là một số liên kết hữu ích và các trang liên quan. Trình điều khiển.
RadeonDriver: Trình điều khiển Radeon của ATI / AMD.
AMDGPU-Driver: Trình điều khiển AMDGPU nguồn mở của AMD cho các card đồ họa mới hơn.
Diễn đàn Ubuntu - Đặt câu hỏi của bạn ở đây.
BinaryDriverHowto / DynamicMultiMonitor - Làm thế nào để tự động thiết lập độ phân giải màn hình nhiều.
Nếu bạn có thẻ video dựa trên Matrox, bạn cũng có thể thử các trang tại Diễn đàn Hỗ trợ Kỹ thuật Không chính thức của Matrox.
NvidiaManual - Cách tự cài đặt trình điều khiển bị hạn chế của NVIDIA.
Radeon_9200 / 9250_ (RV280) _and_DVI - Làm thế nào để đầu ra DVI hoạt động với card video ATI RV280.
Driver Nvidia - Làm thế nào để cài đặt cả trình điều khiển mới nhất và một trong các kho (cũng bao gồm một phần chi tiết vấn đề)
Nvidia TV Out - Xem X cùng lúc trên màn hình và TV.
Cài đặt trình điều khiển bằng tay Nvidia - Cách cài đặt trình điều khiển tốc độ Nvidia mà không cần apt.
Để biết thêm các tài nguyên về khắc phục sự cố, vui lòng xem Wiki X Team wiki.
Tệp xorg. conf. d (hoặc tệp xorg. conf dành cho các phiên bản cũ hơn của Ubuntu) là nơi chứa thông tin cấu hình cho các thiết bị đầu vào và thiết bị đầu ra, chẳng hạn như card màn hình và màn hình, cũng như chuột, bàn phím và máy tính bảng. Phần này tập trung vào việc cài đặt card màn hình và màn hình.
Trong Ubuntu, thư mục cấu hình X có thể được tìm thấy tại /usr/lib/X11/xorg. conf. d. Nhiều thiết lập cấu hình sử dụng không được xác định rõ ràng bởi các tệp trong thư mục này, nhưng khá khó mã hoá trong hệ thống. Nếu bạn muốn tạo một xorg. conf kiểu cũ, bạn có thể khởi động vào chế độ phục hồi, chọn root shell, và gõ:
Trong các phiên bản cũ hơn của Ubuntu (thông qua 9.10), tệp cấu hình xorg. conf có thể được tìm thấy trong thư mục / etc / X11.
Bạn có thể sao lưu nó bằng cách gõ:
Để hoàn nguyên việc sao lưu bạn chỉ cần đảo ngược thứ tự như sau:
Trước khi bạn bắt đầu sửa đổi thư mục xorg. conf. d hoặc xorg. conf, bạn nên in ra trang này. Mặc dù người dùng của bạn đã chăm sóc để đảm bảo rằng mọi thứ sẽ hoạt động nhưng mọi thứ thường sai khi bạn cố gắng tối ưu hóa trình điều khiển đồ họa và màn hình của bạn.
Đồng thời, nó sẽ giúp nếu bạn trở nên quen thuộc với các phím & lt; ctrl + gt; + & lt; alt & gt; + F1 và các kết hợp phím tương tự. Trong các phiên bản cũ của Ubuntu, F1 đến F6 là những thiết bị đầu cuối toàn màn hình giống như các thiết bị đầu cuối cũ. F7 là cửa sổ x đầu tiên, F8 thứ hai, F9 thứ ba ... Nếu bạn đã nhấn & lt; ctrl & gt; + & lt; alt & gt; + F1 to F6, bạn sẽ vào màn hình đầu cuối và sau đó nếu bạn nhấn & lt; Ctrl + gt; + & lt; alt & gt; + F7 bạn sẽ trở lại giao diện người dùng đồ họa của mình. Trong các phiên bản mới hơn của Ubuntu, & lt; ctrl & gt; + & lt; alt & gt; + F3 sẽ đưa bạn trở lại giao diện người dùng đồ họa của bạn.
Lưu ý: Các thông tin dưới đây được viết về các phiên bản trước 9.10 của Ubuntu, nhưng vẫn có thể được áp dụng cho các phiên bản mới hơn:
Khi bạn khởi động lại máy tính của mình, bạn sẽ có thể khôi phục nhanh chóng bằng cách khôi phục tệp xorg. conf của bạn. Một ý tưởng hay nữa là thực hiện hai lệnh sao chép ở trên (backup và revert) trước khi bạn sửa đổi xorg. conf. Bằng cách đó, các lệnh sẽ được trong lịch sử cuối cùng của bạn. Bạn có thể chỉ cần nhấn mũi tên lên trên bàn phím của bạn để lấy các lệnh này.
Nếu bạn đã thay đổi tệp xorg. conf trước khi sao lưu và đang gặp sự cố, bạn có thể sao chép tệp /etc/X11/xorg. conf từ Ubuntu LiveCD sang /etc/X11/xorg. conf trên đĩa cứng của bạn. (Hãy nhớ sao lưu tệp trên đĩa cứng của bạn trước, như được mô tả trước đây.)
Nếu quay trở lại tệp xorg. conf ban đầu không hoạt động vì bất kỳ lý do gì và bạn bị kẹt trong terminal, bạn có thể thực hiện lệnh sau:
Thao tác này sẽ định cấu hình lại máy chủ X của bạn. Lưu ý: Thao tác này sẽ ghi đè lên tệp xorg. conf hiện tại của bạn. Lệnh này sẽ không hoạt động trong Ubuntu 9.10 (Karmic Koala) do lỗi # 474455.
Trước khi bạn bắt đầu sửa đổi xorg. conf.
Điều quan trọng là phải biết những khả năng của phần cứng của bạn là gì trước khi bạn bắt đầu. Đó là một ý tưởng tốt để tìm ra độ phân giải tối đa, dọc và ngang sync phạm vi và có chúng gần gũi cho cả màn hình và card màn hình. Nếu không có thông tin đó sẽ rất khó để cấu hình phần cứng của bạn một cách chính xác.
Màn hình chạy ở độ phân giải thấp.
Thông thường, nếu bạn đang sử dụng màn hình CRT, bạn sẽ thấy rằng card màn hình chỉ có vẻ như có các tùy chọn để hiển thị ở chế độ phân giải thấp. Thủ thuật này có thể chỉnh sửa tệp xorg. conf ở chế độ phân giải thấp. Có hai cách để thực hiện điều này: hoặc trong một trong các trình biên tập văn bản đầu cuối hoặc trong GUI (giao diện đồ họa người dùng). Bạn có thể sử dụng các chương trình như vi hoặc pico từ dòng lệnh:
Nếu bạn không quen thuộc với vi hoặc pico, bạn có thể sử dụng trình biên tập đồ hoạ như sau:
Hãy nhớ: Nếu cửa sổ soạn thảo quá lớn trong giao diện đồ họa, bạn có thể giữ nút & lt; alt & gt; +1 (nút bên trái trên chuột) để di chuyển cửa sổ xung quanh.
Phương pháp được trình bày ở đây không phải là dễ hiểu. Cấu hình xorg. conf có thể rất phức tạp, nhưng bắt đầu với phương pháp đơn giản nhất đôi khi là tốt nhất. Cách tiếp cận đầu tiên là tìm kiếm và sửa đổi một dòng giống như một trong những điều sau:
và thay đổi nó thành một cái gì đó như sau:
Bạn nên cố gắng chỉ đi lên một bước giải quyết một lúc và chuẩn bị sử dụng tổ hợp phím & lt; ctrl + lt + alt + gt + F1. Không nên lái một màn hình ra ngoài phạm vi quá lâu vì nó có thể gây ra thiệt hại vĩnh viễn.
Có những cách tiếp cận khác đòi hỏi sự chỉnh sửa và hiểu rõ về định dạng tệp tin xorg. conf. Một tìm kiếm của các diễn đàn Ubuntu đầu tiên cho các ví dụ tương tự và sau đó các diễn đàn Linux có thể mang lại kết quả.
Màn hình hiển thị đôi hoặc hiển thị hai đầu.
Hãy thử sử dụng GUI được tìm thấy trong System - & gt; Preferences - & gt; Monitors hoặc cho người dùng NVIDIA kiểm tra các giải pháp được tìm thấy trong NvidiaMultiMonitors trước khi bạn sử dụng phương pháp tiếp cận sau. Hầu hết người dùng sẽ không cần chỉnh sửa xorg. conf để sử dụng nhiều màn hình.
Cách tiếp cận để có được Twin View hoặc hai màn hình làm việc trong Ubuntu giống như nhận được một màn hình có độ phân giải thấp làm việc như mô tả ở trên.
Bước đầu tiên là để cho phép các trình điều khiển độc quyền và làm cho họ làm việc. Một khi bạn đã lái xe làm việc bạn cần phải thử và cho phép màn hình thứ hai. Vì vậy, miễn là bạn có thể kích hoạt màn hình thứ hai bạn có một cơ hội dễ dàng hơn để có được màn hình thứ hai làm việc. (Lưu ý: Các nhà sản xuất video khác nhau có cách khác nhau để cho phép màn hình thứ hai và thông tin chi tiết sẽ được trình bày cho từng trình điều khiển độc quyền tại một số ngày sau đó ở đây.)
Tương tự như cấu hình một màn hình đơn ở trên, bạn đang tìm kiếm một dòng trong tệp xorg. conf trông giống như sau:
có thể được thay đổi thành:
Điều thú vị về cách tiếp cận này là dường như nó kích hoạt tất cả các nghị quyết khác.
Bạn cũng có thể cần thêm các phần khác vào tệp xorg. conf của mình như ví dụ này:
Có thể gây phiền toái khi cấu hình xorg. conf bởi vì có rất ít thông tin và mỗi nhà phân phối Linux distro và card màn hình xử lý tệp xorg. conf hơi khác một chút.
Làm thế nào để phục hồi một hệ thống không khởi động do trình điều khiển bị trục trặc.
Nếu máy tính của bạn không khởi động khi bạn đã nâng cấp trình điều khiển, hãy nhấn escape ở trình nạp khởi động GRUB, sau đó chọn "chế độ phục hồi" cho hạt nhân mới nhất của bạn. Thả xuống "root shell".
Lưu ý: Các hướng dẫn sau đây là để chạy trình gỡ cài đặt ATI.
XIN, xin vui lòng, hãy cẩn thận với lệnh "rm-rf". Nếu bạn nhận được điều này sai, nó có thể phá vỡ hệ thống của bạn! Tiến hành thận trọng.
Sau đó chạy lệnh này để khôi phục tệp xorg. conf của bạn về mặc định:
Máy tính nên khởi động ngay bây giờ bằng cách sử dụng mã nguồn mở "radeon" trình điều khiển. (Điều quan trọng là giữ cho các cài đặt này để sao lưu vì lý do chính xác này). Nếu nó không khởi động với các trình điều khiển radeon tự động, hãy chỉnh sửa tệp xorg. conf theo cách thủ công:
Vị trí nó nói "Thiết bị" bạn muốn gõ "radeon" hoặc "ati" trong trường "Driver", vì vậy nó trông như thế này:
Một khi bạn đã khởi động trở lại vào Ubuntu, trở lại phiên bản cũ của trình điều khiển fglrx, hoặc tiếp tục sử dụng trình điều khiển nguồn mở nếu bạn muốn.
BinaryDriverHowto (đăng nhập và đăng nhập vào ckimes 2017-09-06 21:48:35)
Các tài liệu trên wiki này có sẵn theo một giấy phép miễn phí, xem Bản quyền / Giấy phép để biết chi tiết.
Bạn có thể đóng góp cho wiki này, xem Wiki Guide để biết chi tiết.
Xorg-Server-1.19.5.
Giới thiệu về Xorg Server.
Máy chủ Xorg là cốt lõi của hệ thống X Window.
Gói này được biết là xây dựng và hoạt động đúng cách bằng một nền tảng LFS-8.1.
Tải xuống MD5 tổng hợp: 4ac6feeae6790436ce9de879ca9a3bf8.
Dung lượng tải về: 5.7 MB.
Yêu cầu dung lượng đĩa ước tính: 610 MB.
Thời gian xây dựng dự kiến: 2,0 SBU.
Xorg Server Dependencies.
Đề nghị.
libepoxy-1.4.3 (yêu cầu cho sự quyến rũ, xem phần giải thích lệnh bên dưới)
Cài đặt Xorg Server....Cài đặt máy chủ bằng cách chạy các lệnh sau:
Để kiểm tra kết quả, hãy thực hiện kiểm tra. Bạn sẽ cần phải chạy ldconfig như người sử dụng gốc hoặc một số bài kiểm tra đầu tiên có thể thất bại.
Bây giờ là người dùng gốc:
Giải thích lệnh.
- Kiểu dáng hấp dẫn: Xây dựng mô-đun DIX (Thiết bị độc lập X) quyến rũ hiện đang được sử dụng bởi: R600 hoặc mới hơn chipset video radeon, trình điều khiển modeetting (đây là một phần của gói này) cho phần cứng sử dụng KMS cung cấp tăng tốc và tùy chọn) trình điều khiển intel.
--enable-install-setuid: Xorg nhị phân phải chạy như là người sử dụng gốc. Chuyển đổi này đảm bảo rằng các nhị phân được cài đặt setuid khi thực hiện được điều hành bởi một người dùng không có đặc quyền.
- wrapper-wrapper wrapper: Xây dựng gói wraid gốc cho sự hỗ trợ của trình điều khiển kế thừa trên các hệ thống xserver không có gốc rễ.
--disable-systemd-logind: Không xây dựng systemd-logind hỗ trợ, nếu không, một lỗi (EE), đăng nhập /var/log/Xorg.0.log, xảy ra khi bắt đầu máy chủ X. Systemd không được hỗ trợ bởi phiên bản BLFS này.
cat & gt; & gt; / etc / sysconfig / createfiles. : Lệnh này tạo các thư mục /tmp/.ICE-unix và /tmp/.X11-unix khi khởi động và đảm bảo quyền và quyền sở hữu chính xác theo yêu cầu của máy chủ.
--enable-dmx: Xây dựng máy chủ DMX (Distribhead Multihead X).
--enable-kdrive: tùy chọn này cho phép cấu hình kịch bản để cho phép Xephyr nếu phụ thuộc của nó được đáp ứng.
Mô tả ngắn.
tính các đường chế độ VESA CVT.
là các công cụ khác nhau được sử dụng để thao tác máy chủ dmx.
tính các đường chế độ VESA GTF.
là một công cụ được sử dụng để chuyển đổi các tập tin cấu hình VDL thành tập tin cấu hình DMX.
là một liên kết tượng trưng cho Xorg.
là một máy chủ proxy X sử dụng một hoặc nhiều máy chủ X khác làm thiết bị hiển thị của nó.
là một máy chủ X lồng nhau hỗ trợ các phần mở rộng X hiện đại.
là một máy chủ X lồng nhau.
là X11R7 X Server.
là máy chủ X framebuffer ảo cho phiên bản X 11.
là một tiện ích cấu hình đồ hoạ cho máy chủ dmx.
cung cấp trình điều khiển video cho các máy sử dụng Chế độ Kernel Mode (KMS Mode). Điều này sẽ sử dụng vẻ quyến rũ nếu đã được kích hoạt và phần cứng cung cấp tăng tốc.
Trình điều khiển RPi Xorg rpi.
Đây là tài liệu hướng dẫn cho trình điều khiển Xorg Raspberry Pi được phát triển trong chủ đề này [1]
Theo mặc định, mỗi Raspberry Pi Linux distro sử dụng trình điều khiển bộ đệm khung chung để vẽ màn hình X. Tất cả hiển thị của hiển thị được thực hiện bởi CPU vào bộ đệm off hoặc trên màn hình mà cuối cùng được hiển thị trên đầu ra của phần cứng quét. Khi CPU trên Raspberry Pi khá yếu, điều này làm cho một giao diện người dùng chậm chạp đồng thời gây ra tải CPU cao, làm chậm các chương trình khác.
Trong môi trường máy tính để bàn 2D X11 hiện đại tuy nhiên có hai cách chính mà một ứng dụng có thể chọn tự vẽ,
tất cả các kết xuất được thực hiện bởi máy chủ X gần như tất cả các kết xuất được thực hiện bởi các ứng dụng, với máy chủ X chỉ đơn giản trình bày kết xuất.
Mục tiêu chính của dự án này là để cải thiện hiệu suất của trường hợp đầu tiên và để lại thứ hai cho các dự án khác - có rất nhiều thư viện người dùng khác nhau có thể làm rendering ứng dụng và thúc đẩy hiệu suất của mỗi trong số đó sẽ là một cam kết rất lớn. Trình điều khiển hoàn thành việc này bằng cách giảm các tác vụ phổ biến lên các phần cứng khác trên SoC để có thể xử lý công việc không đồng bộ, cho phép máy chủ X được pre-empted bởi hệ điều hành nhưng vẫn cho phép tiến bộ được thực hiện. Điều này sẽ cho phép các quá trình khác để xem thời gian CPU nhiều hơn.
Thật không may điều này có nghĩa là ngay cả khi máy chủ X chạy nhanh hơn vô hạn, các ứng dụng vẫn có vẻ không phản hồi nếu sử dụng rendering ứng dụng rộng rãi. Đây là một vấn đề phổ biến trong tối ưu hóa. [2]
Chưa có nỗ lực nào cho phép các ứng dụng truy cập vào OpenGL / GL ES thông qua máy chủ X thông qua GLX - 2D cơ bản đã được ưu tiên cho đến nay.
Thiết kế.
Xorg cung cấp một cơ chế cho các trình điều khiển để tăng tốc một số nhiệm vụ rendering quan trọng. Đây được gọi là EXA [3]. EXA cho phép dễ dàng overriding,
block copy aka blitting solid color điền đầy hợp chất, hay còn gọi là alpha blending.
Trình điều khiển này thực hiện chức năng yêu cầu của EXA bằng cách sử dụng các phần khác nhau của Raspberry Pi SoC.
Bản sao khối 2D A - & gt; B được thực hiện bằng cách sử dụng DMA không đồng bộ. Một công cụ DMA được lập trình để sao chép theo kiểu tuyến tính hoặc 2D từ A (x, y) đến B (x2, y2) với một địa chỉ nguồn gia tăng và địa chỉ đích tăng lên. Chất đầy màu sắc cũng được thực hiện bằng DMA không đồng bộ. Một công cụ DMA được lập trình để sao chép (một lần nữa là tuyến tính hoặc 2D) từ một địa chỉ nguồn không chuyển động đến một địa chỉ đích chuyển động bắt đầu từ B (x, y). Địa chỉ nguồn giữ màu mà sẽ được sử dụng trong điền.
Các lệnh DMA được nối tiếp nhau để đảm bảo kết quả chính xác. Chúng được xây dựng như là một chuỗi khối điều khiển DMA (CBs), và được chuyển tới bộ điều khiển DMA để được đá trong một lần.
Đối với những trường hợp thời gian thiết lập DMA mất nhiều thời gian hơn bản sao hoặc điền vào của CPU, CPU sẽ được sử dụng dự phòng thay thế.
Thành phần phức tạp hơn vì đầu vào thay đổi nhiều hơn. Hoạt động này cho phép nhiều chế độ hoạt động khác nhau, ví dụ với các bộ lọc khác nhau, chuyển đổi, định dạng pixel, pha trộn phương trình, chế độ gói - nhưng một số hoạt động được phổ biến hơn nhiều so với những người khác. Chúng được xử lý theo ba cách khác nhau:
tăng tốc đồng bộ bởi đơn vị vectơ của VPU [4]. Điều này bao gồm các trường hợp ít nhất nhưng lý tưởng là những cái trong đó hầu hết các điểm ảnh cần phải được xử lý, nơi tăng tốc sẽ được đánh giá cao nhất. Tay được mã hoá trong lắp ráp. sử dụng CPU ARM SIMD 32-bit, đồng thời thực hiện các nhiệm vụ trễ thấp đồng bộ, bắt tất cả các trường hợp thông thường. Việc này phải thực hiện công việc "đủ tốt", vì nó được thiết kế chủ yếu cho hoạt động đếm điểm ảnh thấp, ví dụ như tạo ra các ký tự chống lại các ký tự nhỏ. dự phòng cho việc thực hiện X chung: điều này bao gồm tất cả các chế độ thành phần khác. Đây là trường hợp tồi tệ nhất vì chi phí đầu vào đạt được trong quá trình xử lý hình ảnh thực tế đầu tiên cao.
Như đã đề cập ở trên, người lái xe sử dụng ba điều mà người lái xe chung chung sẽ không sử dụng.
Đây không phải là toàn diện [5] như là tập lệnh NEON được tìm thấy trong một số triển khai ARM v7 nhưng vẫn còn hữu ích cho nhiệm vụ thành phần. Thông qua mô hình lập trình meta C + +, xem xét cẩn thận những gì trình biên dịch có thể và không thể tối ưu hóa, và cuối cùng là eyeballing mã tạo ra chúng ta có thể có các chức năng thành phần có tốc độ tương đương với những chức năng tối ưu hóa tay trong pixman. Các templating giúp ở đây bằng cách tạo ra hàng trăm các chức năng này, chứ không phải là số ít được thực hiện đặc biệt trong pixman.
Raspberry Pi SoC bao gồm một số lượng phong phú các động cơ DMA có thể được sử dụng bởi ARM để di chuyển dữ liệu xung quanh bộ nhớ. Họ có thể truy cập toàn bộ băng thông bộ nhớ - nhiều hơn ARM có thể chính nó. Tất cả đều chia sẻ băng thông, và một DMA đủ để bão hòa xe buýt. Các động cơ DMA không giống nhau tuy nhiên - một số có hiệu suất cao hơn hoặc các tính năng hơn những người khác. Ví dụ, một nửa trong số họ có khả năng thực hiện DMA '2D' chứ không phải là chuyển tuyến thẳng. Một trong số các động cơ DMA (DMA zero) có một FIFO sâu hơn cho phép nó thực hiện các lần đọc lớn hơn.
Phần cứng DMA không sống trong không gian địa chỉ giống như CPU ARM. Nó sử dụng không gian địa chỉ của xe buýt thay thế. Cần phải dịch bản dịch sang địa chỉ để lấy từ địa chỉ này sang địa chỉ kia. Ngoài ra, bảng trang của ARM không được sử dụng bởi phần cứng này. Hầu hết các địa chỉ ARM tiếp giáp không nhất thiết phải là vật lý tiếp giáp và phần cứng DMA sẽ không biết về điều này - do đó DMA cần đôi khi được chia thành các khối 4 KB để đảm bảo kết quả chính xác.
Có một chi phí khởi đầu liên quan đến DMA, và kết quả là đôi khi nó không hiệu quả để sử dụng phần cứng này. Các bước bao gồm,
phá vỡ một sự chuyển đổi lớn lên thành một cái gì đó tôn trọng biên giới của trang 4 KB nhập kernel chuyển các địa chỉ ảo của người dùng vào các địa chỉ bus cho mỗi DMA CB flushing và làm mất hiệu lực các phần của bộ nhớ cache dữ liệu, sau đó khởi động chuỗi DMA trở lại chế độ người dùng để làm nhiều việc hơn nhập kernel đợi DMA để hoàn thành trở lại chế độ người dùng.
Để tham khảo, quá trình chuyển đổi người dùng - & gt; kernel - & gt; mất khoảng 1 chúng tôi. Mỗi DMA CB xuất hiện để lấy công cụ DMA khoảng 6 chúng tôi để bắt đầu.
Ngoài ra trên SoC là một bộ xử lý tuỳ chỉnh mà dường như là bộ não kiểm soát của GPU, VPU. Đây là những gì mà 'phần mềm' chạy. Rpi_Software # Tổng quan.
Trong bộ xử lý này là một đơn vị vector 16 chiều phù hợp với hoạt động xử lý hình ảnh. Mặc dù bộ vi xử lý này thường tốc độ xung nhịp khoảng ba lần so với lõi ARM, nhưng đơn vị vectơ và giao diện bộ nhớ được cải thiện hơn là bù đắp cho nó. Một số chức năng thành phần thường hoạt động trên hàng ngàn điểm ảnh đã được mã hoá để chạy trên thiết bị này.
Giống như phần cứng DMA, nó sống trong không gian bộ nhớ của địa chỉ bộ nhớ. Địa chỉ ARM ảo của người dùng cần phiên dịch và các vấn đề ranh giới / trang trang 4 KB vẫn áp dụng. Cũng từ quan điểm của trình điều khiển VPU xuất hiện như là một bộ xử lý đồng bộ không đồng bộ: có một.
56 chúng ta trên đầu ở tốc độ đồng hồ chứng khoán giao tiếp với nó từ X nên công việc nên thực sự chỉ được gửi đến nó nếu đáng giá.
Khối lượng công việc được gửi đến trình điều khiển từ các ứng dụng đang chạy không được biết trước. Cấu trúc của tác phẩm nhìn chung cũng giống nhau. Phân bổ một số hình ảnh, tải lên một số dữ liệu từ ứng dụng người dùng, thực hiện một số hoạt động, điểm đồng bộ hóa. Thực hiện thêm một số hoạt động, điểm đồng bộ.
Điểm của các điểm đồng bộ hóa thường xuyên là để cho phép ứng dụng để có được một giữ dữ liệu pixel rendered. Nó cũng ở đó để cho phép các ứng dụng để phát hành bộ nhớ. Bởi biết rằng tất cả các rendering đã hoàn thành bởi một điểm nhất định, nó biết những gì được nhìn thấy trong bộ đệm là chính xác và cũng là một bộ đệm hình ảnh cho trước không còn sử dụng và có thể được giải phóng.
Hành vi này trái ngược với một vòng lặp tạo kiểu trò chơi: đối với phần lớn khung một bộ đệm lệnh được lấp đầy bằng các lệnh vẽ. Vào cuối của một khung đệm này được gửi đến GPU để chế biến. Tuy nhiên trong khi điều này xảy ra, GPU đang xử lý bộ đệm lệnh của khung cuối cùng. Điều này tương phản với vòng lặp cập nhật X như,
có nhiều điểm đồng bộ hơn, và nó không được biết khi nào chúng sẽ xuất hiện không có bộ đệm lệnh đệm đôi, có nghĩa là GPU không thể xử lý được "hình ảnh của khung hình cuối cùng" trong khi CPU đang xây dựng dữ liệu ảnh đệm của lệnh khung này không thể đi quá cách xa CPU vì ứng dụng có thể muốn kiểm tra nó với độ trễ tối thiểu.
Điều này có nghĩa OpenGL và thời gian chạy khác không thích hợp cho một trình điều khiển X trên một hệ thống như Raspberry Pi mà không có mã lực. Nếu GL hoặc một thời gian chạy tương tự đã được sử dụng, chi phí CPU cao để thiết lập và xé xuống các hình ảnh và danh sách lệnh ... sẽ rút ra được số lượng thời gian thực tế mà GPU sẽ thực hiện. Ngoài ra, thực tế là trên các kết cấu Raspberry Pi không dễ tiếp cận bởi CPU có nghĩa là khi một ứng dụng cần truy cập dữ liệu pixel thì phải trả chi phí cao để dừng GPU và tải xuống kết cấu. Ngay cả khi 6 giờ khởi động của một DMA CB là đáng chú ý trong một số ứng dụng - nếu thay thế toàn bộ 3D stack là đi qua nhiều ứng dụng sẽ chậm hơn rất nhiều so với tuyến đường chung của CPU.
Điều đó nói rằng các ứng dụng mong muốn trình điều khiển được thực hiện trên một thời gian chạy như OpenGL sẽ điều chỉnh khối lượng công việc của họ để phù hợp với nó. Ví dụ: trình duyệt Chromium. Đây là một ngoại lệ mặc dù - hầu hết các ứng dụng mong đợi một trình điều khiển đồng bộ với bộ nhớ truy cập dễ dàng.
Như đề cập đến trước, trình điều khiển xử lý phần cứng VPU và DMA là bộ xử lý đồng bộ không đồng bộ. Chi phí của CPU khi tiếp cận chúng là tương đối cao và vì thời gian của CPU không nhiều nên chi phí này cần được phân bổ cho nhiều hoạt động nhất có thể. Điều này có nghĩa là CPU xây dựng một danh sách các công việc để gửi đến phần cứng DMA và một danh sách các công việc để gửi cho phần cứng VPU. Cuối cùng các danh sách này được gửi đi để xử lý. Chi phí trên không chỉ được thanh toán một lần.
Tuy nhiên vì nó không được biết đến khi một điểm đồng bộ hóa có thể xuất hiện, nó không phải là rõ ràng khi một danh sách lệnh DMA hoặc VPU phải được bắt đầu. Bằng cách chờ đợi lâu hơn, chi phí trên sẽ bị giảm (mỗi đơn vị công việc) tuy nhiên có nhiều cơ hội cho ứng dụng yêu cầu công việc hoàn thành, tuy nhiên nó sẽ không như nó chưa bắt đầu. Ứng dụng sau đó chặn. Điều ngược lại cũng đúng - nếu công việc bị đá quá thường xuyên, quá nhiều kết quả trên không thì ứng dụng sẽ đợi ít hơn vì có nhiều cơ hội công việc đã hoàn thành vào thời điểm nó yêu cầu một điểm đồng bộ.
Thực hiện thành phần với VPU cũng rất khôn lanh - vì có 56 chi phí khởi nghiệp để thực hiện công việc ở đó, liệu có đủ điểm ảnh để xử lý đáng giá không? Một ước tính cần được thực hiện với tốc độ tương đối của hai bộ xử lý (ARM và VPU) và dựa trên quyết định này được thực hiện cho dù nhiệm vụ được chạy trên đồng bộ xử lý hay không. Một cái gì đó cũng được xem xét là trên CPU ARM thời gian chạy là biến. Có những sự tối ưu hóa ban đầu có thể được thực hiện dựa trên giá trị mặt nạ (nếu có). Những tối ưu hóa này không thể được sử dụng trên VPU.
Cuối cùng cũng có trường hợp công việc để được xử lý với DMA là quá nhỏ mà nó sẽ được nhanh hơn để xử lý trên CPU. Tuy nhiên, nếu một triệu tác phẩm nhỏ xíu đi dọc theo trở lại, nó vẫn sẽ nhanh hơn để làm với DMA - nhưng nó không biết bao nhiêu tác phẩm sẽ được enqueued. Điều này có nghĩa là có một quyết định được thực hiện: khi nào thì CPU thực hiện công việc mà nó nghĩ nó có thể làm nhanh hơn phần cứng DMA?
Trình bày trình điều khiển cấp cao.
Màu vàng đại diện cho "trình điều khiển", mã đã được viết như là một phần của dự án này.
Để phù hợp với các tình huống khác nhau, có ba cách chính để sử dụng trình điều khiển. Mỗi người đều có những ưu điểm cũng như những khuyết điểm. Do cách EXA hiện đang được sử dụng, nó cần để theo dõi một đoạn lớn "offscreen bộ nhớ". Đây là bộ nhớ mà ứng dụng không thể nhìn thấy, nhưng bộ tăng tốc đồ hoạ (dưới bất kỳ hình thức nào mà người viết driver đang nhắm mục tiêu) có thể nhìn thấy. Vấn đề xảy ra trong trường hợp của Raspberry Pi là tất cả các phần cứng được nhắm mục tiêu có thể nhìn thấy tất cả bộ nhớ, và do đó, trừu tượng này là không cần thiết và lãng phí. Hạn chế này phải chịu một hình phạt về hiệu quả hoạt động, nhưng công việc sẽ được thực hiện trong tương lai để giải quyết vấn đề này.
Công việc ban đầu đã được thực hiện để giải quyết vấn đề trên bằng cách sử dụng tùy chọn SelfManagedOffscreen.
Dưới đây là ba cách cung cấp EXA và trình điều khiển với bộ nhớ ngoài màn hình của nó.
Để DMA hoạt động, bộ nhớ đang được vận hành không được di chuyển đến một địa chỉ vật lý khác bởi hệ thống đầm lát trang Linux và cũng không được hoán đổi ra để hoán đổi. Điều này sẽ xảy ra với các trang người dùng thông thường, vì vậy chúng không thích hợp. Một cách để giải quyết vấn đề này là cấp phát các trang từ nhân và sắp xếp chúng vào không gian người dùng. Các trang này không thể bỏ qua, chúng sẽ không bao giờ được đổi chỗ và địa chỉ vật lý của chúng có thể được lưu trữ để dịch một cách hiệu quả hơn.
Những ưu điểm của chương trình này bao gồm:
không lãng phí bộ nhớ - nếu X không sử dụng toàn bộ không gian màn hình ngoài, thì chỉ các trang được sử dụng được phân bổ. Không cần khai báo trước hoặc đặt chỗ bộ nhớ. nó là hệ thống mạnh mẽ và an toàn nhất, vì tất cả các bản dịch địa chỉ được hạt nhân kiểm tra, và phần cứng được cung cấp cho các địa chỉ là đơn giản và có thể dự đoán được. bộ nhớ tối đa có thể được tăng lên và xuống trong thời gian chạy, mà không cần khởi động lại.
Những bất lợi được dựa trên thực tế là bộ nhớ không phải là vật lý tiếp giáp:
DMA phải được chia nhỏ tại ranh giới của trang 4 KB thành các chuyển đổi DMA riêng biệt (vẫn như là một phần của chuỗi CB mặc dù) thành phần VPU không thể được sử dụng 2D DMA không thể được sử dụng do sự phức tạp của việc phá vỡ tại các ranh giới trang hơn là cần dịch địa chỉ của CPU do đến sự gia tăng CBs.
Cuối cùng, vì các trang này không thể tháo gỡ được, chúng không thể bị thay đổi - điều này sẽ làm tăng áp lực lên bộ nhớ 'bình thường' còn lại.
bản dịch địa chỉ nói chung là phức tạp hơn, tăng tải CPU ARM.
Với tất cả ba tùy chọn bộ nhớ, tất cả các pixmaps trên màn hình không thuộc thẩm quyền của EXA được cấp phát với chế độ 4 KB để cho phép DMA kéo chúng vào bộ nhớ ngoài.
Chế độ đặt phòng khởi động.
Chế độ này liên quan đến việc nói cho hạt nhân đơn giản là bỏ qua - lúc khởi động-thời gian - một đoạn bộ nhớ cung cấp cho CPU. Nó không bao giờ được sử dụng bởi các ứng dụng hoặc hạt nhân như hệ thống chỉ đơn giản tin rằng nó có ít bộ nhớ đính kèm. Bộ nhớ dự phòng này có thể được ánh xạ trong bộ đệm ngoài màn hình để có hiệu quả tốt. Nó liên quan đến thể chất, và điều này có nghĩa là dịch địa chỉ rất đơn giản. Chỉ cần thêm một hằng số vào địa chỉ ảo của người dùng để đến địa chỉ bus cuối cùng mà DMA và VPU cần. Nếu việc lập bản đồ được thực hiện thông minh, không cần phải bù đắp.
DMA không cần phải được chia thành 4 KB khối VPU thành phần có thể được sử dụng 2D DMA có thể dịch địa chỉ dịch là rất đơn giản.
bộ nhớ bị lãng phí nếu nó không được sử dụng, hoặc bởi X không cần tất cả hoặc người dùng chỉ cần không chạy X ở nơi đầu tiên khởi động lại là cần thiết để thay đổi kích thước đặt phòng người dùng cần tính địa chỉ của đặt phòng trước khi chuyển nó đến X nói chung có một cơ hội lớn hơn cho điều gì đó "đi sai" do lỗi của người dùng hoặc lập trình viên (tuy nhiên không có vấn đề gì với kỹ thuật này)
Chế độ đặt phòng mailbox VideoCore.
Điều này liên quan đến yêu cầu phần vững cho một khối bộ nhớ từ chia sẻ của nó, và sau đó lập bản đồ nó vào quá trình người dùng. Điều này có thể hoạt động ở chế độ phân chia tĩnh, nơi mà người dùng tuyên bố cần bao nhiêu cho GPU trong tệp config. txt của chúng (ví dụ 192/64) hoặc thông qua chế độ "chia tách" CMA mới. Kích thước của sự phân chia tăng lên và co lại dựa trên những gì đang xảy ra vào thời điểm đó.
DMA không cần phải được chia thành 4 KB khối VPU thành phần có thể được sử dụng 2D DMA có thể dịch địa chỉ dịch là rất đơn giản dễ dàng cài đặt người dùng không lãng phí bộ nhớ nếu X không được sử dụng bộ nhớ sử dụng có thể thay đổi mà không cần khởi động lại.
nếu không ở chế độ CMA, điều này có thể ngăn không cho ứng dụng 3D bắt đầu vì có thể bộ nhớ GPU không đầy đủ.
Lắp đặt trình điều khiển.
KHUYẾN CÁO VÀ CẢNH BÁO: NÂNG CAO NÀY LÀ THỰC NGHIỆM VÀ CÓ THỂ THỰC HIỆN CÁCH THẺ CỦA BẠN. BẢO ĐẢM BẠN CÓ THỂ ĐƯỢC THẤT BẠI TRONG NỘI DUNG VÀ HƯỚNG D TON THIẾT KẾ / Lắp đặt lại CNTT. KHÔNG ĐẢM BẢO. Trình điều khiển này thực hiện các bộ phận của phần cứng không thường xuyên sử dụng: NẾU HỆ THỐNG ĐƯỢC QUY CÁCH NÀY CÓ THỂ LÀM THẾ NÀO, KHÔNG CÓ THỂ KHÔNG HÀI LÒNG ĐỐI VỚI CARD SD CARD CỦA BẠN.
Lắp đặt trình điều khiển nhị phân chuẩn bị sẵn là dễ dàng, giả sử một vài điều kiện tiên quyết.
Raspbian là cập nhật nhất có thể xserver-xorg-core và xserver-xorg-video-fbdev cần phải được cài đặt: tức là bạn cần để có thể tải một máy tính để bàn mà không có bất kỳ rắc rối, không sửa đổi được thực hiện với mã cài đặt memcpy và memset thay thế được cài đặt và kích hoạt, có sẵn ở đây [6]. Đây là một phần của bản cài đặt Raspbian chứng khoán.
Cài đặt rpi-update của Hexxeh, nếu không được cài đặt trước đó sudo wget http://goo. gl/1BOfJ - O / usr / bin / rpi-update & amp; & amp; sudo-chmod + x / usr / bin / rpi-update Cập nhật phần kernel và firmware sudo rpi-update Thay đổi hiển thị sang chế độ 32-bit Thêm những dòng này vào / boot / config của bạn. txt file framebuffer_depth = 32 framebuffer_ignore_alpha = 1 Nếu bạn muốn sử dụng chế độ VideoCore và phân bổ bộ nhớ CMA cũng thêm vào, Xóa bất kỳ các tùy chọn cma_ * hoặc gpu_mem hiện tại sau đó chèn, gpu_mem_256 = 112 gpu_mem_512 = 368 cma_lwm = 16 cma_hwm = 32 cma_offline_start = Nếu bạn muốn sử dụng chế độ VideoCore nhưng không phải CMA thì bạn cần phải quản lý việc chia nhỏ bộ nhớ của mình Xóa bất kỳ tùy chọn cma_ * Hãy thử gpu_mem = 32, 48 hoặc 64 Một khi bạn khởi động lại, chạy sudo vcdbg reloc | grep "khối tự do lớn nhất" Nhân kích thước này bằng 1048576 và sử dụng làm tùy chọn BlockSize. Xem mục đó trong phần cấu hình để biết loại kích thước nào nhằm mục đích. Khởi động lại và đảm bảo thiết bị của bạn quay trở lại với phần vững và hạt nhân mới uname-phải cung cấp ít nhất 3.6.11 phiên bản vcgencmd nên cung cấp cho ít nhất 359004 Kiểm tra xem màn hình có thực sự là ở chế độ 32 bit fbset và nhìn vào kết thúc dòng 'hình học': cần nói 32 Đảm bảo bạn có thể tải máy tính để bàn như bình thường làm điều này tuy nhiên bạn sẽ làm, và xác nhận rằng tất cả mọi thứ hoạt động (ví dụ như thiết bị đầu vào USB của bạn) và cũng không có oddities do nằm trong Chế độ màu 32-bit, ví dụ, chạy startlxde từ thiết bị đầu cuối Khác Thoát máy tính để bàn và trở lại bàn điều khiển một lần nữa.
Tải xuống & lt; xorg-server. tar. gz & gt; và & lt; xserver-xorg-video-fbdev. tar. gz & gt ;. Xem ở đây cho các tập tin.
Cài đặt máy chủ X xudo xfvz xorg-server. tar. gz-C / Cài đặt trình điều khiển, tệp cấu hình mặc định và VPC nhị phân VPU sudo tar xfvz xserver-xorg-video-fbdev. tar. gz - C /
Mô-đun hạt nhân cài đặt và thiết lập.
Cần phải cấu hình hai mô-đun hạt nhân, bộ điều khiển DMA và hộp thư VC.
Tải module DMA sudo modprobe dmaer_master main = $ (awk '$ 2 == "dmaer" "/ proc / devices) sudo mknod / dev / dmaer_4k c $ major Hãy thực hiện các thiết bị ký tự hộp thư (bây giờ trong dir nhà như đó là những gì mặc định tập tin cấu hình mong đợi) sudo mknod / home / pi / char_dev c 100 0.
Hãy chắc chắn rằng bạn đã sao lưu bởi điểm này. Chạy 'đồng bộ' chỉ vì bạn có thể. Từ một bảng điều khiển mà bạn sẽ luôn luôn có thể nhìn thấy trong trường hợp gặp rắc rối một alt-F1 VT là không đủ tốt, SSH được khuyến khích,
sudo gdb Xorg đặt args - verbose - keeptty xử lý SIGPIPE nostop xử lý SIGUSR1 chạy nostop.
Nếu bạn thấy một hang tại "Kiểm tra nó hoạt động." Thì có nghĩa là VPU composite đã thất bại. Bây giờ bạn phải khởi động lại ctrl-z, sync và sudo. Bạn sẽ không thể ctrl-c. Khi thiết bị khởi động lại, hãy thử chạy lại (bạn sẽ cần modprobe module và tạo / dev / dmaer_4k lại). Nếu nó treo cứng một lần nữa kiểm tra lại bạn có hạt nhân mới nhất và phần vững, và rằng / usr/share/X11/vpu_offload_asm. bin là nguyên vẹn. Md5sum của nó là 3978152d8db9a69c0cd33d248cbbba89.
Bây giờ bạn sẽ thấy màn hình hiển thị đang ngồi ở màn hình màu đen. Bây giờ bạn cần phải chạy một ứng dụng cửa sổ X để xem cái gì đó! Tôi muốn giới thiệu, từ một thiết bị đầu cuối SSH:
. và sau đó bạn sẽ thấy máy tính để bàn mặc định. Hãy thử kéo một số cửa sổ xung quanh, di chuyển, chọn tất cả các biểu tượng trên desktop trong một hộp lựa chọn khổng lồ. Trình duyệt web vẫn có thể chậm, nhưng phần lớn là do trình duyệt web hiển thị trang. Tìm trang web sử dụng nền tĩnh không di chuyển (ví dụ: Twitter). Các trang này cần làm mới nhanh hơn khi cuộn văn bản (nhưng thường thì bạn vẫn bị ràng buộc bởi hiệu suất rendering nội bộ của trình duyệt).
Lưu ý rằng nhiều X kịch bản máy tính để bàn cố gắng để chạy một bản sao của máy chủ X, ví dụ như startxfce4. Điều này sẽ không thành công vì chỉ có một bản sao có thể chạy cùng một lúc. Tuy nhiên, nếu trước khi gọi các tập lệnh đó bạn xuất DISPLAY =: 0 thì chúng sẽ sử dụng máy chủ X ban đầu mà bạn đã tạo. Đây có thể là hành vi bạn muốn.
Khuyên nghị rằng trong quá trình cài đặt ban đầu của trình điều khiển hơn bất kỳ ép xung nào cũng bị vô hiệu hóa. Người lái xe nhấn mạnh phần cứng không thường được sử dụng trong khi đang ngồi ở máy tính để bàn.
Tuy nhiên một khi nó được xác nhận rằng mọi thứ chạy tốt, hãy thử và overclock hệ thống một lần nữa - kiểm tra tất cả thời gian.
Những gì để ép xung:
Tất nhiên, CPU chỉ đơn giản là tăng tốc ứng dụng và blacks fallback và composites GPU core: điều này ảnh hưởng đến bộ nhớ cache L2, bộ điều khiển DMA và hệ thống con VPU, một trong những giới hạn chính về hiệu suất.
Vì phần cứng 3D không được sử dụng không phí thời gian ép xung của bạn này.
Cấu hình trình điều khiển.
Có một số 'Tùy chọn' khác nhau có thể được truyền cho người lái xe vào lúc tải. Chúng có thể được thêm vào tệp cấu hình mặc định mà tôi cung cấp.
Tệp cấu hình có thể tìm thấy tại /usr/share/X11/xorg. conf. d/01-fbdev-rpi. conf.
Thông thường bạn nên sử dụng EXA. Nếu bạn muốn hoàn toàn vô hiệu hóa gia tốc và giảm trở lại gần với trình điều khiển fbdev gốc NoAccel. Bạn vẫn sẽ thấy các cải tiến được thực hiện cho hiệu suất kéo cửa sổ vì chúng không được kiểm soát bởi các cờ này. EXA_NULL là một lựa chọn đặc biệt: điều này có nghĩa là để "tăng tốc" càng nhiều càng tốt thông qua khuôn khổ EXA. nhưng chỉ đơn giản là không làm gì cả. Điều này sẽ cho phép máy chủ X chạy nhanh như hoàn toàn có thể - vì nó không làm bất cứ điều gì! Màn hình sẽ bị hỏng nặng nề - nhưng có thể bạn vẫn có thể khám phá ra điều đang diễn ra. Và bạn cũng sẽ có thể nhận ra rằng những thứ vẫn còn chậm. Đây là giới hạn trên về hiệu suất mà tôi có thể đạt được thông qua EXA.
Bằng cách chọn có ở đây tất cả các trang được phân bổ thông qua phương pháp 4 KB sẽ được phân bổ và khóa trước. Chỉ sử dụng nếu bạn gặp rắc rối trong dmesg liên quan đến phân bổ bộ nhớ.
Bạn sẽ có thể thấy điều này bằng cách tìm trong / proc / iomem ở mục đầu tiên: "System RAM". Nó sẽ nói 00000000- & lt; một số trong hex> gt ;.& lt; một số số & gt; sẽ là (240 - 123) * 1048576 - 1. Dễ dàng.
Để thực hiện đặt phòng thực tế bạn phải thêm vào dòng lệnh hạt nhân của bạn mem = kích thước MB, trong đó kích thước là số tiền mà hạt nhân sẽ quản lý. ví dụ như trong ví dụ ở trên kích thước sẽ là 256-16-123 tức là mem = 117MB.
Không có gì nên thất bại nếu bạn nhận được nó quá nhỏ (mặc dù nó sẽ dừng lại và cảnh báo bạn tại thời gian tải nếu bạn chọn một số ngớ ngẩn nhỏ), sẽ chỉ đơn giản là nhiều hơn trao đổi qua lại đó là hiệu suất tồi tệ hơn. Đối với những người dùng sử dụng thời gian khởi động thì số này thực sự phải là kích thước của lỗ mà bạn dự trữ. Nó có thể nhỏ hơn (vô nghĩa) nhưng không lớn hơn.
Lưu ý rằng nếu SelfManagedOffscreen được sử dụng sau đó mọi thứ có thể đi vui nếu nó hết bộ nhớ. Vì vậy, những đề xuất này áp dụng cho SelfManagedOffscreen = false. Nếu SelfManagedOffscreen = true sau đó có thể thử 24-32 MB.
4k có nghĩa là sử dụng bộ nhớ chế độ phân bổ dựa trên trang 4KB có nghĩa là hệ thống đặt chỗ giờ khởi động vc có nghĩa là sử dụng hệ thống hộp thư VideoCore.
Điều này làm cho việc sử dụng thông tin có được thông qua kỹ thuật đảo ngược và không nên được sử dụng ở các quốc gia nơi đây là bị cấm.
Dưới đây là danh sách các vấn đề phổ biến và hy vọng các giải pháp của họ. Phần này có thể sẽ được mở rộng khi vấn đề phát sinh.
Không thể khởi tạo giao diện hạt nhân (hiện / dev / dmaer_4k tồn tại?)
Sự cố này xảy ra khi tệp tin / dev / dmaer_4k không thể được mở thành công. Điều này có thể xảy ra bởi vì,
tập tin không tồn tại các tập tin tồn tại, nhưng các số lớn / dev nhỏ không khớp với mô-đun hạt nhân tập tin tồn tại, nhưng các mô-đun hạt nhân không được tải tập tin tồn tại, mô-đun hạt nhân được nạp, nhưng các quyền trên tập tin không cho phép nó được mở ra.
Kiểm tra lại rằng bạn đã modprobe'd mô-đun hạt nhân, và rằng bạn đã tạo ra các tập tin thiết bị đặc biệt với đúng chính / số nhỏ. Lưu ý rằng những con số này có thể thay đổi tùy thuộc vào thứ tự mà các mô-đun được nạp vào hạt nhân. Cuối cùng kiểm tra xem bạn đang chạy Xorg như là root.
Phiên bản dmaer không tương thích.
Giao diện mô đun dmaer được điều khiển qua một số phiên bản. Khi thay đổi vi phạm được thực hiện cho trình điều khiển hoặc mô-đun hạt nhân, số phiên bản được tăng lên. Nếu điều này xảy ra, bạn phải nâng cấp cả mô đun hạt nhân và trình điều khiển.
Thông báo lỗi này chỉ ra rằng mô-đun hạt nhân đã trở nên quá cũ cho trình điều khiển, và bạn phải nâng cấp mô-đun hạt nhân hoặc hạ cấp trình điều khiển.
Màn hình của tôi là hoàn toàn tham nhũng nhưng nó xuất hiện 'chức năng'
Nếu bạn chọn sử dụng trình điều khiển 'null' thì điều này sẽ xảy ra; nó là cố ý. Kiểm tra lại rằng bạn không sử dụng EXA_NULL như AccelMethod trong tệp cấu hình Xorg của bạn.
Kích thước bộ nhớ không được chỉ định! (sử dụng BlockSize)
Bạn cần cho người lái xe biết bộ nhớ bạn muốn sử dụng như là "bộ nhớ video". Bộ nhớ được hợp nhất về thể chất trong Raspberry Pi nên khái niệm này không thực sự áp dụng, nhưng bạn phải nói với người lái xe dù sao. Xem RPi_Xorg_rpi_Driver # Memory_layout và RPi_Xorg_rpi_Driver # Configuration_of_the_driver để biết chi tiết.
Không thể mở hộp thư VCIO qua tệp thiết bị & lt; whatever & gt;
Điều này có nghĩa là tệp tin hộp thư được chỉ định với tùy chọn MboxFile không hợp lệ theo cách nào đó hoặc tùy chọn này không được chỉ định. Kiểm tra rằng tùy chọn MboxFile tồn tại trong tập tin cấu hình và nó trỏ đến một cái gì đó đúng. Các lỗi tiềm ẩn ở đây:
Tùy chọn MboxFile không được chỉ định các điểm tùy chọn cho một tệp thiết bị không có quyền chính xác truy cập được vào tùy chọn người dùng hiện tại trỏ tới một tệp thiết bị mà ở đó số chính / số nhỏ không chính xác cho trình điều khiển hộp thư trình điều khiển hộp thư bị thiếu từ hiện tại đang chạy hạt nhân.
Không có phần VpuElf trong tệp cấu hình.
Bạn đã chọn sử dụng VPU offload, nhưng bạn chưa chỉ định nơi mà VPU nhị phân là. Đảm bảo rằng bạn có bộ tùy chọn VpuElf, và nó trỏ tới một nhị phân VPU hợp lệ.
Không chỉ định chế độ bộ nhớ.
Bạn cần phải cho người lái xe biết cách cấu hình "bộ nhớ video" được sử dụng bởi trình điều khiển. Xem câu hỏi trên vì nó rất giống nhau.
Cơ sở bộ nhớ không được chỉ định! (sử dụng BlockBase)
Bạn đã chọn sử dụng tùy chọn chế độ bộ nhớ 'mem', nhưng bạn không nói với trình điều khiển nơi nó được ánh xạ trong không gian địa chỉ. Xem RPi_Xorg_rpi_Driver # Configuration_of_the_driver để biết ví dụ về cách sử dụng của nó.
Kích thước bộ nhớ của & lt; whatever & gt; byte là quá nhỏ để có thể sử dụng được.
Bạn phải chỉ định tùy chọn BlockSize theo byte, không phải là megabyte hoặc kilobytes. Người lái xe thực hiện một bài kiểm tra cơ bản để xem nếu giá trị dưới 1048576 và ngay lập tức sẽ thất bại nếu như vậy.
Không thể mở / dev / mem.
Nếu sử dụng các chế độ bộ nhớ 'vc' hoặc 'mem', trình điều khiển sau đó / dev / mem được sử dụng để ánh xạ bộ nhớ vào không gian địa chỉ của Xorg. Bạn phải đảm bảo rằng / dev / mem tồn tại, và có quyền chính xác để cho phép mở bởi người dùng hiện tại - mà lý tưởng nên được root.
VC yêu cầu kích thước bộ nhớ là nhiều kích thước trang.
Kích thước bạn chọn cho BlockSize phải là một bội số của 4096. Đảm bảo số bạn vượt qua với tùy chọn này không còn lại. Không thể phân bổ bộ nhớ từ VC.
Điều này có nghĩa là VideoCore đã từ chối kích thước của sự phân bổ bộ nhớ. Kiểm tra dmesg chỉ để xác nhận. Bạn sẽ thấy rằng địa chỉ trả về bằng không. Hãy thử giảm lựa chọn BlockSize của bạn để phù hợp với những gì sudo vcdbg reloc | grep "khối tự do lớn nhất" trả về, theo byte.
Không mở được tệp nhị phân & lt; whatever & gt;
Điều này có nghĩa là tập tin được chọn với tùy chọn VpuElf không thể mở để đọc. Kiểm tra rằng đường dẫn đến tệp là chính xác và nó có quyền đọc cho người dùng hiện tại.
Các vấn đề tải nhị phân khác của VPU.
không thể đọc tệp nhị phân đánh dấu tệp tin dường như không thể tải được đã không đọc được số phiên bản số phiên bản định dạng không đúng, & lt; whatever & gt; tiêu đề là không hợp lệ bù đắp, & lt; whatever & gt; header vượt quá cuối tệp, & lt; whatever & gt; Không thể xác định chính xác Không thể tìm thấy chức năng GetVersion Phiên bản VPU nhị phân là quá mới cho trình điều khiển này, & lt; whatever & gt; không tải được mã VPU Không thể tải tệp từ & lt; whatever & gt; hoặc là byte không chiều dài.
Tất cả các chỉ ra một sự thất bại hoàn toàn để tải VPU nhị phân. Kiểm tra xem tập tin được trỏ đến bởi tùy chọn VpuElf không bị hỏng, và chính xác là gì từ trình điều khiển phát hành. VPU nhị phân được phiên bản và phải tương ứng với một trình điều khiển cho phép phát hành. Mọi hỏng hóc trong tệp tin có thể treo VPU hoặc xóa bộ nhớ hoặc thẻ SD.
Hệ thống treo cứng trong khi kiểm tra mã VPU.
Ngay ctrl-z (không ctrl-c) Xorg, đồng bộ và khởi động lại hệ thống của bạn. Nó có thể sẽ không đóng cửa đúng cách nhưng ngay khi hạt nhân ARM đã tắt (bạn sẽ thấy một thông báo trên màn hình) kéo sức mạnh. Khi khởi động lại, hãy thử lại. Nếu điều đó xảy ra một lần nữa xác nhận rằng VPU nhị phân là nguyên vẹn và không bị giả mạo, và bạn có một firmware mới nhất của start. elf / GPU có khả năng thực thi.
Có một số tham nhũng hiển thị.
Ví dụ, màu sắc không phải là những gì họ dự kiến, các biểu tượng trông điểm hỏng, điểm ảnh đốm, vv Điều này nên được báo cáo cho tôi như là một lỗi thông qua [7]. Tuy nhiên bạn cần phải đảm bảo bạn có một ví dụ tái sản xuất - nếu không nó không thể được cố định. Khởi động lại X và cố gắng tìm ra số bước tối thiểu cần thiết để có được các đồ tạo tác mà bạn có thể nhìn thấy.
Ngoài ra thử vô hiệu hóa VpuOffload và xem nếu bạn có cùng một hiệu lực. Bạn phải vô hiệu hóa việc ép xung. Cuối cùng, trước khi gửi lỗi, bạn cần xác nhận rằng trình điều khiển chứng khoán sẽ không thực hiện nó. Gỡ cài đặt trình điều khiển và chạy lại thử nghiệm để xác nhận nếu có hoặc không xảy ra.
Điều này có nghĩa là một trong ba điều,
trình điều khiển đã rơi ngay lập tức trình điều khiển đã bắt gặp một lệnh DMA không hợp lệ trình điều khiển đã bị hỏng hóc bằng cách nào đó và bắt nó.
tất cả những điều này là xấu và cần phải được báo cáo thông qua [8]. Nó có thể là lỗi của người dùng nhưng nếu như vậy một thông điệp thân thiện với người sử dụng sẽ được hiển thị.
Để gửi điều này như một lỗi, bạn cần có một ví dụ tái tạo, đăng xuất từ Xorg (nếu thích hợp) và tệp cốt lõi. Các repro cần phải làm việc mà không có bất kỳ ép xung quá. Sau vụ tai nạn, từ gdb chạy generate-core-file và đảm bảo rằng tập tin này được đệ trình với repro.
Màn hình hiển thị dường như không được tăng tốc.
CPU ARM là một nút cổ chai rất lớn và thậm chí là lúc tốt nhất của trình điều khiển không phải là cơ bản nhanh hơn so với cổ phiếu lái xe. Bạn có thể cần phải cuộn lại mong đợi của bạn! Đừng quên rằng trước đây bạn có thể đã sử dụng chế độ màu 16-bit, nhẹ hơn trên hệ thống con bộ nhớ. Tuy nhiên, trong trường hợp thiếu chính xác tăng tốc, hãy kiểm tra:
màn hình hiển thị đang chạy ở chế độ màu 32-bit. Trình điều khiển được thiết kế cho chế độ này và bất kỳ chế độ nào khác sẽ gọi đến phần lớn mã trình điều khiển gốc là cơ chế dự phòng của nó. Không có hỗ trợ thành phần cho màu 16-bit trên CPU hoặc VPU, nhưng bản sao DMA và blits sẽ hoạt động chính xác. Dự phòng CPU cho các bản sao nhỏ / blits không tồn tại cho chế độ màu 16-bit và sẽ tiếp tục sử dụng DMA. bạn có thể đang chạy các chương trình làm tất cả công việc của họ với rendering phía máy khách. Trình điều khiển này không thể hỗ trợ ở đó, và do đó kết thúc là một bộ đệm khung hình vinh quang. Có rất nhiều chương trình như vậy mà làm tất cả các công việc của họ như thế này. Chạy đầu và xem thời gian CPU của bạn đang được chi tiêu - đó là tất cả trong ứng dụng? có đủ bộ nhớ đã được truyền cho người lái. Nếu không đủ bộ nhớ được cung cấp (xem xét độ phân giải hiển thị) thì sẽ không có đủ bộ nhớ cho mã để cơ động và con đường dự phòng sẽ được chọn. Nếu sử dụng tùy chọn SelfManagedOffscreen kiểm tra để xem trình điều khiển không hết bộ nhớ. toàn bộ hệ thống có thể đã hết bộ nhớ, và bộ nhớ trao đổi đang được sử dụng. Bạn có thể xác định điều này với đầu trang hoặc miễn phí. một số ứng dụng sẽ cố gắng sử dụng OpenGL để làm thành phần hiển thị, thay vì XRender. Không có hỗ trợ phần cứng cho OpenGL, và điều này có nghĩa là việc rendering phần mềm (lúc tốt nhất) sẽ được sử dụng. Kiểm tra xem ứng dụng hoặc quản lý cửa sổ đang cố gắng sử dụng GL. Hãy nhớ rằng, hiện tại không có hỗ trợ cho OpenGL ES thông qua GLX. Cuối cùng, hãy xem xét rằng phiên bản hiện tại cần phải được điều chỉnh (do đó việc thử nghiệm, để tìm hiểu các mẫu sử dụng phổ biến) và nó có đầy đủ mã xác nhận để đảm bảo rằng nếu mọi việc trở nên sai lệch, họ sẽ bị bắt trước khi bất kỳ thiệt hại nào được thực hiện. Mã xác nhận này làm chậm sự việc.
Nếu bạn hoàn toàn sử dụng các tiêu chuẩn đóng hộp để kiểm tra cho bất kỳ tăng hiệu suất sau đó bỏ qua chúng - sử dụng các bài kiểm tra chủ quan thay thế. Hầu hết các điểm chuẩn dường như không xem xét kiến trúc EXA (ví dụ x11perf). Họ không hiểu các đơn vị bộ nhớ trên / ngoài màn hình và dành nhiều thời gian để thực hiện các thao tác tải lên / tải không cần thiết. Ngoài ra các hệ thống ghi lệnh (ví dụ gtkperf) mà sau đó phát lại lệnh càng nhanh càng tốt không xem xét việc RPi_Xorg_rpi_Driver # Blocking_waits vấn đề và gửi điểm đồng bộ hóa của họ quá sớm sau khi các lệnh vẽ thực tế được ban hành. Mã điểm khởi động đồng bộ được thiết kế xung quanh việc kiểm tra với các điểm đồng bộ hóa tương tác người dùng theo thời gian thực, không đồng bộ các điểm xuất hiện ngay sau cuộc gọi vẽ.
Hình vuông màu đen ở phía trên bên trái màn hình.
Đây là con trỏ của VT hiển thị qua bộ đệm khung. Điều này âm thanh chính xác như những gì được nhìn thấy [9]. Lưu ý rằng ngay cả với trình điều khiển fbdev cổ phiếu, khi được sử dụng trong chế độ màu 32-bit, cũng có cùng một hành vi. Không có nỗ lực nào để giải quyết vấn đề này.
rendercheck đôi khi không thành công.
Dường như các mục tiêu hiển thị sử dụng 'cửa sổ' đôi khi có thể không thành công. Điều này là bởi vì các tùy chọn hiển thị cửa sổ sử dụng cửa sổ gốc X, nó tồn tại trong bộ nhớ bộ đệm của bộ đệm bộ đệm. Vấn đề con trỏ chuột / màu đen ở điểm trước gây trở ngại cho việc này (bằng cách viết văn bản màu đen), làm cho những bài kiểm tra đó thất bại.
Nội dung cửa sổ hoặc trang trí bị hỏng trong quá trình kéo cửa sổ.
Điều này có thể xảy ra nếu chức năng memcpy libc ban đầu đang được sử dụng, không phải là sự thay thế có sẵn tại [10]. Đảm bảo rằng thư viện này được cài đặt (được bật theo mặc định trong Raspbian) và được bật.
Làm thế nào để thay đổi VPU nhị phân.
Vào thời điểm viết bộ nhớ lệnh của VPU dường như là dính. Nếu trước đây bạn đã chạy trình điều khiển, với tính năng bật tải VPU, trong phiên hiện tại, bạn nên khởi động lại nếu bạn cần thay đổi nhị phân VPU. Ví dụ, nếu bạn được gửi một phiên bản cập nhật của VPU nhị phân, sao chép nó vào đúng nơi (hoặc thay đổi tùy chọn VpuElf của bạn), khởi động lại và sau đó chạy X. Nếu bạn không khởi động lại thì có một sự thay đổi mạnh mẽ mà người lái xe sẽ treo .
Trình điều khiển Ethernet oopses / hết bộ nhớ / ngừng làm việc.
Mô-đun hạt nhân dmaer phân bổ một lượng bộ nhớ hợp lý dưới dạng các trang cá nhân - nhưng không có gì quá mức. GFP_KERNEL được sử dụng và được phép không thành công. Tuy nhiên, có vẻ như trình điều khiển Ethernet tự nguyện từ bỏ bộ nhớ khi yêu cầu các khoản phân bổ. và sau đó phàn nàn về nó.
Vấn đề này xảy ra thường xuyên hơn khi BlockSize lớn, chế độ bộ nhớ 4k được sử dụng và FaultInImm không được sử dụng. Thử,
không sử dụng Ethernet smsc95xx. turbo_mode = N trong /boot/cmdline. txt vm. min_free_kbytes = 12288 trong /etc/sysctl. conf (hoặc thậm chí cao hơn?) không sử dụng chế độ 4k làm giảm kích thước bộ nhớ BlockSize cho phép tuỳ chọn FaultInImm - điều này sẽ gây ra tất cả các bộ nhớ được phân bổ ngay lập tức, chứ không phải là dần dần. Nếu trình điều khiển Ethernet không thất bại ngay sau đó, bạn đang ở trong rõ ràng.
Hiển thị nhanh chóng tắt / mất tín hiệu.
Nếu bạn bắt đầu X và rất nhanh sau khi tải một ứng dụng đồ họa (một ứng dụng sử dụng phần mở rộng XRender) màn hình sẽ tắt hoặc mất tín hiệu và bạn thấy Raspberry Pi của bạn đã treo - chúc mừng! Xe buýt AXI của bạn đã bị khóa. Bạn sẽ cần phải chu kỳ điện của bạn Pi để bật nó trở lại.
Để báo cáo điều này, xin vui lòng cho đăng nhập hạt nhân dmesg xung quanh thời gian các module DMA được tải, cũng như đăng nhập Xorg. Bạn nên chạy lại Xorg và nạp module hạt nhân miễn là bạn không chạy bất kỳ ứng dụng cửa sổ X nào. Đây là những gì gây nên khóa-up.
Cuối cùng, đảm bảo rằng bạn không nhầm lẫn điều này vì trình bảo vệ màn hình đang xuất hiện trên;)
Tắt / gỡ cài đặt.
Bạn có thể tắt trình điều khiển bằng cách thay đổi tùy chọn NoAccel từ EXA sang NoAccel. Việc này sẽ vô hiệu hóa VPU và DMA, nhưng vẫn để lại chính máy chủ X với các thay đổi trong thay đổi - thay đổi NoAccel sẽ không làm gì ở đây.
Để hoàn toàn loại bỏ mã này, chạy.
sudo apt-get install - cài đặt lại xserver-xorg-video-fbdev xserver-xorg-core.
Điều này sẽ chỉ cần cài đặt lại trên đầu của bất kỳ tập tin sửa đổi.
Nguồn WIP có thể được tìm thấy ở đây Liên kết này cũng bao gồm giấy phép và readmes. Chúng không được bao gồm trong các gói nhị phân vì chúng được dự định trích xuất vào / (gốc). Không ai muốn một readme sống trong /!
Phát hành lần đầu. Bao gồm nhiều mã xác minh và gỡ lỗi. LINK.
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.