【Linux】基于Arm板开发屏幕移动设备

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

现如今嵌入式设备需要小屏操作,怎么制作嵌入式设备可用的桌面应用呢。本例原理是通过在主机启动前端服务,然后开机自启动,识别连接的屏幕,将前端UI渲染到屏幕上,全屏显示出来。


提示:以下是本篇文章正文内容,下面案例可供参考

一、查看屏幕

本例示范选择用Vue + TS 来创建桌面应用,在linux系统上,实现开机自动渲染桌面应用从而控制嵌入式设备,和嵌入式驱动。

(本例实现基于ubuntu系统)

1. 识别当前Display

echo $DISPLAY

对于带桌面的Ubuntu系统通常输出的是 :0, 它代表着第一个显示服务器, 代表现在正在使用第一个显示服务器。

2. 输出桌面环境类别

echo $XDG_SESSION_TYPE
  • X11 (x11): 环境变量 DISPLAY=:0 是绝对正确的指定方式。

  • Wayland (wayland): Wayland本身不使用 DISPLAY 变量,但为了兼容性,它通常仍然会设置 DISPLAY=:0。许多基于X11的应用程序(如Chromium、Firefox)会通过一个叫做“XWayland”的兼容层来运行,而这个兼容层实例就对应着 :0。

  • tty: 如果是tty意味着当前终端没有使用图形桌面环境,是一个纯文本的环境( 通常是 tty2 或 tty1,具体取决于你的Ubuntu版本和配置)Ctrl + ALT + F2 进入桌面环境,Ctrl + ALT + F3 进入纯文本环境 (F3对应的是tty3)。
    在这里插入图片描述

注意:查看当前图形桌面环境需要在当前用户下查看,如果通过su 命令切换了其它用户,那么当前终端就会变成纯文本环境。

如果需要调试,检查下图形服务器是否在运行,命令如下:

# 1. 检查最关键的图形服务器进程(Xorg 或 Xwayland)是否存在
ps aux | grep -E "(Xorg|Xwayland)"

# 2. 检查当前正在运行的进程里是否有图形界面管理器(显示管理器)
ps aux | grep -E "(gdm|lightdm|sddm)"

# 3. 检查系统启动的默认目标(是图形模式还是文本模式)
systemctl get-default

# 4. 检查当前正在运行的服务目标
systemctl isolate

3. 查看已经连接的屏幕

执行 xrandr --query

xrandr --query

Screen 0: minimum 16 x 16, current 1280 x 800, maximum 32767 x 32767
Virtual-1 connected primary 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x800      59.81*+
   1024x768      59.92  
   800x600       59.86  
   640x480       59.38  
   320x240       59.52  
   1152x720      59.97  
   960x600       59.63  
   928x580       59.88  
   800x500       59.50  
   768x480       59.90  
   720x480       59.71  
   640x400       59.95  
   320x200       58.96  
   1280x720      59.86  
   1024x576      59.90  
   864x486       59.92  
   720x400       59.55  
   640x350       59.77  

从上面输出可以看到当前 Screen 0 下面的Virtual-1 已经连接,并且显示了分别率

二、测试屏幕

1. 安装依赖

代码如下(示例):

# 安装Node.js和npm
sudo apt install -y nodejs npm

# 安装Vue CLI
sudo npm install -g @vue/cli

# 安装PM2(用于进程管理)
sudo npm install -g pm2

# 安装Chromium浏览器(用于全屏显示)
sudo apt install -y chromium-browser
  1. 下载前建议将软件镜像源换成国内镜像

在这里插入图片描述

  1. 为了自由的在虚拟机和主机网络通信,建议把虚拟机网络设置改成 桥接模式,虚拟机会从主机DHCP分配一个同网段的网络。

  2. 为了可以让虚拟机和主机之间可以自由的复制粘贴,需要安装VM tools工具,然后共享粘贴板 (需要重启生效)

sudo apt update
sudo apt install open-vm-tools-desktop

2. 测试运行

在测试屏幕存在,并且安装了依赖后,开启UI

DISPLAY=:0 chromium-browser --no-sandbox --disable-features=VizDisplayCompositor --start-fullscreen --kiosk http://localhost:3000

为了不用杀进程关闭页面可以取消 --kiosk 参数,执行完桌面就会跳转到前端服务界面。


总结

提示:如上就是嵌入式系统开发屏幕的步骤

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值