对iTop-4412开发板系统搭建的菜鸟问题解答

4412开发板可以提供linux+QT、Android、ubuntu等多种系统;

提供的视频资料中说明了3种环境的搭建,对其概览有一个简单的了解。

1、首先什么是镜像文件:将源代码编译链接后形成的可执行文件包,开发板的芯片可以加载运行。

2、android环境的搭建:在开发板上烧写好android操作系统,同时在自己的windows系统下安装android的开发环境,一般是安装ecolipse+jdk;开发的时候使用otg线可以进行调试,所以在这个开发板上的调试方法与用自己手机进行调试是一模一样的,可以理解为开发板就是一部手机或者PAD。

3、linux+QT环境的搭建:这里的linux是哪种?,因为后面还有一种ubuntu的操作系统

4、TF卡烧写和OTG的方式都可以烧写linux-qt和android系统

5、OTG烧写方式非常简单,直接使用fastboot工具将相应的uboot文件,zimage内核文件,以及系统文件copy到emmc中了,之后重启就可以了;

6、TF烧写卡建议购买Class10 系列正品TF卡,容量至少2G,也不是越多越好,貌似ubuntu就是要恰好2G

7、TF烧写卡制作后可以重复使用,制作的步骤为 1、使用开发板在uboot模式下将TF卡分区(?为什么要分区呢);2、使用PC机烧写uboot文件到TF卡,先copy到TF卡上,然后解压缩;3、兴建sdupdate文件夹,将镜像文件拷到该文件夹中(含有zimage、ramdisk.img、system.img);4、使用TF卡在开发板上烧写,通过超级终端发送命令

8、linux与android环境烧写的uboot文件是一样的,都是u-boot-iTOP-4412.bin,这个文件应该是与硬件相关的,Linux-QT 系统中 Uboot 呾 Android4.0.3 癿 Uboot 源码是通用癿,编译环境呾编译方法也一样。Linux-QT 系统中 Linux 内核呾 Android4.0.3 中癿 Linux 内核源码是一样癿,编译环境呾
编译方法也一样。仅仅是编译癿旪候使用癿配置文件".config "丌一样
      u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建         立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操       作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。(网络查找得到的解释)

9、ubuntu环境搭建:使用TF卡烧写ubuntu,ubuntu对TF卡的要求较高,需要先测试TF卡的速度;

10、如果emmc的uboot文件损坏,无法对TF卡分区,采用如下方法:我的理解是在PC机上拷贝uboot文件到TF卡中,然后make生成uboot文件,之后将开发板设置成从SD卡加载uboot,这样就将TF卡中的uboot文件加载到内存中,然后执行分区命令,将TF卡分区;我的疑问是分区后TF卡中之前的文件还在么?之后的步骤跟7相似。我另外的一个疑问是给TF卡烧写uboot解压了android源码文件夹中的iTop-4412_uboot_xxx.tar.gz,又添加u-boot-iTOP-4412.bin;为什么要添加这两个文件呢?u-boot-iTOP-4412.bin不就是uboot文件么,为什么还要另外一个? ;难道uboot文件分为多个部分,u-boot-iTOP-4412.bin文件时与硬件相关的,多个系统通用的,而另外一个文件时对于android或者linux或者ubuntu都不相同的文件,两者组合在一起才是完整的uboot文件。

11、apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统,所以使用这条命令的前提是计算机正常联网。

-----------------------------------前面是开发板上的环境搭建,后面是PC上面的环境搭建----------------------------------------

1、交叉编译的概念:交叉编译指的是执行编译任务的宿主机和执行目标程序的目标机的平台不一样,由宿主机执行编译任务,然后将目标代码传送到目标机运行;这个平台不一样针对几种情况,操作系统不同或者是cpu的体系结构不同,比如同是x86的芯片一个是windows一个是linux或者同是linux的系统,一个是x86一个是arm。
       编译工具链一般最简化的为 binutils + gcc + glibc + kernel-header 组合的环境。
2、pc上面ubuntu系统下搭建开发环境的基本步骤,1.安装交叉编译工具 2.修改环境变量 3.安装目标系统的库文件 4.编译uboot和kernel
3、使用手册介绍的一种程序开发方式1.在pc上面的linux使用gcc编译得到执行文件 2.使用ssh将文件拷贝到adb目录下 3.在cmd下使用adb命令将执行文件上传到开发板 4.使用超级终端执行文件;这种方式对应的android操作系统。
4、内核就是控制硬件的东西;小型的操作系统需要有硬件(cpu 硬盘 内存 )+核心(kernel 含有cpu流程 内存管理 磁盘输入输出)+与用户沟通的界面(文字界面shell 图形界面kde)就可以了。
5、kernel可以控制各个硬件的工作;有一个疑问:在于同一个kernel如何适应不同架构的cpu,难道是用针对的编译器编译内核,转换成目标系统的可执行文件,就是我们常说的编译内核么?
6、linux的硬件需求低、系统稳定性强、架构开放等优点。我现在存在的核心问题是不理解操作系统职能的具体执行方式,它是如何为其他软件提供服务的,基于此再去理解它调用硬件的方式,然后与我们在裸机上开发程序进行对比,比较操作系统与裸机开发的不同。
7、GNU自由软件的意思, 其实 usr 是 Unix System Resource,我之前以为是用户;home文件夹下面才是用户;var文件夹下记录默认服务器的登录文件
8、linux中如果文件名前面多一个 点 . 说明这个文件是隐藏文件;chgrp chown chmod
9、 linux中的文件不同于windows,文件后面的后缀没有作用;常见的复杂文件格式都有特定的文件头,可认为是一个“Magic Number”,Linux的file命令通过读取这个头部可以判断文件的类型。
10、linux系统下各种lib的区别:
/lib 系统本身需要用到的库文件,也就是系统使用的库文件
/usr/lib 随系统安装的应用软件用到的库文件,也就是应用程序的库文件
/usr/local/lib 用户自己安装的软件用到的库文件——当然,少数情况下,随系统安装的应用软件的库文件也可能会装到这里。
在ubuntu下,直接通过apt-get安装的软件一般会在/usr下面,自己编译安装的软件(或者通过一些其他的非官方途径)会在/usr/local下面
11、linux环境变量说明的博客:http://www.cnblogs.com/mengyan/archive/2012/09/04/2669894.html
12、硬盘文件的存放方式:1.block中存放文件数据 2.inode存放文件属性以及文件存放在哪个block之类的信息;所以linux系统在读取文件时,开始要在inode中寻找文件存放在哪个区域。
13、linux中的链接方式:硬链接,直接连接到block块,特点:不能链接目录(目录本身仅消耗inode),不能跨文件系统(因为不同文件系统有不同的inode table);符号链接:新建一个文件,会让数据读取操作指向链接的文件。 有个问题我没有搞清楚:目录文件在硬盘中的存储方式是怎样的?书中说目录文件仅消耗inode,那么系统是如何知道某个目录下面有其他的目录或者文件的呢?


你可能感兴趣的:(对iTop-4412开发板系统搭建的菜鸟问题解答)