您尚未登录。

楼主 # 2023-04-22 09:25:57

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

t113-s3的tina linux如何配置及编译sdk自带的qt?

勾选了qt-core、qt-widgets,然后编译,结果报错

make[3]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/package/libs/libgpu'
Makefile:80: /fbdev/include
rm -rf /home/any/MPU/AllWinner/T113-s3/Tina-Linux/tmp/stage-libgpu
mkdir -p /home/any/MPU/AllWinner/T113-s3/Tina-Linux/tmp/stage-libgpu/host /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/packages /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/host/packages
mkdir -p /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/libgpu/ipkg-install
install -d -m0755 /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/libgpu/ipkg-install/usr/lib
cp -fpR -uvd /fbdev/"musl"/lib/* /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/libgpu/ipkg-install/usr/lib
cp: cannot stat '/fbdev/musl/lib/*': No such file or directory

编译libgpu库时找不到/fbdev/musl/lib目录。
热心群友回复说sdk自带的qt是配置了gpu渲染的,t113-s3不可用。只能单独下载qt再编译。
去make menuconfig里看了,确实勾选了libgpu,且不可取消状态。我试着取消其他qt勾选,只保留qt-core勾选,发现library选项下的gpu libraray就取消勾选状态了,但是我再make,还是报上边的错误,还是会编译libgpu。

离线

楼主 #1 2023-04-26 14:58:46

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

记录一下,群友Extraterrestrial提供了一个qt的makefile,替换掉tina linux的packages/gui/qt/qt5目录下的makefile即可。
对比了下,主要是屏蔽掉了gpu相关的一些部分。
另,无论这个makefile还是旧的自带的makefile,编译时都会从网上下载qt源码,但会失败。看了下,qt提供下载的地址里的文件变了。现在文件名中不带opensource这个词了。
尝试修改makefile中下载地址中的文件名,去掉opensource,目录变量也去掉opensource。还有文件的md5,也改成下载网址提供的。
再make,倒是很快能下载,但是解压目录到了不带opensource的目录,继续编译,等了很久,报了些错误。没解决得了,就想可能还需要改回默认文件明,就重新命名了下载得到的压缩文件,结果不行。于是编辑压缩文件里的目录名才解决。

网友提供的makefile里,有make -j32,结果造成编译过程中我电脑总是失去响应。我后来改成了-j4。
继续make,遇到几个和std::limits相关的报错,搜了下,可能是编译器过新,可能把个什么的默认包含去掉了。找到报错文件,手动加入#include <limits>解决,总共4个文件。

对了,还有个nss啥的,我去makefile里找到那一行,屏蔽了那两个库。

终于编译完了,结果发现根目录下没有libqt*.so。热心的群友又解释说,openwrt make menuconfig里有个strip选项,默认时strip,其他还有no strip和sstrip。选strip时貌似会把不用的库优化掉。试了改成no strip,结果再次编译还是一样的结果。后来又提醒我勾选个qt程序试试,make menuconfig的gui/qt5目录下有三个演示程序,选了个qt-easing。再次编译,根文件系统里终于有了qt库了。

T113_gui_qt5_Makefile.zip

其实aw-ol论坛里还有个朋友提供的qt补丁,不过是好几个文件,我就没用那个。

最近编辑记录 Gentlepig (2023-04-26 15:20:35)

离线

楼主 #2 2023-04-26 15:11:21

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

在此记录下遇到的其他问题吧。
参考mango的mq_r板子修改画的,调试口是uart3。下载下来的tina linux默认条是口还是uart1。修改了board.dts,sysconfig.fex,结果串口3还是无输出。经群友提醒,还需要修改env.cfg里的console以及earlyprintk,尤其是后者,需要根据寄存器地址修改。

离线

楼主 #3 2023-04-26 15:15:43

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

can部分,参考https://debugdump.com/topic/1926/t113-s3-can-linux-%E4%B8%8B%E5%B7%B2%E8%B0%83%E9%80%9A?lang=zh-CN

结果编译过程中报错找不到几个函数的定义,发现明明包含了对应的头文件了。
群友admin指点,说kconfig里新增的内容,不该放在can部分的总目录下,放到了那个if条件里,再编译就可以了。
另mangos的sdk里,自带了个sunxi_can.c,但是选这个的话会报错找不到 #include <sunxi_can_asm.h>这个头文件。虽然同目录下有个sunxi_can_asm.s,但是不知道怎么用。最后还是换回了sun4i_can.c。

离线

楼主 #4 2023-04-26 15:28:24

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

我板子上焊接的是spi nand,没用ft卡。
spi的cs、miso都有10k上拉电阻,mosi是有10k下拉电阻,且留了个直接对地短路的地方。

一开始用win下的phonixsuit,还挺顺利的。后来想在ubuntu下烧录,就下载了sunxi-fel,最后发现现在的版本不能直接向spi nand烧录。发现xfel可以,就用sudo xfel spinand earse,然后再sudo xfel spinand write 0 xxx.img。发现可以擦除,也可以烧写,再读出来,貌似和写进去的一致。但是烧写完后,板子还是处于fel状态,再次复位或重新上电,板子仍是fel状态。
这和win下phonixsuit烧录可不一样,当时我烧录完就自动重启进正常状态了。
让我怀疑是不是不该烧录到0地址?
我尝试手动将mosi管脚拉到3.3V,结果仍不行。暂时没找到好的办法,每次都是转到win下烧录。

------------------------------------------------

用xfel spinand命令将xxx.img文件烧录到spi nand,读出来后和源文件一样。
用phonixsuit将相同的xxx.img文件烧录到spi nand,系统可以启动。然后用xfel将spinand的内容读出来,竟然和原文件完全不一样,除了大小一样外。

最近编辑记录 Gentlepig (2023-04-26 17:32:19)

离线

楼主 #7 2023-04-27 08:45:59

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

ubuntu下交叉编译我是用qmake创建工程,没用qt creator,也不知道怎么配置...

离线

楼主 #9 2023-04-28 11:48:03

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

看到win下phonixsuit烧录时,是先输出这些信息:

[612]fes begin commit:adaf1174cc
[615]set pll start
[621]periph0 has been enabled
[624]set pll end
[626][pmu]: bus read error
[628]board init ok
[630]beign to init dram
[632]ZQ value = 0x2f
[634]get_pmu_exist() = -1
[637]ddr_efuse_type: 0xa
[639]trefi:7.8ms
[642][AUTO DEBUG] single rank and full DQ!
[646]ddr_efuse_type: 0xa
[648]trefi:7.8ms
[650][AUTO DEBUG] rank 0 row = 13
[653][AUTO DEBUG] rank 0 bank = 8
[657][AUTO DEBUG] rank 0 page size = 2 KB
[661]DRAM BOOT DRIVE INFO: V0.33
[664]DRAM CLK = 936 MHz
[666]DRAM Type = 3 (2:DDR2,3:DDR3)
[669]DRAMC read ODT  off.
[672]DRAM ODT value: 0x42.
[674]ddr_efuse_type: 0xa
[677]DRAM SIZE =128 M
[679]dram_tpr4:0x0
[681]PLL_DDR_CTRL_REG:0xf8004d00
[684]DRAM_CLK_REG:0xc0000000
[687][TIMING DEBUG] MR2= 0x20
[691]DRAM simple test OK.
[693]rtc standby flag is 0x0, super standby flag is 0x0
[698]init dram ok

离线

楼主 #11 2023-05-04 14:52:08

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

按awol论坛的帖子,修改设备树,启用can功能。
然后发现ip命令无法设置can,搜了下,说是需要iproute2,但是总是不成功,package目录下的iproute2目录始终没有编译进去。
经群友提醒,勾选了ip-full后,iproute2顺利编译了。
另,busybox相关设置里有两套ip选项,也不清楚是为什么。

离线

楼主 #13 2023-05-10 08:58:04

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

现在尝试qmake交叉编译个qt程序,才发现qmake报错。
搜索目录下的qmake,发现如下几个:

$ find ../../ -name qmake
../../Tina-Linux/out/t113-mq_r/staging_dir/target/host/bin/qmake
../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/bin/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/ipkg-install/usr/bin/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/examples/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/qmake/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/qmake/doc/snippets/qmake
../../Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/tests/auto/tools/qmake

使用 ../../Tina-Linux/out/t113-mq_r/staging_dir/target/host/bin/qmake 这个时报错:

$ qmake-t113-qt5 -project -o t113
/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/mkspecs/features/resolve_config.prf:25: 'addExclusiveBuilds' is not a recognized test function.
/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/mkspecs/features/resolve_config.prf:37: 'addExclusiveBuilds' is not a recognized test function.

使用 ../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/bin/qmake 时报错:

$ qmake-t113-qt5 -project -o t113
Could not find qmake spec 'linux-openwrt-g++'.
Cannot find feature default_pre.prf
Cannot find feature default_post.prf

--------------------------------------------------------

使用host/bin/qmake报错会找不到几个文件,但是在usr/目录下能找到。
于是就用usr/bin/qmake,然后忽略2个报错,因为可以生成.pro文件及makefile文件。但是make时又报错:

[2] 15916
c -std=gnu++11 -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I../../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include -I../../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/QtGui -I../../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/QtCore -I. -I../../../Tina-Linux/out/t113-mq_r/staging_dir/target/usr/mkspecs/linux-openwrt-g++ -o main.o ../main.cpp
make: c: 没有那个文件或目录
make: [Makefile:500:main.o] 错误 127 (已忽略)
Wl,-rpath,/usr/lib -o t113 main.o   /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/libQt5Gui.so /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/libQt5Core.so -lpthread   
make: Wl,-rpath,/usr/lib: 没有那个文件或目录
make: [Makefile:192:t113] 错误 127 (已忽略)
[2]+  已完成               $T/tools/build/buildserver --path $T 2> /dev/null 1>&2

#### make completed successfully (1 seconds) ####

-------------------------------

打开Makefile,发现CC为空。

MAKEFILE      = Makefile
  1 
  2 EQ            = =
  3 
  4 ####### Compiler, tools and options
  5 
  6 CC            = 
  7 CXX           = 
  8 DEFINES       = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
  9 CFLAGS        = -D_REENTRANT -fPIC $(DEFINES)
 10 CXXFLAGS      = -std=gnu++11 -D_REENTRANT -fPIC $(DEFINES)
 11 INCPATH       = -I. -I. -I../../../out/t113-mq_r/staging_dir/target/usr/include -I../../../out/t113-mq_r/staging_dir/target/usr/incl
 12 QMAKE         = /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/bin/qmake
 13 DEL_FILE      = rm -f
 14 CHK_DIR_EXISTS= test -d
 15 MKDIR         = mkdir -p
 16 COPY          = cp -f
 17 COPY_FILE     = cp -f
 18 COPY_DIR      = cp -f -R

最近编辑记录 Gentlepig (2023-05-10 10:56:35)

离线

楼主 #14 2023-05-10 17:15:22

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

尝试单独编译qt源码,网上教程挺多,仍用qt5.12.9。解压后,修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf。
将里面的QMAKE_CC等修改为arm-openwrt-linux-gcc,因为sdk里交叉编译器名字就是这个,并且将交叉编译器路径加到PATH路径里了。

     AKEFILE_GENERATOR      = UNIX                                                                       │  qmake.conf                  
  1 CONFIG                 += incremental                                                                │  qplatformdefs.h
  2 QMAKE_INCREMENTAL_STYLE = sublib                                                                     │~                             
  3                                                                                                      │~                             
  4 include(../common/linux.conf)                                                                        │~                             
  5 include(../common/gcc-base-unix.conf)                                                                │~                             
  6 include(../common/g++-unix.conf)                                                                     │~                             
  7                                                                                                      │~                             
  8 # modifications to g++.conf                                                                          │~                             
  9 QMAKE_CC                = arm-openwrt-linux-gcc                                                      │~                             
 10 QMAKE_CXX               = arm-openwrt-linux-g++                                                      │~                             
 11 QMAKE_LINK              = arm-openwrt-linux-g++                                                      │~                             
 12 QMAKE_LINK_SHLIB        = arm-openwrt-linux-g++                                                      │~                             
 13                                                                                                      │~                             
 14 # modifications to linux.conf                                                                        │~                             
 15 QMAKE_AR                = arm-openwrt-linux-ar cqs                                                   │~                             
 16 QMAKE_OBJCOPY           = arm-openwrt-linux-objcopy                                                  │~                             
 17 QMAKE_NM                = arm-openwrt-linux-nm -P                                                    │~                             
 18 QMAKE_STRIP             = arm-openwrt-linux-strip                                                    │~                             
 19 load(qt_config)  

然找参考网上的autoConfigure.sh,然后执行source ./autoCoonfigure.sh。
结果却报错:

$ source ./autoConfigure.sh
+ cd qtbase
+ /home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtbase/configure -top-level -prefix ./t113-qt -opensource -confirm-license -release -strip -shared -xplatform linux-openwrt-g++  
Creating qmake...
.Done.
ERROR: Invalid command line parameter ' '.
-optimized-qmake:未找到命令

autoConfigure.sh内容如下:

#export PATH=$PATH:/home/any/MPU/AllWinner/T113-s3/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/
./configure -prefix ./t113-qt \
        -opensource \
        -confirm-license \
        -release \
        -strip \
        -shared \
        -xplatform linux-arm-gnueabi-g++ \      
        -optimized-qmake \
        -c++std c++11 \
        --rpath=no \
        -pch \
        -skip qt3d \
        -skip qtactiveqt \
        -skip qtandroidextras \
        -skip qtcanvas3d \
        -skip qtconnectivity \
        -skip qtdatavis3d \
        -skip qtdoc \
        -skip qtgamepad \
        -skip qtlocation \
        -skip qtmacextras \
        -skip qtnetworkauth \
        -skip qtpurchasing \
        -skip qtremoteobjects \
        -skip qtscript \
        -skip qtscxml \
        -skip qtsensors \
        -skip qtspeech \
        -skip qtsvg \
        -skip qttools \
        -skip qttranslations \
        -skip qtwayland \
        -skip qtwebengine \
        -skip qtwebview \
        -skip qtwinextras \
        -skip qtx11extras \
        -skip qtxmlpatterns \
        -make libs \
        -make examples \
        -nomake tools -nomake tests \
        -gui \
        -widgets \
        -dbus-runtime \
        --glib=no \
        --iconv=no \
        --pcre=qt \
        --zlib=qt \
        -no-openssl \
        --freetype=qt \
        --harfbuzz=qt \
        -no-opengl \
        -linuxfb \
        --xcb=no \
        -tslib \
        --libpng=qt \
        --libjpeg=qt \
        --sqlite=qt \
        -plugin-sql-sqlite \
        -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/ \
        -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/allwinner/ \
        -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include//allwinner/include/ \
        -L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/ \
        -recheck-all                          

--------------------------------------------

确定是qmake.conf里这句出了问题。
        -xplatform linux-arm-gnueabi-g++ \
但还不知道原因。

最近编辑记录 Gentlepig (2023-05-10 17:47:15)

离线

楼主 #17 2023-05-11 08:53:18

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

jetchenxg2021 说:

@Gentlepig
Tina下编译的qt库,最后应用可以跑起来么?

编译完qt后看到根文件里有libQt5相关库就没再继续了,当时板子上也缺元件没有接屏幕。
前天想尝试用qt编译个hello,world,结果才发现交叉编译过不去...

----------------------------

在这里做个记录吧。
基于D1s的QT5移植
这个帖子里有补丁文件可编译tina sdk自带的qt.

最近编辑记录 Gentlepig (2023-05-11 11:27:44)

离线

楼主 #18 2023-05-11 09:37:06

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

@10*****231

感谢,我对比了下autoconfigure.sh,发现了问题。
        -xplatform linux-arm-gnueabi-g++ \     
这句后面多了几个空格,应该是反斜杠后面不能跟任何字符,否则按新的命令处理了。

        -xplatform linux-arm-gnueabi-g++ \      

--------------------------------------------------

另,为什么autoconfigure.sh里需要配置STAGING_DIR这个环境变量,而且配置的是交叉编译器的路径?不是有个staging_dir目录么?不明白这个环境变量是干什么用的?

--------------------------------------------------

哈,看到了,帖子后面将到遇到报错后,又配置了一遍STAGING_DIR这个环境变量。

最近编辑记录 Gentlepig (2023-05-11 10:00:39)

离线

楼主 #19 2023-05-11 10:58:49

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

@10*****231

编译通过了,写了个简单的helloworld,可以通过编译。下载到板子上,可以运行。
不过我板子上还是用之前sdk自带qt编译的库。

离线

楼主 #21 2023-05-12 17:03:16

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

我又重新编译了sdk自带的qt,结果通不过编译了,尴尬。

make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtconnectivity/examples/nfc/corkboard'
make[7]: Nothing to be done for 'first'.
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtconnectivity/examples/nfc/corkboard'
make[6]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtconnectivity/examples/nfc'
make[5]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtconnectivity/examples'
make[4]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtconnectivity'
arm-openwrt-linux-muslgnueabi-g++ -c -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -Wno-unused-result -mfloat-abi=hard -Wformat -Werror=format-security -fPIC -fstack-protector -D_FORTIFY_SOURCE=2 -Wl,-z,now -Wl,-z,relro -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/freetype2 -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/include  -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../include/QtMultimedia/5.12.9 -I../../../include/QtMultimedia/5.12.9/QtMultimedia -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtGui/5.12.9 -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtGui/5.12.9/QtGui -I../../../include -I../../../include/QtMultimedia -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtGui -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtCore/5.12.9 -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtCore/5.12.9/QtCore -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtNetwork -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/include/QtCore -I.moc -isystem /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include -isystem /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/dbus-1.0 -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/dbus-1.0/include -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/include\ -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/mkspecs/linux-openwrt-g++ -o .obj/qalsaaudiodeviceinfo.o qalsaaudiodeviceinfo.cpp
make[8]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlsensorgestures'
make[8]: Nothing to be done for 'first'.
make[8]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlsensorgestures'
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlsensorgestures'
cd qmlqtsensors/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlqtsensors/qmlqtsensors.pro ) && make -f Makefile 
make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtxmlpatterns/examples/xmlpatterns/schema'
make[7]: Nothing to be done for 'first'.
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtxmlpatterns/examples/xmlpatterns/schema'
make[6]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtxmlpatterns/examples/xmlpatterns'
make[5]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtxmlpatterns/examples'
make[4]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtxmlpatterns'
cd qttools/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/qttools.pro ) && make -f Makefile 
make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlqtsensors'
make[7]: Nothing to be done for 'first'.
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/qmlqtsensors'
cd sensor_explorer/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer/sensor_explorer.pro ) && make -f Makefile 
make[4]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools'
cd src/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/src.pro ) && make -f Makefile 
make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer'
cd import/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer/import/import.pro ) && make -f Makefile 
make[5]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src'
cd assistant/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant/assistant.pro ) && make -f Makefile 
make[8]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer/import'
make[8]: Nothing to be done for 'first'.
make[8]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer/import'
( test -e Makefile.qml || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile.qml /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer/qml.pro ) && make -f Makefile.qml 
make[6]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant'
cd help/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant/help/help.pro ) && make -f Makefile 
In file included from qalsaplugin.cpp:41:0:
qalsaaudiodeviceinfo.h:113:5: error: 'snd_pcm_t' does not name a type
     snd_pcm_t* handle;
     ^~~~~~~~~
qalsaaudiodeviceinfo.h:114:5: error: 'snd_pcm_hw_params_t' does not name a type
     snd_pcm_hw_params_t *params;
     ^~~~~~~~~~~~~~~~~~~
In file included from qalsaplugin.cpp:42:0:
qalsaaudioinput.h:127:5: error: 'snd_pcm_t' does not name a type
     snd_pcm_t* handle;
     ^~~~~~~~~
qalsaaudioinput.h:159:5: error: 'snd_pcm_uframes_t' does not name a type
     snd_pcm_uframes_t buffer_frames;
     ^~~~~~~~~~~~~~~~~
qalsaaudioinput.h:160:5: error: 'snd_pcm_uframes_t' does not name a type
     snd_pcm_uframes_t period_frames;
     ^~~~~~~~~~~~~~~~~
qalsaaudioinput.h:161:5: error: 'snd_pcm_access_t' does not name a type
     snd_pcm_access_t access;
     ^~~~~~~~~~~~~~~~
qalsaaudioinput.h:162:5: error: 'snd_pcm_format_t' does not name a type
     snd_pcm_format_t pcmformat;
     ^~~~~~~~~~~~~~~~
qalsaaudioinput.h:163:5: error: 'snd_pcm_hw_params_t' does not name a type
     snd_pcm_hw_params_t *hwparams;
     ^~~~~~~~~~~~~~~~~~~
In file included from qalsaplugin.cpp:43:0:
qalsaaudiooutput.h:124:5: error: 'snd_pcm_uframes_t' does not name a type
     snd_pcm_uframes_t buffer_frames;
     ^~~~~~~~~~~~~~~~~
qalsaaudiooutput.h:125:5: error: 'snd_pcm_uframes_t' does not name a type
     snd_pcm_uframes_t period_frames;
     ^~~~~~~~~~~~~~~~~
qalsaaudiooutput.h:139:5: error: 'snd_pcm_t' does not name a type
     snd_pcm_t* handle;
     ^~~~~~~~~
qalsaaudiooutput.h:140:5: error: 'snd_pcm_access_t' does not name a type
     snd_pcm_access_t access;
     ^~~~~~~~~~~~~~~~
qalsaaudiooutput.h:141:5: error: 'snd_pcm_format_t' does not name a type
     snd_pcm_format_t pcmformat;
     ^~~~~~~~~~~~~~~~
qalsaaudiooutput.h:142:5: error: 'snd_pcm_hw_params_t' does not name a type
     snd_pcm_hw_params_t *hwparams;
     ^~~~~~~~~~~~~~~~~~~
make[8]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer'
make[8]: Nothing to be done for 'first'.
make[8]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer'
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/sensor_explorer'
cd shakeit/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/shakeit/shakeit.pro ) && make -f Makefile 
In file included from qalsaaudiodeviceinfo.cpp:51:0:
qalsaaudiodeviceinfo.h:113:5: error: 'snd_pcm_t' does not name a type
     snd_pcm_t* handle;
     ^~~~~~~~~
qalsaaudiodeviceinfo.h:114:5: error: 'snd_pcm_hw_params_t' does not name a type
     snd_pcm_hw_params_t *params;
     ^~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp: In constructor 'QAlsaAudioDeviceInfo::QAlsaAudioDeviceInfo(QByteArray, QAudio::Mode)':
qalsaaudiodeviceinfo.cpp:59:5: error: 'handle' was not declared in this scope
     handle = 0;
     ^~~~~~
qalsaaudiodeviceinfo.cpp: In member function 'bool QAlsaAudioDeviceInfo::open()':
qalsaaudiodeviceinfo.cpp:168:28: error: 'handle' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_PLAYBACK,0);
                            ^~~~~~
qalsaaudiodeviceinfo.cpp:168:65: error: 'SND_PCM_STREAM_PLAYBACK' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_PLAYBACK,0);
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:168:90: error: 'snd_pcm_open' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_PLAYBACK,0);
                                                                                          ^
qalsaaudiodeviceinfo.cpp:170:28: error: 'handle' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_CAPTURE,0);
                            ^~~~~~
qalsaaudiodeviceinfo.cpp:170:65: error: 'SND_PCM_STREAM_CAPTURE' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_CAPTURE,0);
                                                                 ^~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:170:89: error: 'snd_pcm_open' was not declared in this scope
         err=snd_pcm_open( &handle,dev.toLocal8Bit().constData(),SND_PCM_STREAM_CAPTURE,0);
                                                                                         ^
qalsaaudiodeviceinfo.cpp:173:9: error: 'handle' was not declared in this scope
         handle = 0;
         ^~~~~~
qalsaaudiodeviceinfo.cpp: In member function 'void QAlsaAudioDeviceInfo::close()':
qalsaaudiodeviceinfo.cpp:181:8: error: 'handle' was not declared in this scope
     if(handle)
        ^~~~~~
qalsaaudiodeviceinfo.cpp:182:29: error: 'snd_pcm_close' was not declared in this scope
         snd_pcm_close(handle);
                             ^
qalsaaudiodeviceinfo.cpp:183:5: error: 'handle' was not declared in this scope
     handle = 0;
     ^~~~~~
qalsaaudiodeviceinfo.cpp: In member function 'bool QAlsaAudioDeviceInfo::testSettings(const QAudioFormat&) const':
qalsaaudiodeviceinfo.cpp:191:5: error: 'snd_pcm_t' was not declared in this scope
     snd_pcm_t* pcmHandle;
     ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:191:16: error: 'pcmHandle' was not declared in this scope
     snd_pcm_t* pcmHandle;
                ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:192:5: error: 'snd_pcm_hw_params_t' was not declared in this scope
     snd_pcm_hw_params_t *params;
     ^~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:192:26: error: 'params' was not declared in this scope
     snd_pcm_hw_params_t *params;
                          ^~~~~~
qalsaaudiodeviceinfo.cpp:202:5: error: 'snd_pcm_stream_t' was not declared in this scope
     snd_pcm_stream_t stream = mode == QAudio::AudioOutput
     ^~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:205:65: error: 'stream' was not declared in this scope
     if (snd_pcm_open(&pcmHandle, dev.toLocal8Bit().constData(), stream, 0) < 0)
                                                                 ^~~~~~
qalsaaudiodeviceinfo.cpp:205:74: error: 'snd_pcm_open' was not declared in this scope
     if (snd_pcm_open(&pcmHandle, dev.toLocal8Bit().constData(), stream, 0) < 0)
                                                                          ^
qalsaaudiodeviceinfo.cpp:208:34: error: 'snd_pcm_nonblock' was not declared in this scope
     snd_pcm_nonblock(pcmHandle, 0);
                                  ^
qalsaaudiodeviceinfo.cpp:209:37: error: 'snd_pcm_hw_params_alloca' was not declared in this scope
     snd_pcm_hw_params_alloca(&params);
                                     ^
qalsaaudiodeviceinfo.cpp:210:44: error: 'snd_pcm_hw_params_any' was not declared in this scope
     snd_pcm_hw_params_any(pcmHandle, params);
                                            ^
qalsaaudiodeviceinfo.cpp:213:76: error: 'snd_pcm_hw_params_set_channels' was not declared in this scope
     snd_pcm_hw_params_set_channels(pcmHandle, params, format.channelCount());
                                                                            ^
qalsaaudiodeviceinfo.cpp:214:73: error: 'snd_pcm_hw_params_set_rate' was not declared in this scope
     snd_pcm_hw_params_set_rate(pcmHandle, params, format.sampleRate(), 0);
                                                                         ^
qalsaaudiodeviceinfo.cpp:216:5: error: 'snd_pcm_format_t' was not declared in this scope
     snd_pcm_format_t pcmFormat = SND_PCM_FORMAT_UNKNOWN;
     ^~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:220:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = SND_PCM_FORMAT_S8;
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:220:25: error: 'SND_PCM_FORMAT_S8' was not declared in this scope
             pcmFormat = SND_PCM_FORMAT_S8;
                         ^~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:222:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = SND_PCM_FORMAT_U8;
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:222:25: error: 'SND_PCM_FORMAT_U8' was not declared in this scope
             pcmFormat = SND_PCM_FORMAT_U8;
                         ^~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:226:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = format.byteOrder() == QAudioFormat::LittleEndian
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:227:25: error: 'SND_PCM_FORMAT_S16_LE' was not declared in this scope
                       ? SND_PCM_FORMAT_S16_LE : SND_PCM_FORMAT_S16_BE;
                         ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:227:49: error: 'SND_PCM_FORMAT_S16_BE' was not declared in this scope
                       ? SND_PCM_FORMAT_S16_LE : SND_PCM_FORMAT_S16_BE;
                                                 ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:229:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = format.byteOrder() == QAudioFormat::LittleEndian
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:230:25: error: 'SND_PCM_FORMAT_U16_LE' was not declared in this scope
                       ? SND_PCM_FORMAT_U16_LE : SND_PCM_FORMAT_U16_BE;
                         ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:230:49: error: 'SND_PCM_FORMAT_U16_BE' was not declared in this scope
                       ? SND_PCM_FORMAT_U16_LE : SND_PCM_FORMAT_U16_BE;
                                                 ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:235:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = format.byteOrder() == QAudioFormat::LittleEndian
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:236:25: error: 'SND_PCM_FORMAT_S32_LE' was not declared in this scope
                       ? SND_PCM_FORMAT_S32_LE : SND_PCM_FORMAT_S32_BE;
                         ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:236:49: error: 'SND_PCM_FORMAT_S32_BE' was not declared in this scope
                       ? SND_PCM_FORMAT_S32_LE : SND_PCM_FORMAT_S32_BE;
                                                 ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:238:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = format.byteOrder() == QAudioFormat::LittleEndian
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:239:25: error: 'SND_PCM_FORMAT_U32_LE' was not declared in this scope
                       ? SND_PCM_FORMAT_U32_LE : SND_PCM_FORMAT_U32_BE;
                         ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:239:49: error: 'SND_PCM_FORMAT_U32_BE' was not declared in this scope
                       ? SND_PCM_FORMAT_U32_LE : SND_PCM_FORMAT_U32_BE;
                                                 ^~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:241:13: error: 'pcmFormat' was not declared in this scope
             pcmFormat = format.byteOrder() == QAudioFormat::LittleEndian
             ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:242:25: error: 'SND_PCM_FORMAT_FLOAT_LE' was not declared in this scope
                       ? SND_PCM_FORMAT_FLOAT_LE : SND_PCM_FORMAT_FLOAT_BE;
                         ^~~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:242:51: error: 'SND_PCM_FORMAT_FLOAT_BE' was not declared in this scope
                       ? SND_PCM_FORMAT_FLOAT_LE : SND_PCM_FORMAT_FLOAT_BE;
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:246:9: error: 'pcmFormat' was not declared in this scope
     if (pcmFormat != SND_PCM_FORMAT_UNKNOWN)
         ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:246:22: error: 'SND_PCM_FORMAT_UNKNOWN' was not declared in this scope
     if (pcmFormat != SND_PCM_FORMAT_UNKNOWN)
                      ^~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:247:72: error: 'snd_pcm_hw_params_set_format' was not declared in this scope
         err = snd_pcm_hw_params_set_format(pcmHandle, params, pcmFormat);
                                                                        ^
qalsaaudiodeviceinfo.cpp:254:87: error: 'snd_pcm_hw_params_test_channels' was not declared in this scope
         err = snd_pcm_hw_params_test_channels(pcmHandle, params, format.channelCount());
                                                                                       ^
qalsaaudiodeviceinfo.cpp:260:84: error: 'snd_pcm_hw_params_test_rate' was not declared in this scope
         err = snd_pcm_hw_params_test_rate(pcmHandle, params, format.sampleRate(), 0);
                                                                                    ^
qalsaaudiodeviceinfo.cpp:265:21: error: 'pcmFormat' was not declared in this scope
     if (err >= 0 && pcmFormat != SND_PCM_FORMAT_UNKNOWN)
                     ^~~~~~~~~
qalsaaudiodeviceinfo.cpp:265:34: error: 'SND_PCM_FORMAT_UNKNOWN' was not declared in this scope
     if (err >= 0 && pcmFormat != SND_PCM_FORMAT_UNKNOWN)
                                  ^~~~~~~~~~~~~~~~~~~~~~
qalsaaudiodeviceinfo.cpp:266:72: error: 'snd_pcm_hw_params_set_format' was not declared in this scope
         err = snd_pcm_hw_params_set_format(pcmHandle, params, pcmFormat);
                                                                        ^
qalsaaudiodeviceinfo.cpp:269:50: error: 'snd_pcm_hw_params' was not declared in this scope
         err = snd_pcm_hw_params(pcmHandle, params);
                                                  ^
qalsaaudiodeviceinfo.cpp:271:28: error: 'snd_pcm_close' was not declared in this scope
     snd_pcm_close(pcmHandle);
                            ^
qalsaaudiodeviceinfo.cpp: In member function 'void QAlsaAudioDeviceInfo::updateLists()':
qalsaaudiodeviceinfo.cpp:286:9: error: 'handle' was not declared in this scope
     if(!handle)
         ^~~~~~
qalsaaudiodeviceinfo.cpp:289:9: error: 'handle' was not declared in this scope
     if(!handle)
         ^~~~~~
make[7]: *** [Makefile:1517: .obj/qalsaplugin.o] Error 1
make[7]: *** Waiting for unfinished jobs....
cd designer/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/designer/designer.pro ) && make -f Makefile 
make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant/help'
make[7]: Nothing to be done for 'first'.
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant/help'
make[6]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qttools/src/assistant'
cd accelbubble/ && ( test -e Makefile || /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile /home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/accelbubble/accelbubble.pro ) && make -f Makefile 
make[7]: Entering directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/shakeit'
make[7]: Nothing to be done for 'first'.
make[7]: Leaving directory '/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/qtsensors/examples/sensors/shakeit'

搜了下,是
./qtmultimedia/src/plugins/alsa/qalsaaudiodeviceinfo.cpp
这个文件报错的,但是为何还是会编译qtmultimedia?

-----------------------------------------------

还有这个tina linux,每次修改Makefile后再m,qt都会重新解压覆盖一次qt源码,之前编译报错添加的#include <limits>又需要从新添加一遍,甚是麻烦。

--------------------------------------------------

make menuconfig时,上次把alsa驱动部分关了,所以会一直报这个错误,加上后没事了。

最近编辑记录 Gentlepig (2023-05-13 10:26:37)

离线

楼主 #22 2023-05-13 11:23:47

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

10*****231 说:

@Gentlepig

感谢补丁,自带的编译过了,明天上板子

qt通过编译了,那么交叉编译的qmake能否编译工程?
我这里用交叉编译的qmake生成的Makefile文件,CC总是空的。

--------------------------------------------

发现package/gui/qt/qt5目录下的Makefile里,有qt配置文件,但是里面没有-optimized-qmake选项,不知道和这个有没有关系。
手动加上了,正在重新编译一遍试试。
这个Makefile一旦修改,qt源码就又会重新解压一遍,qt有重新编译一遍,真是麻烦啊。

		./configure \
		-prefix $(CONFIGURE_PREFIX) \
		-bindir $(CONFIGURE_PREFIX)/bin \
		-headerdir $(CONFIGURE_PREFIX)/include \
		-libdir $(CONFIGURE_PREFIX)/lib \
		-datadir $(CONFIGURE_PREFIX)/share/qt5 \
		-qmldir $(CONFIGURE_PREFIX)/lib/qt5/qml \
		-plugindir $(CONFIGURE_PREFIX)/lib/qt5/plugins \
		-release \
		-xplatform linux-openwrt-g++ \
		-optimized-qmake \
		-opensource \
		-confirm-license \
		-c++std c++14 \
		-shared \
		-accessibility \
		-no-qml-debug \
		-no-sse2 \
		-no-sse3 \
		-no-ssse3 \
		-no-sse4.1 \
		-no-sse4.2 \
		-no-avx \
		-no-avx2 \
		-no-mips_dsp \
		-no-mips_dspr2 \
		-pkg-config \
		-system-zlib \
		-mtdev \
		-no-journald \
		-syslog \
		-system-libpng \
		-system-libjpeg \
		-system-freetype \
		-no-sql-db2 \
		-no-sql-ibase \
		-no-sql-mysql \
		-no-sql-oci \
		-no-sql-odbc \
		-no-sql-psql \
		-sql-sqlite \
		-sqlite \
		-no-sql-tds \
		-qt-harfbuzz \
		-openssl \
		-no-libproxy \
		-qt-pcre \
		-no-xcb \
		-no-xcb-xinput \
		-no-xcb-xlib \
		-no-glib \
		-no-pulseaudio \
		-alsa \
		-no-gtk \
		-no-opengl \
		-gui \
		-widgets \
		-no-cups \
		-iconv \
		-evdev \
		-tslib \
		-no-icu \
		-fontconfig \
		-strip \
		-no-pch \
		-no-ltcg \
		-dbus-linked -L$(STAGING_DIR)/usr/lib -I$(STAGING_DIR)/usr/include \
		-I$(STAGING_DIR)/usr/include/dbus-1.0 -I$(STAGING_DIR)/usr/lib/dbus-1.0/include \
		-no-use-gold-linker \
		-no-eglfs \
		-no-kms \
		-no-gbm \
		-no-directfb \
		-linuxfb \
		-no-mirclient \
		-no-libinput \
		-no-gstreamer \
		-nomake tests \
		-skip qtdoc \
		-skip qtwayland \
		-ssl \

哈,加了optimized-qmake也没用。

最近编辑记录 Gentlepig (2023-05-13 16:29:48)

离线

楼主 #24 2023-05-16 08:55:02

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

@10*****231

这不是我想要的解决办法。
你这是将sdk的qt编译了一遍,又单独下载编译了一遍qt。

之前试过,单独编译qt源码,生成的qmake可以用,交叉编译的qt程序放到板子上,板子上只有sdk自带qt编译的库,也可以正常运行。

我是想搞明白为什么sdk自带qt生成的qmake,不能用。

----------------------------------------------------------------

发现qmke并不是编译qt源码make时产生的,而是在这之前,执行configure脚本时产生的。
tina sdk自带的qt并没有单独的configure脚本文件,而是在package/gui/qt/qt5/Makefile里有些configure语句。
就是这个帖子里我在22楼贴的那部分。

-----------------------------------------------------------------

sdk自带qt编译生成的qmake:

./qmake -v
QMake version 3.1
Using Qt version 5.12.9 in /usr/lib

手动生成autoconfigure.sh单独编译qt生成的qmake:

./qmake -v
QMake version 3.1
Using Qt version 5.12.9 in /home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/t113-qt/lib

可以看到sdk自带qt生成的qmake,并不能正确引用到lib所在位置。

最近编辑记录 Gentlepig (2023-05-16 10:38:14)

离线

楼主 #25 2023-05-16 10:46:25

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

感觉像是qtbas/mkspecs/linux-openwrt-g++/qmake内容有问题,可能有些变量没有正确传进来。
比如
QMAKE_CC        = $$(TARGET_CC)
如何将这个TARGET_CC打印出来查看一下?

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = eglfs

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# QMAKE_{INC,LIB}DIR_QT needs to be overridden,
# as they're set to $$[QT_INSTALL_{HEADERS,LIBS}] by default
# which are compiled into the qmake binary statically
QMAKE_INCDIR_QT		= $$(TARGET_INCDIRS)
QMAKE_LIBDIR_QT		= $$(TARGET_LIBDIRS)
QMAKE_INCDIR		= $$(TARGET_INCDIRS)
QMAKE_LIBDIR		= $$(TARGET_LIBDIRS)
QMAKE_MOC		= $$(STAGING_DIR_HOST)/bin/moc
QMAKE_UIC		= $$(STAGING_DIR_HOST)/bin/uic
QMAKE_RCC		= $$(STAGING_DIR_HOST)/bin/rcc
QMAKE_CC		= $$(TARGET_CC)
QMAKE_CXX		= $$(TARGET_CXX)
QMAKE_AR		= $$(TARGET_AR)
QMAKE_OBJCOPY		= $$(TARGET_OBJCOPY)
QMAKE_RANLIB		= $$(TARGET_RANLIB)
QMAKE_CFLAGS		= $$(TARGET_CFLAGS)
QMAKE_CXXFLAGS		= $$(TARGET_CXXFLAGS)
QMAKE_NM                =
QMAKE_LINK		= $$(TARGET_CXX)
QMAKE_LINK_SHLIB	= $$(TARGET_CXX)
QMAKE_LINK_C		= $$(TARGET_CC)
QMAKE_LFLAGS		= $$(TARGET_LDFLAGS) # this will end up in redundant "-L"-strings, as they're already in $QMAKE_LIBDIR_QT, however TARGET_LDFLAGS may contain not only directories but special linker options

#unset vars which would intefere with vars/flags passed over by OpenWrt
QMAKE_STRIP				= # do not strip
QMAKE_STRIPFLAGS_LIB			= # do not strip
QMAKE_CFLAGS_WARN_ON			= 
QMAKE_CFLAGS_WARN_OFF			= 
QMAKE_CFLAGS_RELEASE			= 
QMAKE_CFLAGS_DEBUG			= 
QMAKE_CFLAGS_PRECOMPILE			= 
QMAKE_CFLAGS_USE_PRECOMPILE		= 
QMAKE_CXXFLAGS_WARN_ON			= 
QMAKE_CXXFLAGS_WARN_OFF			= 
QMAKE_CXXFLAGS_RELEASE			= 
QMAKE_CXXFLAGS_DEBUG			= 
QMAKE_CXXFLAGS_PRECOMPILE		= 
QMAKE_CXXFLAGS_USE_PRECOMPILE		= 
QMAKE_LFLAGS_RELEASE			= 

load(qt_config)

------------------------------------

Makefile里加入$(warning, &(TARGET_CC));将Makefile里的make -jx注释掉,使其不进行qt源码编译;用mm 1>&1|tee xxx.log将编译信息保存到xxx.log。
从xxx.log里找到了TARGET_CC,果然只是个arm-openwrt-linux-muslgnueabi-gcc ,没有路径。
还有CONFIGURE_PREFIX,  是/usr。

试了下arm-openwrt-linux-muslgnueabi-gcc -v,是可以看到信息的,其路径已经加到PATH环境变量里了。

-----------------------------

只在这里赋值了,感觉预安装

build/package-defaults.mk:77:CONFIGURE_PREFIX:=/usr

实际libQt5*.so是放到了../out/t113-mq_r/compile_dir/target/qt-everywhere-opensource-src-5.12.9/ipkg-install/usr/lib/目录下。
而这个ipkg-install不知道是什么时候加进来的。

最近编辑记录 Gentlepig (2023-05-17 10:24:45)

离线

楼主 #27 2023-05-17 08:41:31

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

@10*****231

sdk自带qt编译后没有打包进根文件系统,需要make menuconfig时勾选个qt例子,好像是洗衣机那个例子就行。这也是群友告诉我的,好像和openwrt的strip选项有关,打包时会剔除些用不到的库?不过试过去掉strip勾选,还是打包不进去。而勾选个qt例程会打包进去。

最近编辑记录 Gentlepig (2023-05-17 16:25:18)

离线

楼主 #28 2023-05-17 09:21:39

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

我尝试将package/gui/qt/qt5/files/qmake.conf里最后加上

# modifications to g++.conf
  1 QMAKE_CC                = arm-openwrt-linux-gcc
  2 QMAKE_CXX               = arm-openwrt-linux-gcc
  3 QMAKE_LINK              = arm-openwrt-linux-gcc
  4 QMAKE_LINK_SHLIB        = arm-openwrt-linux-gcc
  5 
  6 # modifications to linux.conf
  7 QMAKE_AR                = arm-openwrt-linux-ar cqs
  8 QMAKE_OBJCOPY           = arm-openwrt-linux-objcopy
  9 QMAKE_NM                = arm-openwrt-linux-nm -P
 10 QMAKE_STRIP             = arm-openwrt-linux-strip
 11 
 12 load(qt_config)

目的是将QMAKE_CC这些变量重新定义为固定的arm-openwrt-linux-gcc,结果编译通不过,报错:

ERROR: Qt requires a compliant STL library.

离线

楼主 #30 2023-05-27 11:13:17

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

sdk自带qt编译后产生的qmake不能用的问题,还没找到解决办法。目前是用单独编译qt产生的qmake,不过板子上还是用sdk产生的qt库。编译个例程可以通过,下载到板子上运行后板子没反应,以为是环境变量的问题,又折腾了一阵子。后经群友提醒,设置个环境变量,打开了插件加载错误输出功能,这才看到显示没找到libQt5DBus.so,去sdk里搜了下,staging/target/usr/lib目录下是有的,可arm板上确实没有。手动复制过去后,继续报错libdubs-1.so没找到,继续从staging/target/usr/lib目录下复制过去。这次知道为何烧录用的img文件这么小,原来很多库没拷贝进去。

后来需要用到ssl功能,发现sdk里staging/target/usr/lib下也没有libQt5Ssl.so,在qt的makefile里,我设置了-ssl和-openssl,按说应该是默认动态加载openssl库了,但是就是没有产生libQt5Ssl.so,于是我改成-openssl -linked,然后设置了-I -L指定了openssl库路径。结果编译后还是没libQt5Ssl.so。
群友帮搜到这篇文章,需要在makefile里指定depengd依赖。
https://stackoverflow.com/questions/19184631/package-is-missing-dependencies-for-libraries-openwrt
于是我加了+libssl,结果还是原样,报错,QNetWork找不到libssl.so和libcrypto.so。
继续搜。https://blog.csdn.net/hexf9632/article/details/105976747
这里说明了,需要+的名字是make menuconfig里的库名字,在这里应该是+libopenssl。有点坑啊...

define Package/qt5-network                                                                          │~                             
   $(call Package/qt5/Default)                                                                       │~                             
   TITLE+=network                                                                                    │~                             
   DEPENDS+=+qt5-core +libopenssl                                                                    │~                             
endef 

-----------------------------
晕,高兴的早了,虽然编译通过了,但是仍没有libQt5Ssl.so
-----------------------------
哈,本就没这个libQt5Ssl.so。
我现在编译报错,是因为我编译的是sdk自带的qt,而使用的qmake是单独编译的qt且没选ssl。

最近编辑记录 Gentlepig (2023-05-27 11:35:47)

离线

楼主 #31 2023-05-29 10:26:57

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

修改了autconfigure.sh,make时报错:

Qt error: one or more PCH files were found, but they were invalid

往上搜了下,说有以前配置文件的残留,需要make distclean。

make distclean -j16,结果报错:

/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile qtimageformats.pro
/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtdeclarative/.qmake.conf:1: Cannot find feature qt_build_config
Cannot find feature spec_pre.prf
Error processing project file: qtdeclarative.pro
make[1]: *** [Makefile:408:Makefile] 错误 3
make[1]: 离开目录“/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtdeclarative”
make: *** [Makefile:168:module-qtdeclarative-distclean] 错误 2
make: *** 正在等待未完成的任务....
/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtimageformats/.qmake.conf:1: Cannot find feature qt_build_config
Cannot find feature spec_pre.prf
Error processing project file: qtimageformats.pro
make[1]: *** [Makefile:354:Makefile] 错误 3
make[1]: 离开目录“/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtimageformats”
make: *** [Makefile:143:module-qtimageformats-distclean] 错误 2
make[1]: 进入目录“/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtserialport”
/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile qtserialport.pro
/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtserialport/.qmake.conf:1: Cannot find feature qt_build_config
Cannot find feature spec_pre.prf
Error processing project file: qtserialport.pro
make[1]: *** [Makefile:382:Makefile] 错误 3
make[1]: 离开目录“/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtserialport”
make: *** [Makefile:93:module-qtserialport-distclean] 错误 2

再次make distclean,则报错变成:

/home/any/MPU/AllWinner/T113-s3/qt-everywhere-opensource-src-5.12.9/qtbase/bin/qmake -o Makefile qt.pro -- -prefix ./t113-qt -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 --rpath=no -pch -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -make libs -make examples -nomake tools -nomake tests -gui -widgets -dbus-runtime --glib=no --iconv=no --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl -linuxfb --xcb=no -tslib --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/ -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/allwinner/ -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/allwinner/include/ -L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/ -recheck-all
Could not find qmake spec ''.
Error processing project file: qt.pro
make: *** [Makefile:652:Makefile] 错误 3

----------------------------------------------------------------

将libudev.so放到了arm-gcc/lib目录下,结果编译通过了。
然后将autoconfigure.sh里的ssl功能打开,改为-openssl-linked,将同样报错找不到的libssl.so,libcrypto.so放到了arm-gcc/lib目录下,编译也通过了。

那么,问题大概有点明白了,autoconfigure.sh里用-I -L指定了第三方库的链接位置,没有起作用。

    -I/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/include/ \
    -L/home/any/MPU/AllWinner/T113-s3/Tina-Linux/out/t113-mq_r/staging_dir/target/usr/lib/ \

那么,到底该如何引入第三方链接库呢?

最近编辑记录 Gentlepig (2023-05-29 15:38:12)

离线

楼主 #32 2023-05-30 08:59:46

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

运行arm-oenwrt-linux-gcc -v,发现configrued with后面跟的很多路径,不是我电脑上的,不知道这个会不会有影响。

$ arm-openwrt-linux-gcc -v
Reading specs from /home/any/MPU/AllWinner/T113-s3/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/specs
COLLECT_GCC=arm-openwrt-linux-muslgnueabi-gcc.bin
COLLECT_LTO_WRAPPER=/home/any/MPU/AllWinner/T113-s3/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../libexec/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/lto-wrapper
Target: arm-openwrt-linux-muslgnueabi
Configured with: /home/xuqiang/workspace/tina-old/out/v853-perf1/compile_dir/toolchain/gcc-linaro-6.4-2017.11/configure --with-bugurl=https://dev.openwrt.org/ --with-pkgversion='OpenWrt/Linaro GCC 6.4-2017.11 2017-11' --prefix=/home/xuqiang/workspace/tina-old/out/v853-perf1/staging_dir/toolchain --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-openwrt-linux-muslgnueabi --with-gnu-ld --enable-target-optspace --enable-libgomp --disable-libmudflap --disable-multilib --disable-nls --without-isl --without-cloog --with-host-libstdcxx=-lstdc++ --with-gmp=/home/xuqiang/workspace/tina-old/out/host --with-mpfr=/home/xuqiang/workspace/tina-old/out/host --with-mpc=/home/xuqiang/workspace/tina-old/out/host --disable-decimal-float --with-diagnostics-color=auto-if-env --disable-libssp --enable-__cxa_atexit --with-cpu=cortex-a7 --with-fpu=neon --with-float=hard --with-headers=/home/xuqiang/workspace/tina-old/out/v853-perf1/staging_dir/toolchain/include --disable-libsanitizer --enable-languages=c,c++ --enable-shared --enable-threads --with-slibdir=/home/xuqiang/workspace/tina-old/out/v853-perf1/staging_dir/toolchain/lib --enable-lto --with-libelf=/home/xuqiang/workspace/tina-old/out/host
Thread model: posix
gcc version 6.4.1 (OpenWrt/Linaro GCC 6.4-2017.11 2017-11) 

------------------------------------

问题好像解决了。
在autoconfigure.sh里,之前有 -I 头文件路径 -L 库文件路径,现在又加了个-R库文件路径,结果可以通过编译了。
感觉 -L  对应 -linked,  -R 对应-runtime。
搜-R,说是和-rpaht等效。但是之前我是过修改-L 库文件路径  为: -L“库文件路径  Wl,-rpaht=库文件路径",结果报错还是没效果来着...

--------------------------------

感觉理解的还是不对。
libudev.so可能是libQt5SerialPort.so动态引用的。
但是openssl这里我选的是-openssl-linked,这应该是静态链接啊。

最近编辑记录 Gentlepig (2023-05-30 11:50:07)

离线

楼主 #33 2023-06-05 16:14:28

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

关于将自己的应用打包的问题:
target/xxxx/busybox-init目录下的文件打包时会覆盖掉rootfs/目录下的文件,所以放到该目录下即可。然后执行mp。
但是mp时发现,我交叉编译的程序,会报错找不到依赖的库。
还有就是,有的我明明复制到该目录了,也通过编译了,但是烧录到板子上有就是没有。
尤其是usr/lib目录下的libQt5DBus.so和libdbus-1.so。

ubuntu下烧录软件是Livesuite,不是phonixsuit了。可以从github上下载。里面主要是个脚本和一些.dll文件。需要先编译awusb,编译会报错,需要修改Makefile文件。我是用的群友提供的。
这样,就不用来回切换ubuntu和win了。

离线

楼主 #34 2023-06-06 10:21:55

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

rgb红蓝对调:
内核设备树:
fb0_formate = <1>,则红蓝对调,但是看注释里的描述,这个变量不是管这个功能的啊。
uboot设备树:
lcd_rb_swap = <1>,红蓝对调,但是uboot红蓝对掉后,进内核后则又变为不对调了...

--------------------------------------------------------

恢复内核设备树,不启动红蓝对掉功能,只保留uboot设备树的红蓝对掉。结果启动后,无论uboot还是内核,都是红蓝对掉了。
看样子,之前是uboot时对掉了一次,内核时又对掉了一次,结果又返回来了。

uboot和内核设备树修改红蓝对掉的方法,竟然不一样!

最近编辑记录 Gentlepig (2023-06-06 10:28:43)

离线

楼主 #35 2023-06-13 17:23:29

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

在设备树里设置pb2/3为uart4的管脚,编译并烧录后,可以找到/dev/ttyS3了,但是用qt的serial例程通过ttyS3发送数据,在PB2管脚上并没有测量到波形。改设备树pg2/3为uart4管脚,同样测量不出波形。
qt例程没问题,通过/dev/ttyS1发送数据,在对应管脚上可以测到波形。
目前打开了uart1,uart3,uart4.uart3作为调试口。

PB2/3 4/5同时作为了can0,1的管脚,我打开了can1功能,can通讯正常。
为了排除can功能的影响,将can0, 1都关闭,结果仍是在PB2上测不到波形。
将PB4/5设为uart5管脚,运行程序后发现PB4上,有非常小的凹陷,不确定是不是波形。

在设备树里搜索PB2/3,发现PB2/3还作为电容屏的RST及中断管脚,注释掉这两句,结果依旧。
PB2/3也是rgb24的信号管脚,但是我没用rgb24,用的是rgb16。

最近编辑记录 Gentlepig (2023-06-13 17:25:54)

离线

楼主 #37 2023-06-14 10:23:18

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

alien75 说:

t113-s3有uart0,所以uart3才是对应的/dev/ttyS3,uart4(pb2/3)对应的是/dev/ttyS4。难道是在dts中把uart4的uart4_port改成了3,强行把uart4映射为/dev/ttyS3?这种方式我原来有试过,导致类似问题出现

谢谢,我写错了。
目前打开了uart1,3,4,5,对应的ttys1, s3, s4, s5都能找到。
我用板上串口发送,确实是用的s4。

昨天一位朋友帮我试了,同样在mq_r的sdk上修改,他将s4作为了调试口,用的PG2,PG3,有调试信息...

我比对了下我的board.dts和sun8iw20p1.dtsi,已经将can部分全部注释掉了。结果仍是不行。
在make kernel_menuconfig里将can部分关掉。结果仍是不行。
将sunxi-uart.c还原成不带485控制的版本。结果仍是不行。

-----------------------------------------------------------------------------------------

问题找到了,设备树里pinctrl-names少写了个s。

-----------------------------------------------------------------------------------------

本来PB2/3 4/5为can0, can1管脚。
现在将PB2/3设为uart4,同时打开can1功能,结果进入系统后ifconfig -a发现打开的是can0。
感觉can1自动变成can0了...

-----------------------------------------------------------------------------------------

设备树里就按can1设置打开PB4/5管脚,进系统后显示是can0,程序按can0处理,竟然可以通讯。

最近编辑记录 Gentlepig (2023-06-14 17:25:32)

离线

楼主 #38 2023-06-14 17:35:21

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

程序里调用这句配置can:

system("ip link set can0 type can bitrate 250000");

程序可正常运行,can通讯正常。但是如果设程序开机后后台运行,则会报错:

ip:either "dev" is duplicate, or "type" is garbage 

--------------------------------------------------------------------------

之前程序开机启动放在/etc/init.d/S99xx里面。后来放在/etc/profile的最后一行,可以了。感觉配置can时需要甬道的ip(ip router2)命令,可能在执行完/etc/profile后才有效,也不知道为什么。

最近编辑记录 Gentlepig (2023-06-15 17:03:24)

离线

楼主 #39 2023-06-27 17:22:17

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

这阵子在用qt的modbus库,记录一下。
modbusdevice有两个设置,超时时间和重试次数。超时时间最小值是50,如果小于这个值,可能会按一个比较大的值处理。
另,发送时间,需要大于处理时间,最好是考虑到设备未返回数据的情况,也就是发送周期间隔,最好大与超时时间*重试次数,否则reply还未delete就会重新创建,内存占用会越来越大。
我是在子程序里进行modbus读写处理的,在收到返回数据后,reply->deleteLater(),然后再重新下个读写。发现经常出现超时的情况。加了个QThread::msleep(50),则不会出现读取超时了。尝试小于50的值,也是会出现读取超时的问题。观测slave端,感觉想是slave收到的数据被分成了两帧,所以没有返回,然后就超时了。感觉还是reply处理影响了串口发送?

离线

楼主 #40 2023-06-29 11:45:29

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

再记录一下,qt程序modbus做从机,设置数据点,一种类型只能设置一次,多次设置的话只有最后一次有效。比如定义04功能码读输入寄存器,如果地址不连续,有4300, 5300两个地址,那么不能设置两次,只能设置一次,设初始地址为4300,数量为1000个。

---------------------------------------------------------------------------

上个楼层里说的那个加延时,也是没必要的。尝试把延时去掉了,modbus超时时间设为最小的50ms,重试次数设为0,也就是只发一次,波特率9600的情况下,收发正常。如果超时时间设为100ms, 9600波特率下,大该两次正常通讯后就有一次通讯超时,500ms,大部分情况下出错,应该是发送被分帧了。还没明白其中原因。

---------------------------------------------------------------------------

在reply收到数据后,调用下一次poll前,加的这个延时,尝试减小,由50ms减小到了5ms,只要这个延时存在,超时时间设大也没事,设置成500ms超时,重试2次,仍能正常通讯。但是这个延时时间再小,就又出现通讯错误了。是不是需要等待发送完成,发送目前的8个字节需要一定时间?有这个可能,9600波特率下发送一个字节大该833us,8个字节大该是6.6ms。如果是这样的话,那发送数据较长时,这个延时也该变化,不好整啊。

--------------------------------------------------------------------------

群里一位朋友解释了,modbusrtu通讯本身就需要发送间隔大于3.5个字符间隔。9600波特率下对应差不多4ms。这么说,应该是发送粘包了...

最近编辑记录 Gentlepig (2023-06-29 16:31:35)

离线

楼主 #41 2023-07-05 09:42:07

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

加了个新的硬盘,在新硬盘上重新安装了ubuntu22.04,尝试官方的tina sdk 2.1版本。
从aw-ol上下载了t113的补丁。
https://bbs.aw-ol.com/topic/2027/%E4%B8%80%E4%B8%AA%E8%A1%A5%E4%B8%81-%E8%AE%A9d1-h%E7%9A%84sdk%E6%94%AF%E6%8C%81t113%E8%8A%AF%E7%89%87
https://github.com/YuzukiHD/TinaAddons
这样d1-h的sdk就支持t113-s3了。make时报错,c-stack错误,搜了下,说要升级m4版本,或者打补丁。
https://bbs.aw-ol.com/topic/171/%E6%9E% … 8518359186

遇到个问题,在这里反馈一下。在ubuntu22.04上,m4编译会报一个错:
c-stack.c:55:26: error: missing binary operator before token "("
55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
|
这里可以去https://toolchains.bootlin.com/downloads/releases/sources/m4-1.4.18/ 下载0003-c-stack-stop-using-SIGSTKSZ.patch
然后拷贝package/m4目录下重新编译即可。

补丁放到了out/compile/xxx/m4目录下,执行patch -p1 < xxx.patch。则该问题解决。

------------------------------------------------------

https://blog.csdn.net/bbssuiji2/article/details/124426318

最近编辑记录 Gentlepig (2023-07-05 14:20:41)

离线

楼主 #42 2023-07-07 17:35:45

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

tina sdk 2.1不带qt了,需要自己单独编译。之前2.0时默认带的是qt5.12.9。这次想尝试下qt5.15.10。
由于gcc版本过高,之前编译qt5.12源码时,需要在几个文件里手动加#include <limts>,否则有几个std::报错。
而qt5.15就没这个问题。但是,尝试加openssl时,报错了,最后看config.log才发现,qt5.15支持的openssl版本是1.1.1,而sdk带的是1.1.0。
sdk默认make menuconfig里openssl基本没勾选子项目,需要勾选一些。

最近编辑记录 Gentlepig (2023-07-07 17:37:02)

离线

楼主 #50 2024-07-04 09:29:54

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: t113-s3的tina linux如何配置及编译sdk自带的qt?

忘了之前的过程了...
2.0的sdk是从mango的github上下载的,现在好像仓库移除了。
2.1的sdk是从全志官网下载的,当时注册就能下载,现在貌似不行了,得签nda。
不过t113s3官方的sdk已经是tina5.x了吧。tina2.x是基于openwrt的,tina5.x是直接基于buildroot的了,好像是这样子。

之前用tina2.0时,make menuconfig里有qt选项,于是就想尽量用官方自带的,觉得可能更好,于是就折腾了一阵子。
而到tina2.1时,sdk里已经没有qt库了,也就死心了,安心单独编译qt。

cp: cannot stat '/home/embedfire/workspace/tina-t113/Tina_Linux_2022/Tina-Linux/out/t113-evb1/compile_dir/target/qt-everywhere-src-5.12.9/ipkg-install/usr/lib/libQt5MultimediaQuick.so*': No such file or directory

无论自己单独编译,还是用sdk自带的,编译qt都有个配置选项,里边配置编译哪些库。你可以看下是应该选这个库还是不该选。
编译qt库也挺费时间的。

最近编辑记录 Gentlepig (2024-07-04 09:32:51)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn