Câu hỏi Chạy Unity trên màn hình bên ngoài với Bumblebee


Tôi nhận ra có rất nhiều câu hỏi khác về điều này, nhưng tất cả chúng đều là về thiết lập cơ bản. Tôi đã nhận được hầu hết các cách có nhưng tôi có một câu hỏi rất cụ thể: Tôi muốn chạy Unity đầy đủ trên màn hình bên ngoài (HDMI), và tôi không quan tâm nếu màn hình máy tính xách tay là không sử dụng được.

Tôi có một Dell XPS 15 với Nvidia GT 540M với Optimus. (DAMN OPTIMUS !!!!) Tôi đã cài đặt Bumblebee. Tôi có thể chạy hệ thống trên màn hình máy tính xách tay và tôi có thể sử dụng optirun để chạy các chương trình như glxspheres ở chế độ hiệu năng cao. Khi tôi cắm vào màn hình bên ngoài, tôi không thấy gì cả, và xrandr không phát hiện ra nó ("HDMI1 disconnected (normal left inverted right x axis y axis)").

Đây là những gì tôi đã làm cho đến nay (làm việc từ Bumblebee's thiết lập nhiều màn hình hướng dẫn). Tôi đã làm theo lời khuyên "màn hình phụ" ở đó, vì vậy tôi đã chỉnh sửa bumblebee.conf và xorg.conf.nvidia theo hướng dẫn. Bây giờ, nếu tôi chạy:

export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

Tôi thấy bản demo glxspheres trên màn hình ngoài (không có bất kỳ cửa sổ nào). Woohoo!

Bây giờ bước tiếp theo là tắt Unity trên màn hình máy tính xách tay và kiểm tra rằng glxspheres vẫn hoạt động. Vì vậy, tôi nhấn Ctrl + Alt + F1 để đi đến thiết bị đầu cuối không đồ họa. Sau đó:

sudo service lightdm stop
export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

Một lần nữa, tôi thấy glxspheres trên màn hình bên ngoài.

Bây giờ hướng dẫn Bumblebee bảo bạn làm "optirun wmii& (hoặc khác như startlxde) "nhưng tôi không muốn thay đổi sang trình quản lý cửa sổ khác. Làm cách nào để chạy Unity trên màn hình ngoài?

Tôi đã thử optirun unity và tôi có hầu hết cách đó. Điều này khởi động Unity trên màn hình ngoài. Tôi có thể thấy máy tính để bàn và chuột hoạt động. Tôi có thể chạy các chương trình khác bên trong Unity. Chỉ có một vài vấn đề:

  1. Một số kết hợp bàn phím nhất định không được Unity phát hiện - trông giống như mọi thứ liên quan đến Ctrl cũng như phím Fn. (ví dụ: Ctrl + Alt + T không hoạt động để có thiết bị đầu cuối; Fn + F11 không hoạt động để thay đổi âm lượng.)
  2. Các nét bút xuất hiện trong terminal cũng như Unity. Tôi không muốn điều đó vì có thể có mật khẩu được nhập.
  3. Nếu tôi chuyển sang màn hình khác (ví dụ: Ctrl + Alt + F8), âm thanh sẽ ngừng hoạt động, vì vậy đây không phải là giải pháp khả thi đối với # 2.

Tôi cảm thấy như ba vấn đề này có liên quan. Tôi nghĩ vấn đề chính là tôi không nên trực tiếp điều hành Unity, nhưng thay vào đó, chạy lightdm. Tôi đã thử optirun lightdm nhưng nó không hoạt động chút nào. Hy vọng ai đó biết. Nếu không, hy vọng ít nhất câu hỏi này sẽ giúp mọi người gần như chạy Unity trên một màn hình bên ngoài.


4
2018-02-09 03:54


gốc




Các câu trả lời:


như tôi hiểu, Unity không làm việc với optirun (nó có vẻ là một lỗi).

Đó là những gì tôi đã tìm thấy đây:

HDMI không hoạt động với chipset đồ họa Optimus hybrid trong Linux cho hầu hết các máy tính xách tay, ngay cả khi bạn sử dụng Bumblebee, nhưng có một cách để có HDMI hoạt động: bằng cách sử dụng một phiên riêng biệt.

Sử dụng các hướng dẫn dưới đây, bạn sẽ nhận được một phiên LXDE (bạn có thể sử dụng XFCE hoặc các phiên bản khác, nhưng các hướng dẫn dưới đây dành cho LXDE) hiển thị trên màn hình ngoài (được kết nối qua HDMI), và trong phiên này, tất cả các ứng dụng bạn khởi chạy sử dụng card đồ họa Nvidia của máy tính xách tay và bạn có thể chơi trò chơi, xem phim, v.v. Phiên chạy LXDE chạy cùng lúc với phiên thông thường của bạn, vì vậy trên màn hình của máy tính xách tay, bạn sẽ có phiên chính (thường). Ngoài ra, chuột và bàn phím được chia sẻ giữa hai phiên / màn hình.

Đây là cách làm như sau:

first pictiure

second picture

Hình ảnh đầu tiên ở trên là từ màn hình máy tính xách tay của tôi (Dell XPS L702X đi kèm với Nvidia Optimus) trong khi hình ảnh thứ hai là phiên LXDE riêng biệt cũng đang chạy trên máy tính xách tay của tôi, nhưng được hiển thị trên TV được kết nối qua HDMI. Như bạn có thể thấy, đầu tiên là sử dụng chip đồ họa Intel trong khi thứ hai sử dụng Nvidia.

Tuy nhiên, có một số điều cần xem xét khi sử dụng:

  • âm thanh sẽ không hoạt động (nếu bạn biết cách làm cho nó hoạt động, hãy để chúng tôi biết trong phần bình luận!) qua cổng HDMI để bạn chỉ nhận được âm thanh thông qua loa của máy tính xách tay
  • bạn không thể di chuyển cửa sổ từ màn hình hiện tại sang màn hình được kết nối qua HDMI. Cách duy nhất để chạy các ứng dụng trên thiết bị được kết nối qua HDMI hoặc chạy nó từ menu phiên của nó hoặc bằng sử dụng "export DISPLAY =: 8.0" (xem phần cuối của bài đăng để biết thêm thông tin về điều này). Tuy nhiên, con chuột được chia sẻ giữa hai máy tính để bàn.
  • khi tải phiên bổ sung, bạn có thể nhận được chỉ số kép / khay biểu tượng trên phiên hiện tại (chính) của bạn. Có một cách để giải quyết vấn đề này mặc dù (xem phần "mẹo" ở cuối bài đăng)

Nhận HDMI để làm việc với máy tính xách tay sử dụng công nghệ Optimus trong Ubuntu bằng Bumblebee và Synergy

  1. Cài đặt Bumblebee nếu bạn chưa có.

  2. Unity không làm việc với Bumblebee (và tôi không chắc liệu bạn có thể chạy hai phiên sử dụng cùng một trình quản lý cửa sổ mà không can thiệp vào chúng), vì vậy bạn sẽ cần sử dụng môi trường / phiên làm việc khác, như LXDE, XFCE và cứ thế - sử dụng bất cứ thứ gì bạn muốn. Tôi đã sử dụng LXDE để sử dụng các hướng dẫn dưới đây, bạn sẽ nhận được một phiên LXDE trên màn hình được kết nối qua cổng HDMI.

    Để chuột và bàn phím hoạt động trên màn hình ngoài được kết nối qua HDMI, chúng tôi sẽ sử dụng Synergy, một công cụ cho phép bạn chia sẻ chuột và bàn phím giữa nhiều máy tính.

    Hãy cài đặt các gói cần thiết (LXDE và Synergy):

    sudo apt-get install synergy lxde lxde-common

  3. Để có thể sử dụng Synergy, bạn cần phải tạo một tệp cấu hình. Bạn có thể tải xuống từ ĐÂY - sao chép tập tin vào thư mục chính của bạn và đổi tên nó thành ".synergy.conf" (chú ý dấu chấm ở phía trước tên tập tin - làm cho tập tin bị ẩn).

    Các tập tin tôi đã cung cấp ở trên là đủ, nhưng nếu bạn muốn thay đổi nó, bạn có thể đọc về tập tin cấu hình Synergy đây.

  4. Để khởi động LXDE trên màn hình ngoài được kết nối qua HDMI, bạn có thể sử dụng tập lệnh mà bạn có thể tải xuống từ ĐÂY. Giải nén tệp lưu trữ, sao chép tập lệnh "hdmi" vào thư mục chính của bạn và làm cho tập lệnh có thể thực thi được bằng lệnh sau:

    chmod +x ~/hdmi

    Bây giờ, để chạy tập lệnh, sử dụng lệnh sau:

    ~/hdmi

    LXDE bây giờ sẽ bắt đầu trên màn hình bên ngoài được kết nối thông qua cổng HDMI. Cung cấp cho nó một thời gian (khoảng 10 giây) và di chuyển chuột sang bên trái của màn hình của bạn sẽ làm cho nó hiển thị trên thiết bị HDMI.

    Đây là những gì kịch bản làm (đây chỉ là một giải thích, bạn không cần phải chạy các lệnh này, chỉ cần sử dụng kịch bản trên):

    xuất màn hình sang màn hình mà chúng ta sẽ sử dụng cho màn hình HDMI (8):

    export DISPLAY=:8.0

    chạy LXDE với optirun (Bumblebee):

    optirun startlxde &

    chạy máy chủ Synergy ở mặt trước trên màn hình chính (trên phiên chính của máy tính xách tay) với 127.0.0.1 làm địa chỉ:

    synergys -f -a 127.0.0.1 --display :0 -n ubuntu &

    chạy ứng dụng Synergy ở mặt trước trên màn hình HDMI và nó kết nối nó với địa chỉ máy chủ 127.0.0.1:

    synergyc -f -n hdmi --display :8 127.0.0.1 &

    Và cuối cùng, nó sẽ hiển thị màn hình trở lại màn hình (chính) của máy tính xách tay của bạn:

    export DISPLAY=:0.0

    Kịch bản lệnh cũng sử dụng một số lệnh "sleep" để thêm thời gian trễ để đảm bảo các lệnh có đủ thời gian để thực thi trước khi chạy lệnh tiếp theo.


4
2018-03-01 04:26



Siêu! Cảm ơn bạn đã kết xuất bộ não chi tiết. Tôi chưa thử nó, nhưng tôi đã đánh dấu câu trả lời của bạn vì nó có vẻ thực sự hữu ích. Khi tôi có cơ hội, tôi sẽ thử và cho bạn biết. - mgiuca