大家好,欢迎前来讨论
这篇文章介绍的是qt5.6在jz2440单板上的移植过程
..........................................................2018.3.27重新排版.............................................................................................................................
一、实验环境
(1)编译工具链
arm-Linux-gcc-4.4.3.tar.gz
下载地址:http://www.arm9.net/download.asp
(2)u-boot
u-boot-2012.04.01
u-boot-2012.04.01_100ask.patch
(3)linux_kernel
linux-3.4.2
linux-3.4.2_100ask.patch
(4)虚拟机
韦老大_9.10-Ubuntu
(5)busybox
busybox-1.22.1.tar.bz2
(6)tslib
tslib-1.4.tar.gz
(7)qt5.6 源码
qt-everywhere-opensource-src-5.6.0.tar.gz
(8)S3C2440开发板
JZ2440
二、更换交叉编译器
cd /work/tools/
sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C / #展开在根目录_sudo 创建/opt/FriendlyARM/toolschain/4.4.3/bin
ls /opt/FriendlyARM/toolschain/4.4.3/bin #检查是否生成了编译目录
修改环境变量
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:/opt/FriendlyARM/toolschain/4.4.3/bin"
重启使/etc/environment生效
或者执行下面命令
source /etc/environment source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
同时为所有用户增加环境变量
sudo vim /etc/profile
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/binsource /etc/profile
查看版本
arm-linux-gcc –v
gcc version 4.4.3 (ctng-1.6.1)
sudo su
arm-linux-gcc –v
gcc version 4.4.3 (ctng-1.6.1)
exit
三、编译u-boot
tar xjf u-boot-2012.04.01.tar.bz2
cd u-boot-2012.04.01/
patch -p1 < ../u-boot-2012.04.01.path
vi include/configs/smdk2440.h
因为坏块问题修改uboot中include/configs/smdk2440.h中MTDPARTS_DEFAULT 使内核分区为4M。
make smdk2440_config
make
四、编译内核
cd /work/system/
tar xjf linux-3.4.2.tar.bz2
patch -p1 < ../linux-3.4.2_skk.patch #我的补丁 也可以使用韦老大补丁
cp config_ok .config
修改linux-3.4.2/arch/arm/mach-s3c24xx/common-smdk.c的smdk_default_nand_part函数,内核分区改为4M
make uImage #时间够洗个澡 不要傻等
.
.
.
.
编译完的uImage 在 /arch/arm/boot 目录下
五、制作文件系统
1、解压
tar jxvf busybox-1.22.1.tar.bz2
2、配置
Busybox Settings ->
general configuration ->
[*] don't use /usr //选中它 否则会破坏虚拟机
build options->
cross comliler prefix = arm-linux- //选择交叉编译工具
installtion options->
busybox installation prefix = /work/my_rootfs //指定安装路径
3、编译&安装
mkdir -p /work/my_rootfs //安装路径
make
make install
cd /work/my_rootfs
ls //查看是否安装成功
编译安装完毕之后,我们的文件系统就生成在 /work/my_roofs 目录下了
4、创建 /etc/inittab
mkdir -p /work/my_rootfs/etc
vi /work/my_rootfs/etc/inittab
# /etc/inittab
# 启动脚本/etc/init.d/rcS
::sysinit:/etc/init.d/rcS
# 启动 shell
::askfirst:-/bin/sh
# 重启关机前 卸载文件系统
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
5、创建 /etc/init.d/rcS
mkdir -p /work/my_rootfs/etc/init.d
vi /work/my_rootfs/etc/init.d/rcS
# 这是一个脚本文件,用/bin/sh解析
#!/bin/sh
ifconfig eth0 192.168.1.7
# 挂载文件系统
mount -a
# 使用内存文件系统
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
# 设置IP
#/sbin/ifconfig eth0 192.168.1.17 #nfs不需要
# 挂载 /etc/fstab 中的文件系统