开发平台:win10+虚拟机Ubuntu+4412 pop
第一步:
目标:手上没有触摸屏,只能用显示器,编写linux的hdmi内核,保存,之后可以看看驱动怎么编写的以及Qt的用户程序的移植,
前期工作
环境配置起来
内核编译需要什么东西
文件系统编译需要什么东西
虚拟机Ubuntu可以用迅为配置好的镜像安装,可以省不少事
安装交叉编译器(内核的编译器和 uboot 的编译器一样),但是文件系统的编译器 和 uboot 和 kernel 的 编 译 器 不 一 样
编译 QtE4.7 库使用的编译器是交叉编译器编译工具“arm-linux-gcc-4.3.2.tar.gz”,
Qt/E4.7.1 的 u-boot-iTOP-4412.bin、zImage 以及 ramdisk-uboot.img 和 Qtopia 通用,编译方法也一样。
它们的区别是“Qtopia”带有一个桌面系统,“Qt/E4.7.1”只是一个强大的库。
Qt/E4.7.1 使用的是 arm-linux-gcc-4.3.2.tar.gz是一个交叉编译器
交叉编译器:在宿主机上编译的程序可以在不同平台的目标系统上运行。(平台具有的两层含义:核心处理器的架构,所运行的系统)有三种情况(一个·相同,和都不同)
内核编译
1)找到 iTop4412_Kernel_3.0内核源码, 配置内核
2)内核目录下运行命令“cp config_for_ubuntu_hdmi .config” ,如果要配置内核,需要修改当前的配置文件(vim .config), (开发资料的293页)
3)然后执行make(内核的编译器和 Android4.0.3 的内核编译器一模一样(arm-2009q3)参照7.2.2 ,p272页,安装交叉编译器,有些操作需要root权限)
4)生成内核镜像,在当前内核目录的 : ls arch\arm\boot 可以看到zImage
文件系统编译
所需资料:4412光盘资料\08_源码_QtE以及qtopia2.2.0文件系统中的root_20150422.tar (文件系统源码)+ 编译工具 linux_tools.tgz(光盘资料\ 02_编译器以及烧写工具\tools)
安装编译器步骤
1) 拷贝压缩包到 (开发平台的)Ubuntu 系统的“/”目录下,注意目录是“/”
2)进入“/”目录,然后使用命令“tar -vxf linux_tools.tgz ”,将压缩包解压。
3)解压后如下图所示,在“/usr/local/bin/”目录下生成了两个文件。
编译文件系统
1)使用命令“cd /home/t用户/”进入 用户 目录,然后使用命令“mkdir Linux+QT” 新建一个“Linux+QT”文件夹,如下图所示
2)拷贝文件系统的源码至新建的文件夹
3) 使用命令“tar -vxf root_xxxx.tar.gz”解压压缩包,生成root文件夹
4)修改启动配置文件/etc/init.d/rcS(为了可以从qt界面启动)
5)然后修改/bin/qt4文件(在第一行后面添加),为了可以从hdmi输出显示
mv /dev/fb0/dev/fb0_bak
ln -s /dev/fb6 /dev/fb0
然后保存,退出
- 使用之前安装的编译工具编译文件系统,生成system.img,注意需要返回root文件夹的上一级,不然找不到
make_ext4fs -s -l 314572800 -a root -L linux system.img root
7)烧写zImage和system.img文件
烧写内核和文件系统
参考文档:6.2 OTG烧写工具
安装超级终端以及OTG烧写的驱动,在超级终端里面切换模式,之后通过otg刷系统,(驱动可以用驱动精灵安装)
一个使用232串口工具(需要转接)一个使用USB线(OTG)
超级终端工具进去uboot
进入uboot,按键启动直接按回车键
命令:
fdisk -c 0
创建 eMMC 分区并格式化。如果原来已经做过此步骤,则可以跳过,不必每次烧写前都分区和格
式化。在超级终端中,输入下面分区和格式化命令。
若之前分区过,则直接fastboot
注意,fastboot 命令需要与 PC 上的 USB_fastboot_tool 工具配套使用,而且 fastboot 命令需要进入uboot 模式中才能使用
OTG烧写
1)在 PC 机上运行“USB_fastboot_tool”–>“platform-tools”文件夹中的文件“cmd.exe”(cmd.exe 可执行文
件是 Windows 自带的命令行工具
2)一般不用烧写uboot文件,因为这是通用的程序,出厂前已经烧写了的
3)输入烧写 zImage 内核命令:fastboot.exe flash kernel zImage
4)输入烧写 ramdisk 命令:fastboot.exe flash ramdisk ramdisk-uboot.img
5)输入烧写 system 文件系统命令: fastboot.exe flash system system.img
6)输入擦除命令: fastboot -w
7)输入重启开发板命令: fastboot reboot
下一步规划:
qte库文件的编译和qt程序的移植
stem 文件系统命令: fastboot.exe flash system system.img
6)输入擦除命令: fastboot -w
7)输入重启开发板命令: fastboot reboot
下一步规划:
qte库文件的编译和qt程序的移植