韦东山开发板QT移植笔记

参考  《百问网精智JZ2440开发板4.3寸LCD版使用手册.pdf2015/12/29》
修改环境变量:
sudo vi /etc/environment
修改:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"
改为:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin/"

编译依赖库/work/GUI/qtopia/deps/jpegsrc.v6b.tar.gz
tar xzf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-shared --enable-static --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux --build=i386 --host=arm
make
make install-lib

编译依赖库/wok/GUI/qtopia/deps/e2fsprogs-1.40.2.tar.gz
mkdir build
cd build
../configure --with-cc=arm-linux-gcc --with-linker=arm-linux-ld --enable-elf-shlibs --host=arm -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
make
make install-libs

编译依赖库/wok//GUI/qtopia/deps/libpng-1.2.23.tar.bz2
tar xjf libpng-1.2.23.tar.bz2
cd libpng-1.2.23/
cp scripts/makefile.linux ./Makefile
修改 Makefile,以下是修改后的结果,都加上了“ arm-linux-”前缀:
AR_RC=arm-linux-ar rc
CC=arm-linux-gcc
……
RANLIB=arm-linux-ranlib
……
prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
make
make install

编译依赖库/wok/GUI/qtopia/deps/tslib-1.3.tar.bz2
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
在 make 之前,为了支持触摸屏修改 src/ts_read_raw.c 文件,如下修改代码:
char *defaulttseventtype="UCB1x00";
改为:
char *defaulttseventtype="H3600";
步骤如下:
vi src/ts_read_raw.c
为 了 防 止 出 现 “libtool:link: only absolute run-paths are allowed “ 的 错 误 , 在
plugins/Makefile 里面找 rpath,找到将其注释并加上绝对路径:
#LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`
步骤如下:
vi plugins/Makefile
/rpath
make
make install

使用补丁修改、编译 QT
/wok/GUI/qtopia 目 录 下 , qtopia-free-src-2.2.0.tar.gz 是 未 经 修 改 的 内 核 源 码 ,
qtopia-free-2.2.0_jz2440.patch 是针对 JZ2440 开发板的补丁文件。
tar xzf qtopia-free-src-2.2.0.tar.gz
cd qtopia-free-2.2.0
patch -p1 < ../qtopia-free-2.2.0_jz2440.patch
./configure -qte '-embedded -xplatform linux-arm-g++ -qconfig qpe -depths 16,24 -no-qvfb -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -lts' -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 240x320' -qt2 '-no-xft' -dqt '-no-xft'
make
make install

制作根目录:
sudo tar xjf fs_mini_mdev.tar.bz2
mv fs_mini_mdev fs_myqtopia
sudo chown book:book fs_myqtopia –R

复制依赖库:
cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/
cp libpng.so* /work/nfs_root/fs_myqtopia/lib/ -d
cp libjpeg.so* /work/nfs_root/fs_myqtopia/lib/ -d
cp libuuid.so* /work/nfs_root/fs_myqtopia/lib/ -d
cp libz.so* /work/nfs_root/fs_myqtopia/lib/ -d

安装触摸屏所依赖文件:
cd /work/GUI/qtopia/deps/tslib-1.3
make prefix=/work/nfs_root/fs_myqtopia/usr/ install
cp /work/nfs_root/fs_myqtopia/usr/etc/ts.conf /work/nfs_root/fs_myqtopia/etc/
cd /work/nfs_root/fs_myqtopia/etc/
vi ts.conf

复制字库:
cd /work/GUI/qtopia/qtopia-free-2.2.0/
mkdir image/opt/Qtopia/lib/ -p
cp -rf qt2/lib/fonts qtopia/image/opt/Qtopia/lib/
cp -rf qtopia/image/opt /work/nfs_root/fs_myqtopia

创建时区文件
cd /work/nfs_root/fs_myqtopia
mkdir -p usr/share/zoneinfo/
cp -rf /usr/share/zoneinfo/America usr/share/zoneinfo/
cp /usr/share/zoneinfo/zone.tab usr/share/zoneinfo/

建立一个脚本文件, 用来较验触摸屏
在单板根目录/bin 下建立 ts_cal.sh 文件,内容如下:
#!/bin/sh
export HOME=/root
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_KEYBOARD="TTY:/dev/tty1"
#export QWS_MOUSE_PROTO="USB:/dev/mouse0"
export QWS_MOUSE_PROTO="TPanel:/dev/ts0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/ts0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/share/ts/plugins
export TSLIB_TSEVENTTYPE="H3600"
/usr/bin/ts_calibrate
步骤如下:
vi bin/ts_cal.sh
chmod +x /work/nfs_root/fs_myqtopia/bin/ts_cal.sh

建立一个脚本文件, 用来运行 qtopia
在单板根目录/bin 下建立 qpe.sh 文件, 它用来设置环境变量、 启动 qtopia。 内容如下:
#!/bin/sh
export HOME=/root
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_KEYBOARD="TTY:/dev/tty1"
#export QWS_MOUSE_PROTO="USB:/dev/mouse0"
export QWS_MOUSE_PROTO="TPanel:/dev/ts0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/ts0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/share/ts/plugins
export TSLIB_TSEVENTTYPE="H3600"
if [ ! -e /etc/pointercal ]
then
/bin/ts_cal.sh
fi
$QPEDIR/bin/qpe &
步骤如下:
vi bin/qpe.sh

建立/root 目录:
mkdir -p /work/nfs_root/fs_myqtopia/root

修改根文件系统的启动脚本:
mkdir -p /work/nfs_root/fs_myqtopia/tmp
vi /work/nfs_root/fs_myqtopia/etc/fstab
加入:tmpfs /tmp tmpfs defaults 0 0
最后,修改启动脚本/work/nfs_root/fs_qtopia/etc/init.d/rcS,在最后加入以下一行:
/bin/qpe.sh &
还要修改它的属性:
$ chmod +x /work/nfs_root/fs_qtopia/bin/qpe.sh
步骤如下:
vi /work/nfs_root/fs_myqtopia/etc/init.d/rcS
chmod +x /work/nfs_root/fs_myqtopia/bin/qpe.sh

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.113:/work/nfs_root/fs_myqtopia ip=192.168.1.17:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 user_debug=0xff
nfs 30000000 192.168.1.113:/work/nfs_root/uImage_4.3 ; bootm 30000000

程序编译:
export QTDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qt2
export QPEDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qtopia/
export QMAKESPEC=/work/GUI/qtopia/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/
$QPEDIR/bin/qmake
cp ./helloworld.png /work/nfs_root/fs_myqtopia/opt/Qtopia/pics/
cp ./helloworld /work/nfs_root/fs_myqtopia/opt/Qtopia/bin/
cp ./helloworld.desktop /work/nfs_root/fs_myqtopia/opt/Qtopia/apps/Applications/

挂载U盘和SD卡
mount /dev/sda1 /root/Applications/Dictionary

mount /dev/mmcblk0p1 /mnt

 

到此QT移植成功

有图有真相,现在把实验图片上传上来:

但是这里有一个问题,就是这里的音乐播放器不能够播放SD卡了的音乐,浏览也不行,我把SD卡挂载到/mnt目录已经成功了,但是音乐确实播放不了

这一点有待研究!

这里把最后得到的更文件目录和内核上传上来:

http://download.csdn.net/detail/chengdong1314/9382353

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36247.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017-韦东山视频学员成果精选(一)

首发平台&#xff1a;威信订阅号baiwenkeji 去年11月18日我们举办了学员心声有奖征集活动&#xff0c;共收到100多封邮件&#xff0c;我们挑选了30多篇写的比较走心的&#xff0c;整理后陆续分享给大家。今天是第1篇。 给大家看这些心声有几个目的&#xff1a; 1. 看看师兄师…

2017-韦东山视频学员成果精选(二)

首发平台&#xff1a;微信公众号baiwenkeji 又到周四, 又到了推送学员成果的时间。上次的推送反馈不错&#xff0c;希望这次能再带来你收获。 再次明确目的&#xff1a; 1. 看看师兄师姐们的学习过程。哪些知识点重要&#xff0c;哪些可以先放过。 2. 看看过来人怎么以实用…

韦东山学习笔记——UART(串口)的使用

基于jz2440的串口使用 搬砖的文章概述UART的发送和接收串口之间的数据传输UART的用途串口的数据帧参数说明起始位数据位奇偶校验位停止位波特率 怎么发送一字节数据&#xff0c;比如‘A‘?UART的优缺点优点缺点 UART相关配置寄存器ULCONn&#xff1a;线路控制寄存器UCONn&…

来自韦神的降维打击

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 能与这样一个不修边幅的&#xff0c;如此年轻的大神&#xff0c;生活在一个时代&#xff0c;听他的故事是一种享受。网传近日韦神帮6个博士团队解决了4个多月都没有解决的难题。 大家应该都听说北…

分享一些新型AI工具让你大开眼界

我打赌99%的人都不熟悉这些工具中的任何一个 在数字化时代&#xff0c;人工智能已经成为推动企业成功的关键驱动力。因此&#xff0c;越来越多的企业正在探索如何将AI技术应用于他们的业务中。随着人工智能技术的不断发展&#xff0c;AI相关的工具和技术的应用场景也变得越来越…

微软 Office 全家桶被 GPT-4 革新:Word 一键变成 PPT,打工人的春天来了!

作者 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 这一周的科技圈异常地热闹&#xff0c;且多数都是大模型给的&#xff1a; 周二晚间&#xff0c;OpenAI 突然上线 GPT-4 最强大模型&#xff0c;以多模态的能力震惊四座&#xff1b; 周四下午&#x…

同样将AI装进“办公全家桶”,Microsoft 与 Google有何不同?

继GPT-4发布之后&#xff0c;北美时间3月16日&#xff0c;微软在“The Future of Work With AI”大会上发布了Microsoft 365 Copilot&#xff0c;再次掀起一股科技圈浪潮。 据介绍&#xff0c;Microsoft 365 Copilot是一种基于大语言模型开发的AI产品&#xff0c;功能类似ChatG…

【无标题】ONLYOFFICE7.3版本新函数CHOOSEROWS和CHOOSECOLS的正确使用方法

有很多朋友在工作中都会遇到函数公式不会做或者忘记的问题&#xff0c;今天就来给大家看一看ONLYOFFICE7.3版本更新后的新函数CHOOSEROWS和CHOOSECOLS的正确使用方法&#xff0c;全程干货记得保存。 ONLYOFFICE ONLYOFFICE是一款国际开源的免费办公软件&#xff0c;不仅支持日常…

分享一下自己做电影解说的步骤流程和经验,小白必看!

因为工作的关系&#xff0c;视频制作剪辑之类的工作那是经常做&#xff0c;看到有不少朋友好像对这个挺感兴趣的就给大家分享一下&#xff0c;希望可以帮助大家。 文章涉及三个部分&#xff1a; 目录 一、整体流程 二、我遇见过的难点和解决办法 三、整理的工具汇总 一、整…

chatgpt赋能python:Python从后往前读文件:如何处理大数据文件

Python 从后往前读文件: 如何处理大数据文件 Python 是一种非常流行的编程语言&#xff0c;常用于处理大量的数据。在处理大数据文件时&#xff0c;Python提供了一种读取文件的方法&#xff0c;可以从后往前读取文件&#xff0c;这种方法在处理大量数据时非常有用。本文将介绍…

微信称不会推出「已读」功能;马斯克宣布成立 AI 公司 xAI;GPT-4 架构曝光,有 1.8 万亿参数|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

亚马逊裁员9000人、OpenAI估值已达290亿美元、首例涉虚拟数字人侵权案

一、2023-04-27&#xff0c; 亚马逊裁员9000人 这是亚马逊第二次裁员了。亚马逊的第一次裁员始于去年11月&#xff0c;持续两个多月&#xff0c;裁员了18000人&#xff0c;规模在所有IT公司里面是最大的。 但是这样一次裁员&#xff0c;造成了很多内部高层领导的不满。因为亚马…

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(二)...

“ 介绍神经网络的基本概念和结构&#xff0c;讨论训练实践、技巧以及网络规模的大小对模型能力的影响。同时介绍嵌入&#xff08;Embeddings&#xff09;概念&#xff0c;将高维数据映射到低维空间。通过本文&#xff0c;您将对神经网络有更深入的理解&#xff0c;有助于后面理…

给ChatGPT搞双眼睛,《流浪地球2》MOSS有影儿了

允中 发自 凹非寺量子位 | 公众号 QbitAI 上线不到一周日活跃用户破百万&#xff0c;2个月破亿…… OpenAI的AI聊天机器人ChatGPT火爆全球&#xff0c;成为现象级消费类AI应用&#xff0c;并由此引发新一轮的AI竞赛。 率先卷起来地&#xff0c;当属搜索赛道&#xff1a; 谷歌发…

影视解说文案哪里找?

找到电影解说文案有以下几种方法 1、自己撰写电影解说文案 需要一定的写作水平&#xff0c;如果水平不高&#xff0c;即使辛辛苦苦花大量时间写出来也很难上热门。 2、找专业写手代写解说文案 这种方式两个字烧钱&#xff0c;找别人写解说文案稿2000字~3000字&#xff0c;大…

RM奖励模型

本篇将介绍InstructGPT的RM过程&#xff0c;也就是reward model的训练&#xff0c;废话不多说&#xff0c;直接上干货。 RM(Reward Model)模型 这里引入RM模型的作用是对生成的文本进行打分排序&#xff0c;让模型生成的结果更加符合人类的日常理解习惯&#xff0c;更加符合人…

藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)

AGI的火种正在燎原。 一面是无可否认的AI生产力&#xff0c;正在赋能千行百业&#xff1b;而另一面&#xff0c;这团火似乎烧向了我们不可控的隐秘角落。 在《AI百态&#xff08;上篇&#xff09;——ChatGPT的“N宗罪”》中&#xff0c;我们提到监管重锤在落下&#xff0c;意大…

人工智能写恋爱情话,省时不费脑,也用心(带教程)

用ChatGPT写情话就是让电脑来帮你写一些浪漫的话&#xff0c;比如表达你对恋人的爱意、想念之情等等。这种技术叫做自然语言生成&#xff0c;它会根据你给出的主题、口吻和语气等因素&#xff0c;自动生成一段与之匹配的情话或情书。 借助ChatGPT写情话&#xff0c;可以让普通人…

chatgpt赋能python:Python语录:解读Python最流行的语言之一

Python语录&#xff1a;解读Python最流行的语言之一 Python是一种简单易用、高效的编程语言&#xff0c;它在全球范围内广泛应用&#xff0c;是最流行的编程语言之一。使用Python进行编程可以提高生产力、节省时间和精力。Python语言有许多优秀的开发者、工程师、爱好者和用户…

英语学习-29190410雅思图表作文写作--line grapgh

主要参考来源&#xff1a;https://www.bilibili.com/video/av23014883?p2 Simon雅思 四段式&#xff1a;introduction overview details details 【no conclusion or opinions】 introduction:直接阐述图描述的内容 overview:找最直观的。一般两句 details:对于曲…