飞腾派OS(无桌面版本基于Debian11)安装weston桌面及Qt

飞腾派OS(无桌面版本基于Debian11)安装weston桌面及Qt测试

0 先更新

sudo apt update
sudo apt upgrade

1 安装xwayland协议及weston桌面

sudo apt install xwayland weston

依赖的软件包

  • libfreerdp2-2
  • libweston-10-0
  • libwinpr2-2
  • freerdp2-x11

2 安装Qt5

2.1 安装qt5组件
sudo apt install build-essential

2.2 安装Qt5基础库和开发工具
sudo apt install qtbase5-dev qtbase5-dev-tools

2.3 安装相关组件
sudo apt install qtwayland5
sudo apt install libqt5serialport5 libqt5serialport5-dev
sudo apt install qtwebengine5-*
sudo apt install libqt5webengine5

3 安装中文字符集和中文字体

3.1 安装中文字符集

检查和设置区域(Locale)

locale

安装中文语言字符集支持

sudo apt update
sudo apt install locales
sudo dpkg-reconfigure locales

在dpkg-reconfigure界面中,选择zh_CN.UTF-8等中文选项,确保它们被选中。

设置环境变量
编辑/.bashrc或者/.profile文件,添加以下内容:

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh
export LC_ALL=zh_CN.UTF-8

保存后,使用以下命令使更改生效:

source ~/.bashrc

3.2 安装中文字体

安装中文字体如下:

sudo apt update
sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei

更新字体缓存:

sudo fc-cache -fv

3 创建weston的参数文件和自启动服务脚本

3.1 创建/etc/xdg/weston/weston.ini
[core]
backend=drm-backend.so

# Allow running without input devices
require-input=false

# Disable screen idle timeout by default
idle-time=0

# The repaint-window is used to calculate repaint delay(ms) after flipped.
#   value <= 0: delay = abs(value)
#   value > 0: delay = vblank_duration - value
repaint-window=-1

# Allow blending with lower drm planes
# gbm-format=argb8888

[shell]
# top(default)|bottom|left|right|none, none to disable panel
panel-position=bottom

# none|minutes(default)|seconds
# clock-format=seconds

# Disable screen locking
locking=false

[libinput]
# Uncomment below to enable touch screen calibrator(weston-touch-calibrator)
# touchscreen_calibrator=true
# calibration_helper=/bin/weston-calibration-helper.sh

[keyboard]
# Comment this to enable vt switching
vt-switching=false

# Configs for auto key repeat
# repeat-rate=40
# repeat-delay=400


3.2 创建/etc/profile.d/weston.sh
# The env variables below can be overridden

# Comment out this for atomic related functions, e.g. sprites
export WESTON_DISABLE_ATOMIC=1

# Allow using drm modifier, e.g. ARM AFBC
# export WESTON_ALLOW_GBM_MODIFIERS=1

# Enable black background for fullscreen views
# export WESTON_FULLSCREEN_BLACK_BACKGROUND=1

# Allow disabling unused CRTCs
# WESTON_DRM_MASTER=1

# Override output's freezing time
# export WESTON_DRM_RESIZE_FREEZE_MS=1000

# Primary screen
# export WESTON_DRM_PRIMARY=eDP-1

# Single screen
# export WESTON_DRM_SINGLE_HEAD=1

# Fallback to any available connector
# export WESTON_DRM_HEAD_FALLBACK=1

# Connector selecting mode:
# default|primary|internal|external|external-dual
# export WESTON_DRM_HEAD_MODE=external-dual

# Screens layout direction
# horizontal|vertical|same-as
# export WESTON_OUTPUT_FLOW=vertical

# Virtual display size
# export WESTON_DRM_VIRTUAL_SIZE=1024x768

# Comment out these to disable mirror mode
export WESTON_DRM_MIRROR=1
export WESTON_DRM_KEEP_RATIO=1

# Disable DRM plane hardware scale feature
# export WESTON_DRM_DISABLE_PLANE_SCALE=1

# Tag file for freezing weston display
export WESTON_FREEZE_DISPLAY=/tmp/.freeze_weston

# Set dynamic config file path
# export WESTON_DRM_CONFIG=/tmp/.weston_drm.conf
#
# Dynamic config examples:
# echo "compositor:state:sleep" > /tmp/.weston_drm.conf # off + input wakeable
# echo "compositor:state:block" > /tmp/.weston_drm.conf # no input
# echo "compositor:state:freeze" > /tmp/.weston_drm.conf # no input + freeze
# echo "compositor:state:off" > /tmp/.weston_drm.conf # no input + off
# echo "compositor:state:on" > /tmp/.weston_drm.conf
# echo "output:DSI-1:off" >> /tmp/.weston_drm.conf
# echo "output:eDP-1:freeze" >> /tmp/.weston_drm.conf
# echo "output:DSI-1:on" >> /tmp/.weston_drm.conf
# echo "output:all:rotate90" >> /tmp/.weston_drm.conf
# echo "output:all:rect=<100,20,1636,2068>" >> /tmp/.weston_drm.conf
# echo "output:HDMI-A-1:mode=800x600" >> /tmp/.weston_drm.conf
# echo "output:HDMI-A-1:pos=100,200" >> /tmp/.weston_drm.conf
# echo "output:HDMI-A-1:size=1920x1080" >> /tmp/.weston_drm.conf
# echo "output:HDMI-A-1:prefer" >> /tmp/.weston_drm.conf
# echo "output:HDMI-A-1:primary" >> /tmp/.weston_drm.conf


3.3 创建/etc/systemd/system/weston.service

内容如下:

[Unit]
Description=Weston Wayland Compositor
After=getty@tty1.service
Conflicts=getty@tty1.service

[Service]
Type=simple
User=root
Group=root
ExecStartPre=-/bin/mkdir -p /run/user/0
ExecStartPre=-/bin/chown root:root /run/user/0
Environment=XDG_RUNTIME_DIR=/run/user/0
ExecStart=/usr/bin/weston
StandardInput=tty-force
StandardOuput=inherit
StandardError=inherit
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
RemainAfterExit=yes
Restart=always

[Install]
WantedBy=multi-user.target

4 QLauncher交叉编译和服务自启动脚本
4.1 QLauncher交叉编译
创建目录

mkdir /opt/qt_workspace

把QLauncher源码传至/opt/qt_workspace下,然后通过以下命令进行交叉编译。

创建目录
mkdir /opt/qt_workspace

把QLauncher源码传至/opt/qt_workspace下,然后通过以下命令进行交叉编译。

cd /opt/qt_workspace/QLauncher
qmake
make -j4

##blue##
编译完毕后把/opt/qt_workspace/QLauncher/QLauncher程序复制到/usr/bin/目录下,然后赋予执行权限。

cp QLauncher /usr/bin/
chmod 777 /usr/bin/QLauncher

4.2 创建/etc/profile.d/qtwayland.sh
# The env variables below can be overridden

export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-wayland}

4.3 创建/etc/systemd/system/launcher.service

内容如下:

[Unit]
Description=The Qt Desktop
After=weston.service

[Service]
Type=simple
User=root
Group=root
ExecStartPre=-/bin/mkdir -p /run/user/0
ExecStartPre=-/bin/chown root:root /run/user/0
Environment=XDG_RUNTIME_DIR=/run/user/0
#Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#Environment=LD_LIBRARY_PATH=/usr/local/lib:/usr/lib/aarch64-linux-gnu:/lib/aarch64-linux-gnu
Environment=QT_QPA_PLATFORM=wayland
ExecStartPre=/bin/sleep 2
ExecStart=/usr/bin/QLauncher
#StandardInput=tty-force
#StandardOutput=inherit
#StandardError=inherit
#TTYPath=/dev/tty1
#TTYReset=yes
#TTYVHangup=yes
RemainAfterExit=yes
Restart=on-failure

[Install]
WantedBy=graphical.target
#WantedBy=multi-user.target

ExecStartPre=/bin/sleep 2 先休眠2~3秒是因为weston从启动到呈现完毕需要一段时间,而QLauncher必须等待weston启动完毕后才能正常启动。如果没有等weston启动完毕就启动QLauncher,会导致QLauncher启动失败。

5 其他

5.1 查看显示协议类型

查看当前显示协议类型

在这里插入代码片
5.2 设置自动登录

在 Debian 的字符界面(即没有图形界面的系统)中设置自动登录,可以通过编辑系统的启动脚本来实现。以下是详细的步骤:

5.2.1 编辑 getty 配置

Debian 使用 agettygetty 来管理终端登录。你需要编辑 /etc/inittab 文件或 /etc/systemd/system/getty@.service.d/ 目录下的配置文件,具体取决于你使用的 init 系统。

5.2.2 使用 systemd(Debian8及以后的版本)

如果你使用的是 systemd(Debian 8 及更高版本默认使用 systemd),可以创建一个覆盖文件来配置 getty 服务。

  1. 创建一个新的覆盖目录和文件:

    sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
    sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf
    
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

2.在override.conf 文件中添加以下内容:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin 你的用户名 --noclear %I $TERM
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin 你的用户名 --noclear %I $TERM

  • --autologin 你的用户名:指定要自动登录的用户名。
  • --noclear:可选参数,表示不清除屏幕内容。

3.保存并退出编辑器。

4.重新加载 systemd 配置并重启 getty 服务:

sudo systemctl daemon-reload
sudo systemctl restart getty@tty1

5.你可以通过重启系统来测试自动登录是否生效:

sudo reboot

5.2.3 使用 sysvinit(Debian8以前的版本)

如果你使用的是 sysvinit(较旧的 Debian 版本可能使用 sysvinit),可以编辑 /etc/inittab 文件。

  1. 打开 /etc/inittab 文件进行编辑:

sudo nano /etc/inittab

2.找到类似以下的行:

1:2345:respawn:/sbin/getty 38400 tty1

修改该行为:

1:2345:respawn:/sbin/getty --autologin 你的用户名 38400 tty1

4. 保存并退出编辑器。

  1. 重启系统以使更改生效:
sudo reboot

5.2.4 验证自动登录

重启系统后,你应该会看到系统自动登录到你指定的用户账户。

5.2.5 注意事项
  • 安全性:自动登录可能会降低系统的安全性,特别是在公共或共享环境中。请确保只有受信任的用户能够访问系统。
  • 多用户环境:如果你的系统有多个用户,建议谨慎使用自动登录功能。

通过以上步骤,你应该能够在 Debian 的字符界面中成功设置自动登录。如果有任何问题,请随时告诉我!

Debian 11 (Bullseye)安装Qt 5,你可以按照以下步骤操作: 1. **更新系统**: 首先确保你的系统是最新的,运行: ``` sudo apt update sudo apt upgrade ``` 2. **添加官方软件源**: 如果尚未添加,你需要添加Qt的官方apt源。打开终端,添加源: ```bash echo "deb [arch=amd64] https://mirrors.aliyun.com/qt/debian bullseye main" | sudo tee /etc/apt/sources.list.d/qt.list ``` 或者如果你更倾向于使用HTTPS: ```bash echo "deb [arch=amd64,signed-by=/usr/share/keyrings/qt-archive-keyring.gpg] https://mirrors.qt.io/apt/debian bullseye main" | sudo tee /etc/apt/sources.list.d/qt.list ``` 3. **导入GPG密钥**: ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AD9F0EB ``` 4. **安装依赖**: 更新包列表并安装必要的依赖项: ```bash sudo apt update sudo apt install -y apt-transport-https ca-certificates gnupg lsb-release ``` 5. **安装Qt**: 安装Qt5库、开发工具和其他组件(如选择 GUI 库): ```bash sudo apt install qt5-default qttools5-dev-tools libqt5opengl5-dev libqt5svg5-dev libqt5webview5-dev libqt5location5-dev libqt5quickcontrols2-dev libqt5qml-dev libqt5printsupport5-dev ``` 6. **验证安装**: 完成安装后,你可以通过`qmake`和`make`命令测试Qt是否可用,例如创建一个小项目试试。 注意:对于一些特定版本Qt,你可能需要访问Qt的官方网站或社区文档获取最新的安装指南,因为官方apt源可能会稍有变动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值