当前位置: 首页 > news >正文

在全志 T113-S3 开发板上运行 AWTK

之前有些朋友在全志 TinaLinux 上运行AWTK,遇到一些问题,主要是输入设备的问题,虽然不是什么大问题,如果不太熟悉 AWTK,解决起来还是比较费劲的。最近买了一个板子,把整个流程跑了一下,把遇到的坑填了(需更新最新代码),这里做个笔记,希望对大家有些帮助。

1. 准备工作

如果某些步骤已经完成,请跳过。

1.1 安装 Ubuntu 22 虚拟机

1.2 安装 sshd 服务并启动

sudo apt-get install openssh-server
sudo systemctl start sshd

1.3 安装 awtk 需要的编译环境

sudo apt-get install gcc g++ scons libsndio-dev libgtk-3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libasound2-dev libibus-1.0-dev fcitx-libs-dev git vim clang-format libharfbuzz-dev nodejs libreadline-dev

1.4 安装交叉编译工具链

sudo apt-get install g++-arm-linux-gnueabi

1.5 下载 awtk/awtk-linux-fb 源码

  • 创建工作目录
mkdir -p ~/work/awtk-root
cd ~/work/awtk-root
  • 下载 awtk 源码
git clone https://github.com/zlgopen/awtk
  • 下载 awtk-linux-fb 源码
git clone https://github.com/zlgopen/awtk-linux-fb

2. 构建 rootfs

因为笔者用的 MacPro M2,上面安装的是 Ubuntu 22 虚拟机,由于是 arm64 的 CPU,官方的工具链运行不了,而 Ubuntu 上工具链编译的程序,在板子自带的系统上运行不了,所以只能自己编译 rootfs。
其它系统,如果不需要请跳过。

2.1 下载 busybox 源码

mkdir -p ~/work/awtk-root/rootfs
cd ~/work/awtk-root/rootfs
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
tar -xvf busybox-1.36.1.tar.bz2

2.2 编译 busybox

cd busybox-1.36.1
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm install CONFIG_PREFIX=~/work/awtk-root/rootfs/rootfs
  • 拷贝库文件
cd ~/work/awtk-root/rootfs/rootfs/
cp -arf /usr/arm-linux-gnueabi/lib .
rm -f lib/libasan.so.6* lib/*.a lib/*.o
  • 创建必要的文件和目录
mkdir -p proc dev sys var tmp run etc
  • 创建 etc/fstab 文件,其内容如下:
proc                 /proc                proc       defaults              0  0
sysfs                /sys                 sysfs       defaults             0   0
tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0
tmpfs                /tmp                 tmpfs      defaults              0  0
devtmpfs             /dev                 devtmpfs   defaults              0  0
  • 创建 rootfs 压缩文件包
cd ..
tar czf rootfs.tar.gz rootfs
  • 启动 http 服务

打开一个新的终端

~/work/awtk-root
python3 -m http.server 8080 --directory .

3. 编译 awtk-linux-fb

3.1 编译

cd ~/work/awtk-root/awtk-linux-fb
scons TOOLS_PREFIX=arm-linux-gnueabi-

3.2 生成压缩包

./release.sh
  • 创建设备配置文件:release/config/devices.json 其内容如下:
{"/dev/fb0" : { "type" : "fb"},  "/dev/input/event2" : { "type" : "input"}   
}
  • 重新生成压缩包
tar czf release.tar.gz release

4. 下载 rootfs.tar.gz 和 release.tar.gz 到开发板

4.1 启动网络

下列参数据实际情况修改

ifconfig eth0 192.168.8.139 netmask 255.255.255.0 up
route add default gw 192.168.8.1 eth0ifconfig
route -n

4.2 下载 rootfs.tar.gz

flash 比较小,这里下载到内存

  • 下载 rootfs.tar.gz
cd /tmp
wget http://192.168.8.242:8080/rootfs/rootfs.tar.gz
  • 解压 rootfs.tar.gz
tar xf rootfs.tar.gz
  • 挂载 rootfs
chroot rootfs
mount -a

4.3 下载 release.tar.gz

  • 下载 release.tar.gz
wget http://192.168.8.242:8080/awtk-linux-fb/release.tar.gz
  • 解压 release.tar.gz
tar xf release.tar.gz

5. 运行 awtk-linux-fb

cd release/
./bin/demoui 

如果一切正常,可以用触摸屏操作,切换语言到中文,会看到如下界面:

在这里插入图片描述


http://www.mrgr.cn/news/78876.html

相关文章:

  • 【java-Neo4j 5进阶篇】- 1.批量新增数据
  • 3. STM32_串口
  • 数学建模——Topsis法
  • 【RL Application】语义分割中的强化学习方法
  • Ubuntu Linux操作系统
  • Linux:进程间通信之system V
  • Rust : 生成日历管理markdown文件的小工具
  • 人体热释电传感器
  • 从最浅层剖析C语言————第六节(深入了解数组传参、嵌套调用以及链式访问)
  • 2024.12.2工作复盘
  • yolov10 获取误检,漏检
  • shell编程(4)脚本与用户交互以及if条件判断
  • 初识一维和二维数组
  • 编译器优化技术
  • AI-学习路线图-PyTorch
  • NuHertz/HFSS: 使用矩形、径向和阻抗短截线的平面 LPF 切比雪夫-II 实现
  • 公专业务能力
  • 【C语言】结构体(二)
  • Hot100 - 二叉树的中序遍历
  • 利用市场分析工具对特定国家的产品市场情况进行深入分析的全面指南
  • 无需U盘引导!快速在实体机上安装黑群晖 DSM 7.2(一步到位!黑群晖 DSM 7.2 内置硬盘引导安装教程)
  • Kafka-Connect自带示例
  • Maven学习
  • 力扣题解14——最长公共前缀
  • ThinkPHP Nginx 重写配置
  • 【老白学 Java】抽象类和抽象方法