Linux App
从WeStudio 1.5.0开始,支持在第三方Arm Linux硬件平台上运行App, 目前已支持ARM32和ARM64架构的CPU。下面以树莓派Pi4B为例,介绍如何生成和运行Linux App。 其他ARM开发板,运行方式类似 。 [注意: 第三方硬件系统中必须有 /dev/fb0这个设备节点才能运行!]
1、通过WeStudio构建生成Linux App。
- 1.1、首先打开WeStudio软件,打开例程(如,”云消息“)或者自己的工程。
- 1.2、点击WeStudio左侧工具栏的“配置”按钮,在配置对话框中系统勾选“Linux"选项,并在底部的Linux 选项页的"CPU架构"勾选"ARM"(如果目标系统是64位的,请勾选ARM64)。点击”确定“按钮,保存当前的配置。
- 1.3、点击左侧工具栏的”构建“按钮,等待构建完成,在”构建完成“对话框中点击”打开文件夹“可以查看生成的cloudmessage-linux-arm.tgz文件,如果需要通过U盘来拷贝文件到树莓派系统,将该文件先拷贝到U盘上,在下面的步骤3中将会介绍如何拷贝至树莓派系统。
2、准备树莓派系统
2.1、安装Raspberry Pi OS(官网链接 https://www.raspberrypi.org/downloads/raspberry-pi-os/,下载Raspberry Pi OS (32-bit) Lite镜像并制作SD卡启动盘),如果已经安装系统可以跳过此步骤。如果之前安装的是桌面系统,请通过sudo raspi-config来修改系统的默认启动方式为控制台 (B1 Console 或者B2 Console Autologin)。
$sudo raspi-config 3 Boot Options (Config options for start-up) B1 Desktop / CLI (Choose whether to boot into a desktop environment or command line) B1 Console (Text console, requires user to login) B2 Console Autologin (Text console, automatically logged in as 'pi' user)
2.2、在树莓派上通过HDMI接上显示屏或者显示器,插入做好的SD卡,插上鼠标和键盘,启动树莓派,用户帐户登录,检查设备节点/dev/fb0是否存在,如果节点不存在,可以尝试修改树莓派系统/boot/config.txt文件, 添加hdmi_force_hotplug=1到文件的最后一行,重启树莓派再次登录
$sudo echo 'hdmi_force_hotplug=1' >> /boot/config.txt $sudo reboot
2.3、 创建工作目录,并进入
$mkdir ~/westudio $cd ~/westudio
3、拷贝Linux App文件(cloudmessage-linux-arm.tgz)到树莓派系统中,通过U盘或者scp命令拷贝。
3.1、方式一:通过U盘拷贝
- 在/mnt目录新建一个udisk目录
$mkdir -p /mnt/udisk
- 插入U盘,使用fdisk -l 命令查看U盘的设备路径,如 /dev/sda
$fdisk -l
- 挂载U盘
$mount /dev/sda /mnt/udisk
- 拷贝
$cp /mnt/udisk/cloudmessage-linux-arm.tgz ~/westudio
- 在/mnt目录新建一个udisk目录
3.2、方式二:通过scp命令拷贝
$ scp /c/demos/cloudmessage/build/cloudmessage-linux-arm.tgz pi@192.168.3.222:~/westudio
4、 解压Linux App文件(cloudmessage-linux-arm.tgz)
$cd ~/westudio
$tar zxf cloudmessage-linux-arm.tgz
5、 进入目录cloudmessage-linux-arm, 以root权限运行目录下的boot程序
$cd ~/westudio/cloudmessage-linux-arm
$sudo ./boot
这样我们的Linux App就运行起来了!
6、开机自动运行Linux App
6.1、在工作目录(/home/pi/westudio)新建一个脚本文件 start.sh
#!/bin/sh sleep 10 cd /home/pi/cloudmessage-linux-arm sudo ./boot
6.2、在/etc/rc.local中‘exit 0’前面添加一行脚本, /home/pi/westudio/start.sh
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi /home/pi/westudio/start.sh exit 0
7、查看实时日志
- 7.1、因为WeStudio调试器不支持第三方的硬件平台,如果要查看实时日志,可以进入Linux App解压目录下,运行log可执行文件来查看(注意:只有最新版本的WeStudio生成的Linux App才有该可执行文件)
$cd ~/cloudmessage-linux-arm $sudo ./log