当前位置: 首页 > ds >正文

[Raspberry Pi]如何將無頭虛擬顯示器服務(headless display)建置在樹莓派的Ubuntu桌面作業系統中?

在樹莓派,嵌入式系統以及IoT的應用中,為了減少對實體顯示裝置的依賴並降低硬體維護成本,無頭顯示(headless display)的需求相對重要,特別是在無頭(headless)環境下,卻需要運行作業系統的桌面應用時。解決無頭顯示的方案分為硬體和軟體方式,硬體方式是直接在被控端插入HDMI欺騙器,本文則著重於軟體方式,利用安裝和配置虛擬顯示器服務於被控端中,兩個方式的目的都是為了讓作業系統認為已連接實體顯示裝置,從而允許遠端訪問桌面應用。

延續<[Raspberry Pi]如何用VNC遠端控制樹莓派(Ubuntu desktop 23.04)?>文章內容,樹莓派作為被控端,並讓使用者藉由VNC遠端控制,其需要X server提供顯示輸出,但若樹莓派沒有連接實體顯示裝置,則Ubuntu desktop作業系統無法啟動GUI,導致遠端桌面無法正常運作。本文實作的被控端硬體和作業系統稍有變動,條列如下:

1.被控端硬體: 樹莓派 5 / 8GB
2.作業系統: Ubuntu desktop 24.04.2 LTS
3.執行下列虛擬顯示器服務之前,請先行完成RealVNC Server的安裝作業,同時將下列兩個服務(vncserver-virtuald.service和vncserver-x11-serviced.service)設定為開機後自動啟動,指令如下。
sudo systemctl start vncserver-virtuald.service   
sudo systemctl start vncserver-x11-serviced.service
sudo systemctl enable vncserver-virtuald.service 
sudo systemctl enable vncserver-x11-serviced.service 

虛擬顯示服務的安裝和配置

a.系統安裝套件更新
sudo apt update
b.安裝虛擬顯示套件(xserver-xorg-video-dummy)
sudo apt install xserver-xorg-video-dummy
c.創建xorg.conf在下列路徑中
sudo nano /etc/X11/xorg.conf
d.並在xorg.conf檔案中,配置下列內容
Section "Device"Identifier "DummyDevice"Driver "dummy"VideoRam 256000
EndSectionSection "Screen"Identifier "DummyScreen"Device "DummyDevice"Monitor "DummyMonitor"DefaultDepth 24SubSection "Display"Depth 24Modes "1920x1080_60.0"EndSubSection
EndSectionSection "Monitor"Identifier "DummyMonitor"HorizSync 30-70VertRefresh 50-75ModeLine "1920x1080" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +Hsync +Vsync
EndSection
e.配置xorg.conf檔案後,讓樹莓派重新開機
sudo reboot now

同時可嘗試拔掉樹莓派和實體顯示裝置的HDMI線,並利用VNC連接樹莓派,應可順利看到解析度為1920*1080的Ubuntu桌面。

最後,須提醒的是,當已順利配置無頭虛擬顯示器服務後,此時連接實體螢幕時,實體螢幕不會顯示任何畫面,因為已由虛擬顯示器接管了。若要還原連接實體螢幕,可將xorg.conf刪除掉即可。
參考資料:
https://blog.csdn.net/lida2003/article/details/137179653
http://www.xdnf.cn/news/15782.html

相关文章:

  • SGMD辛几何模态分解 直接替换Excel运行包含频谱图相关系数图 Matlab语言!
  • 微信小程序列表数据上拉加载,下拉刷新
  • 7.事务操作
  • 手机兼容测试服务提供商对比分析:如何选择最合适的测试平台
  • 分层图最短路径算法详解
  • Spring整合MyBatis详解
  • 通过轮询方式使用LoRa DTU有什么缺点?
  • Trae IDE:打造完美Java开发环境的实战指南
  • JUnit5 实操
  • 系统设计时平衡超时时间与多因素认证(MFA)带来的用户体验下降
  • istio如何自定义重试状态码
  • 【Jmeter】报错:An error occured:Unknown arg
  • FreeRTOS—中断管理
  • 基于pytorch深度学习笔记:2.VGGNet介绍
  • 腾讯会议本地录屏转存失败解决办法
  • 支付宝小程序 MAU(月活跃用户数)是衡量用户粘性与生态影响力的核心指标
  • 【深度学习新浪潮】AI在finTech领域有哪些值得关注的进展?
  • 专业职业评估工具,多维度数据分析
  • 【人工智能agent】--dify版本更新(通用)
  • 无线调制的几种方式
  • Oracle数据泵详解——让数据迁移像“点外卖”一样简单​
  • ESLint 完整功能介绍和完整使用示例演示
  • QT 交叉编译环境下,嵌入式设备显示字体大小和QT Creator 桌面显示不一致问题解决
  • 【赵渝强老师】Redis的主从复制集群
  • AAC音频格式
  • 新安装的ubuntu 20.04缺少wifi图标 [已解决]
  • Python类型转换,深浅拷贝
  • oracle rac自动表空间自动扩展脚本
  • 基于 Electron + Vue 3 的桌面小说写作软件架构设计
  • 前端设计模式应用精析