使用 智能電話 或 平板電腦 連接熒幕內容投映到外接熒幕裝置
但在下打算將 智能電話 或 平板電腦 當作外接熒幕裝置
讓電腦熒幕投映到 智能電話 或 平板電腦 ,能夠善用舊電子產品
Deskreen
到 https://github.com/pavlobu/deskreen/releases/latest 下載及安裝最新版本
開啟 Deskreen 會有支持烏克蘭的訊息
按 Glory To Ukraine! Glory To Ukrainian Heroes! 關閉訊息
Deskreen 會建立 網頁伺服器 ,並提供連接到伺服器的 網頁超連結
亦提供 QRCode 方便 智能電話 或 平板電腦 等 具備鏡頭 及 QRCode分析器 的裝置連接
在下使用 平板電腦 連接到 Deskreen
當有裝置嘗試連接到 Deskreen 時,Deskreen 需要選擇 允許 或 拒絕 連接
按 Allow 允許 連接
連接後,選擇顯示方式
Entire Screen 會將選取的 整個熒幕 分享
Application Windows 會將選取的 應用程式視窗 分享
在下測試將 整個熒幕分享 的方式
設定完成後,按 Confirm
完成連接
外接裝置的網頁瀏覽器會顯示被連接的電腦的熒幕畫面
點擊全熒幕顯示的按鈕,外接裝置便能夠模仿成外接顯示器
Weylus
到 https://github.com/H-M-H/Weylus/releases/latest 下載及安裝最新版本
Weylus 的操作界面比 Deskreen 更簡單,但操作選項則比 Deskreen 多:
- Access code - 連接密碼,預設 空白
- Bind Address - 連接地址,預設 0.0.0.0 (任意有效地址)
- Port - 連接埠,預設 1701
- WebSocket - 預設 9001
- Auto Start - 執行 Weylus 後自動起動
- Wayland / PipeWire Support - 使用 Wayland 才有效
- VAAPI - 使用 開源API 的 硬件加速,會降低穩定性
- NVENC - 使用 Nvidia API 的 硬件加速,需要使用 Nvidia圖像卡 才有效,會降低穩定性
按 Start 起動後,同樣會建立網頁伺服器讓外接裝置連接
亦提供 QRCode 方便智能裝置連接
載入網頁,出現 Failed to create uinput device! 的提示訊息
原因是宿主系統沒有提供 uinput 讓外接裝置使用
出現 uinput 提示訊息後, Weylus 亦會提供解決 uinput 的方法,在 Terminal 輸入:
sudo groupadd -r uinput
sudo usermod -aG uinput "${USER}"
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"' | sudo tee "/etc/udev/rules.d/60-weylus.rules"
sudo udevadm control --reload
sudo udevadm triggermode=`cvt 1920 1080 60 | grep 'Modeline ' | sed -r 's/Modeline //g'`
eval "xrandr --newmode ${mode}"
eval "xrandr --addmode VIRTUAL1 `echo "${mode}" | awk -F ' ' '{print $1}'`"設定後(如果未能生效或重新開機)便可以讓外接裝置具備遙距離鍵盤輸入
如果要取消 uinput 只需要將 /etc/udev/rules.d/60-weylus.rules 刪除 或 將內容變改為註釋即可
但即使不設定 uinput ,只需要在外接裝置的網頁界面取消 Enable uinput 便可以正常運作
而即使取消 Enable uinput ,外接裝置仍然能夠使用:
- 滑鼠(Mouse)
- 繪圖筆(Stylus)
- 觸控操作(Touch)
來遙距離操作
而其實選項方便,使用預設設定亦沒有影響,一般情況都能夠正常使用
但在下稍微修改設定,令顯示的內容更加流暢,畢竟無線顯示熒幕的內容,通常都會有延遲
- Stretch Video - 會將宿主熒幕的內容延伸至整個外接裝置的熒幕
有機會令畫面變形,因此在下建議取消 - Capture Cursor - 可以顯示宿主熒幕上的遊標位置
- Max Video Resolution - 宿主熒幕的內容在網頁上顯示的解像度
越高越細緻,但同時需要較多時間更新內容,因此建議調低至視覺合適的解像度
(解決度過低,影像會非常濛糊) - Min Frame Interval - 熒幕內容的更新速度,越低越快,外接裝置的運作速度快才能有效
除了能夠設定顯示及控制的內容
Weylus 可以互動地讓外接裝置選擇顯示的宿主熒幕內容
例如選擇整個熒幕
確定顯示設定後,點擊外接熒幕上,設定欄的選單按鈕便可以收合(或展開)設定欄
如果使用 非iOS設備 作為外接裝置,還能夠裝換為全熒幕顯示模式
硬件模擬
坊間有一些稱為 模擬插頭 (Dummy Plug) 的電子產品,能夠令電腦以為已經連接到 熒幕顯示器
這些 模擬插頭 涵蓋所有已知的 影像輸出介面,包括: VGA, DVI, HDMI, DP
在下使用 HDMI模擬插頭 測試
當 模擬插頭 連接到 電腦 , 電腦 識別到虛擬的 熒幕顯示器 (在下使用的 HDMI模擬插頭 標示為 BBC 16" )
便可以在 熒幕分享 時,選擇 虛擬熒幕 並在 外接裝置 顯示 熒幕內容
虛擬熒幕
閣下可能會發現,雖然這種方法能夠將宿主熒幕的內容在外接裝置顯示
但實際只是 熒幕鏡射(Mirroring) ,並不能將宿主熒幕延伸到外接裝置
因此,如果需要將宿主熒幕延伸,便需要添置一些裝置或設定
軟件模擬
畢竟 硬件模擬 需要成本添置額外設備,而且 圖像卡 的插孔亦有限
因此亦可以改用軟件方式模擬虛擬熒幕
Linux 可以使用 XRandR 建立虛擬熒幕
例如在下打算模擬 1920x1080 60Hz 的 虛擬熒幕
先到 /usr/share/X11/xorg.conf.d 建立 熒幕區域
Section "Device" Identifier "intelgpu0" Driver "intel" Option "VirtualHeads" "1" EndSection
檔案名並不重要,不過一般儲存為 *.conf
而設定檔當中,在下使用模擬 Intel GPU 及 Intel 驅動程式 的設定,並建立 1個虛擬熒幕
(熒幕數量按需要調整)
設定後,需要重新登入才生效
重新登入後,在 Terminal 輸入:
xrandr
會顯示
VIRTUAL* disconnected (normal left inverted right x axis y axis)
表示已經設置虛擬熒幕,但未連接
輸入:
cvt 1920 1080 60
顯示
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
表示 1920x1080 60Hz 熒幕的建議設定值
將剛才的建議設定值複製,輸入:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
新增 1920x1080 60Hz 的 熒幕設定選項
輸入:
xrandr --addmode VIRTUAL1 "1920x1080_60.00"
將 1920x1080 60Hz 熒幕設定選項 指派到 VIRTUAL1
然後可以到 熒幕偏好設定 選取 VIRTUAL1 並啟動熒幕,便能夠使用 虛擬熒幕
便可以讓外接裝置選取 虛擬熒幕 ,作為 延伸熒幕
虛擬熒幕 與真實的熒幕功能相同,都可以設定位置、解像度、更新率、旋轉方向
補充資料
雖然技術文章指宿主系統與外接裝置連接到相同網絡才能有效
但如果將宿主系統的 IP地址 及 連接埠 加入到 通訊埠轉發 ,能夠讓外部網絡的裝置連接
這種操作接近與 VNC 相同
cvt 並不是 Linux 或 X11 的預設套件,需要安裝 xcvt 才能使用
輸入
sudo apt install xcvt或 按此安裝 xcvt
總結
這個技術能將已經折舊但仍能使用的智能裝置,替待成支援電腦的外接熒幕
但亦並非所有折舊的智能裝置都能使用,在下發現不支援 HTML5 的網頁瀏覽器不能顯示熒幕內容