前言
我们知道,ubuntu server 没有桌面环境,如果接上HDMI显示器,得到的是一个终端画面
那么如何让它在显示器上播放视频,显示网页呢?
接下来我要介绍的方法,不仅适用于PC版本的 ubuntu server ,也适用于树莓派等嵌入式arm设备的 ubuntu server ,当然也适用于其它没有桌面的 linux 发行版
为什么有这个需求?最初是我在树莓派4B上安装了ubuntu desktop 版本的系统,发现树莓派的性能有点吃不消,虽然能正常开机,但是操作鼠标键盘不流畅,在刚装好系统,没有安装和启动任何软件的情况下,已经消耗了2.2G内存,虽然我的树莓派4B是8G内存版本的,但还是很有压力
要知道2026年的今天,内存涨价,8G内存版本的树莓派已经超过1000元,大多数人还是会选购2G或4G版本的,那么ubuntu desktop对它来说就太重了,于是我重装系统,选择没有桌面环境的 ubuntu server (arm64)版本。
虽然大部分时候也确实不需要桌面环境,但偶尔我还需要树莓派能把画面输出到屏幕上,比如展示一个软件窗口(或网页),显示各种传感器的数据,或者循环播放一段视频,或监控画面。
这种需求其实是很常见的,比如我们在用树莓派做一些有趣的小玩意儿,智能车,机器人,广告屏,和用户现场交互的时候,还是需要展示一些画面。
首先
首先在开始之前,如果你用的是xshell之类的SSH客户端,一定要在连接属性中,关闭 X11转发功能,否则输出画面会被转到到SSH客户端一侧
图片
好,言归正传,我们来实际操作,首先是显示图片
需要安装软件 fbi
sudoaptupdatesudoaptinstallfbi然后执行命令
sudofbi-T1-a--noverbose图片.jpg参数:
-T 1:指定使用的虚拟终端(VT)编号,通过 SSH 远程控制时必须加。
-a:自动缩放以适应屏幕。
–noverbose:隐藏底部信息栏。
执行后,显示器上会一直显示图片画面,如果要关闭,则用命令结束 fbi 进程
sudopkillfbi视频
需要安装软件 mpv
sudoaptupdatesudoaptinstallmpv如果是在物理终端中则执行命令:
mpv--vo=drm video.mp4如果是在SSH中则执行命令:
mpv--vo=drm --drm-device=/dev/dri/card1 video.mp4/dev/dri/card1 是你的显示设备,可能是card0 card1 card2 等,具体用 ls 查看有几个设备,挨个试即可,对于多显示器的情况,也能输出到指定显示器
在播放过程中,还可以在终端中按键盘上的【上】【下】【左】【右】方向键,以控制视频快进快退
网页
需要安装两个软件 cage 和 chromium
sudoaptupdatesudoaptinstallcage chromiumchromium 不用说了,就是浏览器
cage 是一个超级轻量的单应用桌面,它只做一件事,启动一个程序,让它全屏独占整个屏幕
它没有桌面、没有任务栏、没有窗口标题栏,也不能拖动或切换多个窗口
安装好以后先给用户增加权限:
sudousermod-aGvideo,render ubuntu注意,我的用户名是 ubuntu 你的要替换成你的实际用户
然后执行命令启动浏览器
cage -- chromium--kiosk--ozone-platform=wayland https://www.baidu.com
但要注意,和播放图片视频不同,显示网页的命令,只能在物理终端中执行
在SSH中执行的话会失败,因为 SSH 会话没有"座位(seat)",也就没有权限去占用显示设备。
当然也有办法,但是比较麻烦,改天再说。
如图可以看到网页全屏展示,非常适合做数据大屏,也可以用网页的方式显示各种传感器的数据等。
如果需要地址栏的话可以这样:
cage -- chromium --ozone-platform=wayland https://www.biadu.com