勾选了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。
离线
记录一下,群友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库了。
其实aw-ol论坛里还有个朋友提供的qt补丁,不过是好几个文件,我就没用那个。
最近编辑记录 Gentlepig (2023-04-26 15:20:35)
离线
在此记录下遇到的其他问题吧。
参考mango的mq_r板子修改画的,调试口是uart3。下载下来的tina linux默认条是口还是uart1。修改了board.dts,sysconfig.fex,结果串口3还是无输出。经群友提醒,还需要修改env.cfg里的console以及earlyprintk,尤其是后者,需要根据寄存器地址修改。
离线
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。
离线
我板子上焊接的是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)
离线
@Gentlepig
感谢分享,请问下qtcreator里配置gcc的路径是什么?
离线
ubuntu下交叉编译我是用qmake创建工程,没用qt creator,也不知道怎么配置...
离线
看到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
离线
有朋友测试过Wayland吗?
离线
按awol论坛的帖子,修改设备树,启用can功能。
然后发现ip命令无法设置can,搜了下,说是需要iproute2,但是总是不成功,package目录下的iproute2目录始终没有编译进去。
经群友提醒,勾选了ip-full后,iproute2顺利编译了。
另,busybox相关设置里有两套ip选项,也不清楚是为什么。
离线
@Gentlepig
Tina下编译的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)
离线
尝试单独编译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)
离线
@Gentlepig
Tina下编译的qt库,最后应用可以跑起来么?
不行啊,运行报这个错
Error loading shared library libstdc++.so.6: No such file or directory
我参考的这个教程,单独编译的:https://blog.csdn.net/qq_28877125/article/details/127098767
离线
@Gentlepig
我参考这个教程: https://blog.csdn.net/qq_28877125/article/details/127098767
单独编译qt5成功了,然后用编译生成的qmake,配置到qtcreator里,可以生成可执行程序,但是最终还是跟教程里一样,报这些错:
Error loading shared library libstdc++.so.6: No such file or directory
离线
@Gentlepig
Tina下编译的qt库,最后应用可以跑起来么?
编译完qt后看到根文件里有libQt5相关库就没再继续了,当时板子上也缺元件没有接屏幕。
前天想尝试用qt编译个hello,world,结果才发现交叉编译过不去...
----------------------------
在这里做个记录吧。
基于D1s的QT5移植
这个帖子里有补丁文件可编译tina sdk自带的qt.
最近编辑记录 Gentlepig (2023-05-11 11:27:44)
离线
@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)
离线
@10*****231
编译通过了,写了个简单的helloworld,可以通过编译。下载到板子上,可以运行。
不过我板子上还是用之前sdk自带qt编译的库。
离线
@Gentlepig
感谢补丁,自带的编译过了,明天上板子
离线
我又重新编译了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(¶ms);
^
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)
离线
@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)
离线
@Gentlepig
我今天成功了!虽然还有一个问题没解决,但是能用了!终于看到自己做的界面了!!!!!
步骤:
1、打QT补丁:https://debugdump.com/topic/944/%E5%9F%BA%E4%BA%8Ed1s%E7%9A%84qt5%E7%A7%BB%E6%A4%8D?lang=zh-CN
2、make menuconfig
> Target Images
[ * ] ext4 ---> (60000) Maximum number of inodes in root filesystem 【这里改大是为了在板子上解压】
(512) Root filesystem partition size (in MB) 【256M好像就够,反正我有个8G内存卡】
Gui --->
<*> qt5-core 【我只勾了这一个】
3、按照这个教程:https://blog.csdn.net/qq_28877125/article/details/127098767
单独编译QT5.12,
生成/opt/qt5.12.9-arm-t113,把这个文件夹 压缩成qt5.12.9-arm-t113.tar包【66.2M】,放到Vmware共享文件夹里
把教程里的/etc/profile更新到 Tina-Linux/target/allwinner/t113-mq_r/busybox-init-base-files/etc/profile
4、编译 打包
5、进板子,用adb把qt5.12.9-arm-t113.tar复制到 /mnt/UDISK
6、把qt5.12.9-arm-t113.tar解压 到 /opt
到此qt环境就完成了,我用qt creator生成的程序执行不再报错,画面正常显示了!!!!太不容易了
关于 【这个Makefile一旦修改,qt源码就又会重新解压一遍,qt有重新编译一遍】这个我好像没有遇到,我今天先把qt5-core勾上编译成功了,后来发现tplayerdemo没有加上,于是再勾上tplayerdemo,编译1分多种就完成了,应该是没有重新编译qt
最后一个问题:
我尝试把 /opt/qt5.12.9-arm-t113文件夹复制到 Tina-Linux/target/allwinner/t113-mq_r/busybox-init-base-files/opt,编译会报错,提示有几个libQt什么的so找不到,所以只能打包复制,在板子里解压。。。。。。
离线
@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)
离线
感觉像是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)
离线
@Gentlepig
我这个sdk编译出的out/t113-mq_r/staging_dir/target/rootfs/usr/lib里面有libQt5Core.so,但是下载到板子里/usr/lib里面没有libQt5Core.so,不知道是哪个打包脚本有问题,所以我才想着单独编译qt再弄到板子上,要是能直接用自带的编译成功也不折腾这么多了
最近编辑记录 10*****231 (2023-05-16 19:22:31)
离线
@10*****231
sdk自带qt编译后没有打包进根文件系统,需要make menuconfig时勾选个qt例子,好像是洗衣机那个例子就行。这也是群友告诉我的,好像和openwrt的strip选项有关,打包时会剔除些用不到的库?不过试过去掉strip勾选,还是打包不进去。而勾选个qt例程会打包进去。
最近编辑记录 Gentlepig (2023-05-17 16:25:18)
离线
我尝试将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.
离线
@Gentlepig
我的想法很简单,就用单独编译的qt,把编译好的打包进img文件就行了,可是把单独编译的 /opt/qt5.12.9-arm-t113 文件夹放到busybox-init-base-files/opt 编译会报错,但是把文件夹压缩成 qt5.12.9-arm-t113.tar 放进去就能编译过!!!!!!!!!!!这就很全志了,至于sdk自带的qt修改脚本什么的对我来说就太超纲了。。。。
最近编辑记录 10*****231 (2023-05-17 14:57:52)
离线
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)
离线
修改了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)
离线
运行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)
离线
关于将自己的应用打包的问题:
target/xxxx/busybox-init目录下的文件打包时会覆盖掉rootfs/目录下的文件,所以放到该目录下即可。然后执行mp。
但是mp时发现,我交叉编译的程序,会报错找不到依赖的库。
还有就是,有的我明明复制到该目录了,也通过编译了,但是烧录到板子上有就是没有。
尤其是usr/lib目录下的libQt5DBus.so和libdbus-1.so。
ubuntu下烧录软件是Livesuite,不是phonixsuit了。可以从github上下载。里面主要是个脚本和一些.dll文件。需要先编译awusb,编译会报错,需要修改Makefile文件。我是用的群友提供的。
这样,就不用来回切换ubuntu和win了。
离线
rgb红蓝对调:
内核设备树:
fb0_formate = <1>,则红蓝对调,但是看注释里的描述,这个变量不是管这个功能的啊。
uboot设备树:
lcd_rb_swap = <1>,红蓝对调,但是uboot红蓝对掉后,进内核后则又变为不对调了...
--------------------------------------------------------
恢复内核设备树,不启动红蓝对掉功能,只保留uboot设备树的红蓝对掉。结果启动后,无论uboot还是内核,都是红蓝对掉了。
看样子,之前是uboot时对掉了一次,内核时又对掉了一次,结果又返回来了。
uboot和内核设备树修改红蓝对掉的方法,竟然不一样!
最近编辑记录 Gentlepig (2023-06-06 10:28:43)
离线
在设备树里设置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)
离线
t113-s3有uart0,所以uart3才是对应的/dev/ttyS3,uart4(pb2/3)对应的是/dev/ttyS4。难道是在dts中把uart4的uart4_port改成了3,强行把uart4映射为/dev/ttyS3?这种方式我原来有试过,导致类似问题出现
最近编辑记录 alien75 (2023-06-13 19:07:23)
离线
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)
离线
程序里调用这句配置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)
离线
这阵子在用qt的modbus库,记录一下。
modbusdevice有两个设置,超时时间和重试次数。超时时间最小值是50,如果小于这个值,可能会按一个比较大的值处理。
另,发送时间,需要大于处理时间,最好是考虑到设备未返回数据的情况,也就是发送周期间隔,最好大与超时时间*重试次数,否则reply还未delete就会重新创建,内存占用会越来越大。
我是在子程序里进行modbus读写处理的,在收到返回数据后,reply->deleteLater(),然后再重新下个读写。发现经常出现超时的情况。加了个QThread::msleep(50),则不会出现读取超时了。尝试小于50的值,也是会出现读取超时的问题。观测slave端,感觉想是slave收到的数据被分成了两帧,所以没有返回,然后就超时了。感觉还是reply处理影响了串口发送?
离线
再记录一下,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)
离线
加了个新的硬盘,在新硬盘上重新安装了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)
离线
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)
离线
有朋友测试过Wayland吗?
这颗芯片不带GPU,wayland可以开启硬件加速吗?
离线
如果只用来解码放视频,能不用QT吗
离线
arychen 说:如果只用来解码放视频,能不用QT吗
可以不用
直接做一个应用程序调硬解码库吗 图像输出直接画屏? 有demo吗 这样的话是不是用longan方便还是tina方便
离线
@Gentlepig
这几天我也在研究T113-s3的tina官方固件如何用起来QT。
当前进展是用了帖子里面的makefile之后,make menuconfig选中qt-core可以编译通过,但是打包之后的固件里面usr/share/没有qt5的文件夹。把 qt-easing.也选中之后依然没有qt5的文件夹。
然后我再尝试把qt-example选中,编译的时候报错qt-example缺少依赖库,这些库文件在qt-everywhere-opensource-src-5.12.9下的路径是存在的,所以我怀疑是不是路径引用的有问题,但是我不知道是哪里配置的这些引用;
还有一个问题是,群里的链接 https://debugdump.com/topic/944/%E5%9F%BA%E4%BA%8Ed1s%E7%9A%84qt5%E7%A7%BB%E6%A4%8D?lang=zh-CN 打不开了,不知道是什么问题,我想用里面的Makefile试试,不知道和群里的Makefile有什么区别。
----------------------------------------
改这个地址: https://bbs.aw-ol.com/topic/944/
最近编辑记录 哇酷小二 (2024-06-26 17:10:59)
离线
忘了之前的过程了...
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)
离线
@Gentlepig
感谢解答。这个问题我已经通过换另一个makefile解决了。
现在是遇到了另一个问题:
https://whycan.com/t_11119.html
这个问题暂时还没有办法解决。我还是先从交叉编译学习吧,了解了QT的编译过程可能再试集成编译可能更好些。
离线
lch922 说:暗水天狼 说:有朋友测试过Wayland吗?
这颗芯片不带GPU,wayland可以开启硬件加速吗?
只能g2d加速
请问大佬如何让qt支持g2d加速?
离线
@Gentlepig
问一下楼主,替换makefile之后可以使用sdk自带的qt了么
离线
@Gentlepig
问一下楼主,替换makefile之后可以使用sdk自带的qt了么
并不行,如果你用的是Tina 2.0或者芒果派的 SDK,还有很多坑等着你。
建议直接放弃集成编译,改用交叉编译工具单独编译QT,再用ADB之类的手段推到板子上调试。
离线
t113-s3 入门难度是真的大 ,看来要系统学习嵌入linux相关知识 文档里描述不全面
离线