折腾全志T113-s3 Tina Linux

编译

第一次编译

进入文件夹talowe-t113-linux-sdk然后运行./build.sh

解压Buildroot rootfs

在运行过一遍./build.sh后,将我编译的Mplayer1.5,以及测试视频,Qt5.12.6等等覆盖到默认的Buildroot下面,这样省得再重复上述操作重新编译一遍了.具体编译Qt和Mplayer的方法见后面

tar -xzf ~/target.tar.gz -C /home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot

运行完成后重新运行

./build.sh rootfs
./build.sh pack

out/pack下面就能看到打包好的img文件

如何烧录打包的emmc

打开PheonixSuit,选择要烧录的img,然后usb连接开发板,先安卓emmc按钮,然后再按rst按钮(然后马上松开),然后观察PheonixSuit软件,如果看到左下角红色字显示Begin XXXX则立刻松开emmc按钮,如果不松开则烧录不了emmc(原理是这个按键拉低了emmc 的D2脚)
烧录完成后T113s3会自动重启加载固件
此时使用MobaXterm打开串口,串口连接至板子的UART3(杜邦线3Pin处)就能看到内核启动日志及其他信息,或者使用adb shell命令进入终端

目标dts与配置

SDK/evb1_auto/.BoardConfig.mk可知

export DTS_NAME=talowe-t113-s3
export UBOOT_DTS_NAME=talowe-t113-s3-uboot

用的是kernel/arch/arm/boot/dts/talowe-t113-s3.dts
kernel的defconfig请见SDK根目录下的.buildconfig
可见

export LICHEE_KERN_DEFCONF_ABSOLUTE=/home/talowe/talowe-t113-linux-sdk/kernel/linux-5.4/arch/arm/configs/sun8iw20p1smp_t113_auto_defconfig

直接修改kernel下面的dts还有defconfig,不需要删除out下面的任何东西然后重新./build.sh然后./build.sh pack然后用Phoenix Suit烧录就行
记得更新rootfs里面的modules,具体在pack前面运行./build.sh rootfs

fex

fex是t113_auto下面的sys_config.fex

如果打包报错怎么办

删除out下面的pack_out
然后重新按照 ./build.sh kernel, ./build.sh rootfs, ./build.sh pack的顺序打包或者直接删除out重新·./build.sh(如果你不想保留buildroot rootfs里面放的东西)

编译Mplayer-1.5

./configure --cc=arm-linux-gnueabi-gcc --enable-cross-compile --strip=arm-linux-gnueabi-strip --target=arm-linux --enable-alsa --enable-fbdev --prefix=/home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/target/usr --extra-ldflags=--sysroot=/home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot --extra-cflags=-I/home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include

编译Qt 5.12.6

1.下载源码
2.编译脚本

export PATH="$PATH:"

mk.sh(不需要prefix,默认安装到sysroot/usr/local/Qt5.12.6):

#!/bin/sh
export PATH="$PATH:/home/talowe/talowe-t113-linux-sdk/out/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi/bin"
./configure \
-release \
-opensource \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtlocation \
-skip qttools \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-iconv \
-no-separate-debug-info \
-no-fontconfig \
-tslib \
-I /home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/include \
-L /home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib \
-sysroot /home/talowe/talowe-t113-linux-sdk/out/t113/evb1_auto/longan/buildroot/host/arm-buildroot-linux-gnueabi/sysroot \
-recheck-all \
-make examples

记得把sysroot里面的/usr/include/vulkan文件夹重命名成别的否则会编译一坨vulkan的玩意然后卡报错
编译完成后把sysroot/usr/local/Qt*拷贝到target/usr/local
运行Qt程序前设置环境变量(fb0/fb1):

export QT_PLUGIN_PATH=/usr/local/Qt-5.12.6/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export LD_LIBRARY_PATH=/usr/local/Qt-5.12.6/lib

参考:在全志V853开发板试编译QT测试

添加CST816X驱动以及环境变量

驱动:尚未合并主线
input: add driver for Hynitron CST816X touchscreen

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event5

此处event5和event6为屏幕驱动事件.
更多参数:How to configure Qt to use tslib instead of evdev?

增加可用字体

mkdir /usr/local/Qt-5.12.6/lib/fonts

dejavu的所有ttf文件放到该目录下.

开发

参考 linux下如何利用QtCreator编译ARM版本的Qt程序

播放视频

mplayer -vo fbdev2:/dev/fb1 -ao alsa:device=hw=1.0 -fps 30 maimai240.mp4
mplayer -vo fbdev2:/dev/fb0 -vf scale=360:212 -geometry 0:77 -ao alsa:device=hw=1.0 -fps 30 ba_360x212_30fps.mp4

TSlib 测试

首先设定要测试的input设备.

export TSLIB_TSDEVICE=/dev/input/event5

然后

ts_print

关于CST816X的问题

这个屏幕貌似没有压力检测,所以tslib的pthres没有作用,要么上报0要么上报255(可以通过运行ts_print观察第三个参数)所以这个在屏幕上点击按钮需要长一点时间

关于wlan0有时候没检测到怎么办?

参考How to turn USB-connected device on and off in linux?
也许有用,没试过,多数情况是kernel module和rootfs没更新导致驱动没加载

使用Mplayer播放MaiMai

mplayer -vo fbdev2:/dev/fb1 -ao alsa:device=hw=1.0 maimai240.mp4

录音

使用arecord,声卡是hw0, 由于只有单声道所以-c1

arecord -d 10 -f S16_LE -c1 -r44100 -t wav -D "hw:0,0" test.wav

上网

vim /etc/wpa_supplicant.con

输入密码和SSID
然后

wpa_supplicant -i wlan0 -B -c /etc/wpa_supplicant.conf

最后观察ip

ip addr

RIGOL DHO802/DHO804/DHO812/DHO814 示波器 东方启动

1.联网

插网线到电脑(或者路由器都可以,我直接直连PC,PC当NAT)
参考用Windows通过网线共享网络给其他电脑(Windows、Ubuntu)

2.下载桌面(Android 7.1.2 com.android.launcher3)

Launcher3 of AOSP 7.1.2.apk

3. 用adb 连接示波器并且install apk并启动桌面

连接

adb connect 192.168.137.35:55555

下载完apk后安装launcher3

adb install launcher3.apk

启动设置(可以把桌面设成launcher3),在触摸屏里面手动设置

adb shell monkey -p com.android.settings -c android.intent.category.LAUNCHER 1

启动Launcher3的activity

adb shell am start -n com.android.launcher3/com.android.launcher3.Launcher

然后就ok了

4.安装手势MyGesture(策划返回等等)

MyGesture - 全面屏手势/导航手势操作扩展
根据提示设置权限,然后在设置的无障碍里面开启这个服务.