平台:jz2440

作者:庄泽彬(欢迎转载,请注明作者)

交叉编译工具:arm-linux-gcc (GCC)4.4.3

linux:linu3.4.2

PC环境:ubuntu18.04

一、修改/opt/FriendlyARM/toolschain/4.4.3arm-none-linux-gnueabi/sys-root/usr/include/linux/input.h,将EV_VERSION改为0x010001

二、制作文件系统

2.1解压busybox

 tar -xvf busybox-1.20..tar.bz2

2.2设置交叉工具链

 make menuconfig

编译:

 make 

创建安装的目录:

 mkdir -pv /work/nfs_root/qt/fs_mini_install

安装:

 make install CONFIG_PREFIX=/work/nfs_root/qt/fs_mini_install

查看是否安装成功:

 zhuang@zhuang:/work/nfs_root/qt/fs_mini_install$ tree -L
.
├── bin
├── linuxrc -> bin/busybox
├── sbin
└── usr directories, file

从交叉工具链安装glibc:

 mkdir lib usr/lib
cp /opt/FriendlyARM/toolschain/4.4./arm-none-linux-gnueabi/lib/*.so* lib/ -d
cp /opt/FriendlyARM/toolschain/4.4.3/lib/*.so* lib/ -d

创建etc目录:

 mkdir etc

在etc目录下创建inittab文件:

 vim inittab     //内容从第2行开始
# /etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
tty1::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

在etc目录下穿件init.d/rcS文件:

 mkdir init.d
vim init.d/rcS
chmod a+x init.d/rcS //内容如下
#!/bin/sh mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

在etc目录下创建fstab文件:内容如下:

 # device     mount-point    type   options        dump  fsck order
proc /proc proc defaults
tmpfs /tmp tmpfs defaults
sysfs /sys sysfs defaults
tmpfs /dev tmpfs defaults

创建dev目录:

 mkdir dev
sudo mknod console c
sudo mknod null c

创建其他目录:

 mkdir proc tmp mnt sys root

将fs_mini_install目录制作成文件系统镜像命令:

 mkfs.jffs2 -n -s  -e 128KiB -d fs_mini_install -o fs_mini_install.jffs2

 三、tslib的移植

 tar xzf tslib-1.4.tar.gz
cd tslib
./autogen.sh mkdir tmp
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp
make
make install

安装:

 cd tmp
cp * /work/nfs_root/qt/fs_mini_install/usr/local/tslib/ -rf

修改tslib:

 修改 /etc/ts.conf第1行(去掉#号和第一个空格):
# module_raw input
改为:
module_raw input

测试:

设置环境变量

 vim etc/profile    //内容从第2行开始
#!/bin/sh export T_ROOT=/usr/local/tslib export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export POINTERCAL_FILE=/etc/pointercal export TSLIB_CALIBFILE=/etc/pointercal

运行校准测试例子:

 cd /usr/local/tslib/bin
./ts_calibrate

五、移植QT

下载链接qt5.6:https://download.qt.io/archive/qt/5.6/5.6.0/single/

解压:

 tar -xvf qt-everywhere-opensource-src-5.6..tar.gz

修改配置文件:

 vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
修改或添加如下内容:
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ -lts # modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config) QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t

配置命令:

 ./configure  -prefix /usr/local/Qt5.   -opensource   -release   -confirm-license   -xplatform linux-arm-gnueabi-g++   -shared   -qt-zlib   -no-gif   -qt-libjpeg   -no-nis   -no-opengl  -no-iconv -no-cups   -no-glib   -no-dbus   -no-rpath   -no-sse2 -no-sse3 -no-ssse3 -no-sse4. -no-sse4.   -no-avx    -no-openssl   -nomake tools   -qreal float   -qt-libpng   -tslib   -nomake examples   -I /usr/local/tslib/include   -L /usr/local/tslib/lib

编译和安装:

 make -j4
make install

修改下面这个文件为截图的内容

  vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

将生成的/usr/local/Qt5.6 移植到开发板的文件系统

 cp /usr/local/Qt5./ /work/nfs_root/qt/fs_mini_install/usr/local/ -raf

开发板/etc/profile添加如下内容:

 export QTEDIR=/usr/local/Qt5.
export LD_LIBRARY_PATH=/usr/local/Qt5./lib:$LD_LIBRARY_PATH
export QT_QPA_GENERIC_PLUGINS=tslib
export QT_QPA_FONTDIR=$QTEDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=480x272:mmSize=480x272:offset=0x0:tty=/dev/tty1
export QT_QPA_FB_TSLIB= export T_ROOT=/usr/local/tslib export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH

六、安装QTCreator开发工具

下载链接:http://download.qt.io/archive/qt/5.10/5.10.0/

安装:

  sudo chmod a+x qt-opensource-linux-x64-5.10..run
./qt-opensource-linux-x64-5.10..run

安装的方法非常简单记得在一路next选择默认的即可,记得在选择组件的时候两个都勾上,把工具全部都安装上去把。

 设置QT的工程可以在arm开发上运行,自己新建一个工具,之后根据截图的箭头设置:

 交叉工具链的位置根据自己的目录进行调整

之后编译自己的项目,把程序推送到板子:

jz2440移植QT5.6【学习笔记】【原创】的更多相关文章

  1. jz2440存储管理实验【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 简介:先来简单的说明一下这次的实验,看看下图,我们的程序通过烧录器下载到nandflash当中去,之后在启动的时 ...

  2. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  3. NXP NFC移植及学习笔记(原创)

    NFC功能介绍 NFC 目前使用的三种功能: 1. P2P模式:基于LLCP协议的基础上,以NDEF数据交换格式来通信. 2. 读写模式:当作为读卡器,对NFC Tag的读写. 3. 卡模拟模式:模块 ...

  4. Angular源代码学习笔记-原创

    时间:2014年12月15日 14:15:10 /** * @license AngularJS v1.3.0-beta.15 * (c) 2010-2014 Google, Inc. http:// ...

  5. Python爬虫框架Scrapy学习笔记原创

     字号 scrapy [TOC] 开始 scrapy安装 首先手动安装windows版本的Twisted https://www.lfd.uci.edu/~gohlke/pythonlibs/#twi ...

  6. jz2440-linux3.4.2-kernel移植【学习笔记】【原创】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 linux:linu3.4.2 PC环境:ubu ...

  7. jz2440-uboot-201204版本移植【学习笔记】【原创】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 PC环境:ubuntu18.04 一.uboot ...

  8. 移植madplay到jz2440【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC) 3.4.5 PC环境:ubuntu16.04 一.移植ma ...

  9. LwIP学习笔记——STM32 ENC28J60移植与入门

    0.前言     去年(2013年)的整理了LwIP相关代码,并在STM32上"裸奔"成功.一直没有时间深入整理,在这里借博文整理总结.LwIP的移植过程细节很多,博文也不可能一一 ...

随机推荐

  1. IO流(1)File类构造方法

    构造方法: * File(String pathname):根据一个路径得到File对象 * File(String parent, String child):根据一个目录和一个子文件/目录得到Fi ...

  2. python center() 函数

    center Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串.默认填充字符为空格. 语法 center()方法语法: str.center(widt ...

  3. 定时任务,AlarmManager使用

    CoderLt   定时任务,AlarmManager使用 项目需要:实现一个定时提醒的功能 查阅资料知道,需要使用AlarmManager AlarmManager介绍: AlarmManager是 ...

  4. MyEclipse10.0 注册破解步骤

    MyEclipse 10.0破解 激活(java编写,适用于装有java环境的各种操作系统,Windows,Linux,MacOS) =====[方法一]=====[第一步]:输入任意用户名[第二步] ...

  5. vuex使用

    1.装包:npm install vuex -S 2.引入:import Vuex from 'vuex'      //这些都是写在man.js中 3.加载到Vue中:Vue.use(Vuex) 4 ...

  6. phpStudy安装

    以下一直默认安装 访问地址:http://127.0.0.1/vue/2.html

  7. git pull报错,error: cannot lock ref导致拉流失败

    使用git命令删除相应refs文件,git update-ref -d refs/remotes/XXX,或者手动删除文件 简单粗暴强行git pull,执行git pull -p 原文:https: ...

  8. python-字符串前面添加u,r,b的含义

    u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, ...

  9. Django初级手册1-项目和应用的创建与简单的数据库操作

    创建项目 django-admin.py startproject mysite 1. 目录结构 mysite/ #项目的名称 manage.py #可通过命令和项目进行交互的文件 mysite/ # ...

  10. mysql utf8编码设置

    1.建立数据库时指定数据库db_test为utf8编码.: create database db_test character set utf8;  修改数据库db_test编码的命令为: alter ...