香橙派开机自启动QT交叉编译的可运行文件

准备:

1.香橙派

2.配置文件

3.vscode 环境:需要安装 ssh 插件

4.键盘

5.qt交叉编译的linux可执行文件

6.装好系统的 8g 存储卡

7.参考网址:

Orange Pi4 在 PC 机上 QT5 开发环境的搭建-------https://blog.csdn.net/sehanlingfeng/article/details/108662072

linux 设置开机启动脚本的 3 种方法-----https://blog.csdn.net/jinking01/article/details/126878417

开始:

1.插入存储卡到香橙派

开始刷系统!
image

image

image

拔出sd卡

2.给香橙派连接 WiFi 方便后面 SSH 连接

首先先打开香橙派 连接 WIFI
image
image
得到 ip 之后记录好

3.用 VScode 跟香橙派之间进行 ssh 连接用以传输文件

image点击“+”号
image键入:ssh orangepi@192.168.5.26红色部分改为你记录的 ip
image点击连接
image输入密码:orangepi
image点击打开文件夹
image点击确定后再输入一遍密码文件夹出现 此步骤结束!

4.开始传输文件

image
image把文件夹:orangepi-qt-file 下的文件全选 然后直接拖到 qt 文件夹内 等待文件传输完成
文件传输完成后 关闭窗口重新连接这次不点击打开文件夹,直接在终端操作
image

5.开始 qt 环境

image
这里是截图 要改成跟上面文件一样的解压文件名
image
按照图示输入,开始更改 profile
image
在下方添加下面的文字:

export QTEDIR=/home/orangepi/qt/qt5.12/
export LD_LIBRARY_PATH=/home/orangepi/qt/qt5.12/lib:
     
      
       
        
         L
        
        
         
          D
         
         
          L
         
        
        
         I
        
        
         B
        
        
         R
        
        
         A
        
        
         R
        
        
         
          Y
         
         
          P
         
        
        
         A
        
        
         T
        
        
         H
        
        
         e
        
        
         x
        
        
         p
        
        
         o
        
        
         r
        
        
         t
        
        
         Q
        
        
         
          T
         
         
          Q
         
        
        
         P
        
        
         
          A
         
         
          P
         
        
        
         L
        
        
         A
        
        
         T
        
        
         F
        
        
         O
        
        
         R
        
        
         
          M
         
         
          P
         
        
        
         L
        
        
         U
        
        
         G
        
        
         I
        
        
         
          N
         
         
          P
         
        
        
         A
        
        
         T
        
        
         H
        
        
         =
        
       
       
        LD_LIBRARY_PATH export QT_QPA_PLATFORM_PLUGIN_PATH=
       
      
     LDLIBRARYPATHexportQTQPAPLATFORMPLUGINPATH=QTEDIR/plugins
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/fonts/
overlays=uart3

然后 reboot
接着开机后重新登录 在 qt 文件夹下输入 :./motor_test_host_system_demo_V1_8观察是否出现程序界面,到这一步如果出现 基本上就成功了后面就是配置文字和自启动

6.配置程序字体文件

前面我们配置了环境变量路径,但是我们的字体并不在/usr/share/fonts/里面所以我们需要把我们导入的字体imagecopy 过去
copy 过去以后输入

sudo mkfontscale
sudo mkfontdir
sudo fc-cache

之后字体就配置完成了,接下来再次启动程序试试!

7.配置串口

配置串口

image

然后reboot重启生效

8.配置香橙派自动登录

还是要 ssh 连接到香橙派,然后输入:su root 进入 root 模式
然后输入:cd ~ 切换到 ~#下
image
开始按照图片上的进行输入 可以试试复制下方的试试:

mkdir -p /etc/systemd/system/getty@.service.d/
mkdir -p /etc/systemd/system/serial-getty@.service.d/
cat <<-EOF>/etc/systemd/system/serial-getty@.service.d/override.conf
[Service]
ExecStartPre=/bin/sh -c 'exec /bin/sleep 10'
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin orangepi %I $TERM
Type=idle
EOF
cp /etc/systemd/system/serial-getty@.service.d/override.conf /etc/systemd/system/getty@.service.d/override.conf

然后重启试试看

9.配置香橙派开机自启动测试程序

直接在 qt 文件夹下建立一个脚本文件
image
可以命名为 test.sh
在里面添加如下字符:

#!/bin/bash
export QTEDIR=/home/orangepi/qt/qt5.12/
export LD_LIBRARY_PATH=/home/orangepi/qt/qt5.12/lib:
     
      
       
        
         L
        
        
         
          D
         
         
          L
         
        
        
         I
        
        
         B
        
        
         R
        
        
         A
        
        
         R
        
        
         
          Y
         
         
          P
         
        
        
         A
        
        
         T
        
        
         H
        
        
         e
        
        
         x
        
        
         p
        
        
         o
        
        
         r
        
        
         t
        
        
         Q
        
        
         
          T
         
         
          Q
         
        
        
         P
        
        
         
          A
         
         
          P
         
        
        
         L
        
        
         A
        
        
         T
        
        
         F
        
        
         O
        
        
         R
        
        
         
          M
         
         
          P
         
        
        
         L
        
        
         U
        
        
         G
        
        
         I
        
        
         
          N
         
         
          P
         
        
        
         A
        
        
         T
        
        
         H
        
        
         =
        
       
       
        LD_LIBRARY_PATH export QT_QPA_PLATFORM_PLUGIN_PATH=
       
      
     LDLIBRARYPATHexportQTQPAPLATFORMPLUGINPATH=QTEDIR/plugins
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/fonts/
overlays=uart3
/home/orangepi/qt/motor_test_host_system_demo_V1_8

如图:
image
保存并退出
然后输入:sudo chmod 777 test.sh
给权限
之后退回到 #/ 下开始
输入:sudo vim etc/rc.local
在 exit 0 之前加上/home/orangepi/qt/test.sh
如图
image
保存并退出

10.完成 重启!!!

小结:

1.第 8 步中开机自启动方式

还有别的方式,试了不是很好用,开始了还要加延时

image

这个方式不好用,要加延时,而且会有一个光标一直闪!

2.程序配置

后期ip可能会变,当使用开机自启动后,会切不到终端页面看不到

要在程序里写关闭程序的操作,不然可能再也没办法重新配程序,所以又要重新装一遍,TvT

可以在qt程序里获取ip并显示出来,这样也可以方便后期ssh连接修改底层

用下面的程序便可以打印出来当前的ip,这里是终端打印,要把这个打印配到你程序里的edit里面去

    QList<QNetworkInterface> listNiTmp = QNetworkInterface::allInterfaces();
    QStringList slAllActiveIp;
    foreach  (QNetworkInterface niTmp, listNiTmp)
    {
        if (niTmp.flags().testFlag(QNetworkInterface::IsRunning))
        {
            QList<QNetworkAddressEntry> listAddressEntry = niTmp.addressEntries();
            foreach (QNetworkAddressEntry addressentry, listAddressEntry)
            {
                if (addressentry.ip().protocol() == QAbstractSocket::IPv4Protocol
                        && addressentry.ip() != QHostAddress::LocalHost)
                {
                    slAllActiveIp.append(addressentry.ip().toString());
                    qDebug() << "ip:" << addressentry.ip().toString();
                }
            }
        }
    }
 
    qDebug() << "slAllActiveIp:" << slAllActiveIp;
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐