折腾了很久,终于烧写成功。不废话,咱们说说流程吧。
首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取。
然后解压:
1、tar -xvf linux-3.5 ....
然后cp tiny4412-android_deconfig .config
接下来make zImage 在 arch/arm/boot/生成对应的zImage ,这个也就是我们的kernrl。
当然在此之前,我们需要安装交叉编译工具arm-linux-gcc。没有的话就装上这个环境,arm-linux-gcc-4.5.1-v6-vfp-20120301(过程略)
2、下来安卓文件系统
从友善之臂官网下载对应的安卓文件系统,我下的是安卓5.0:android-5.0.2-fs-20150325.tar.gz
同样的用tar 命令解压。
1、到安卓主工程目录下,如图:
2、然后在命令行下输入. setenv后会出现:
生成相应的环境配置脚本
3、接下来lunch full_tiny4412-eng:
获取版本信息以及相应的安卓工作和命令等等。。。
4、接下来就是直接在工程下敲make -j4
系统就会开始编译啦,漫长的等待............(如果你电脑好的话,4核也需要编译5-6个小时的时间)
5、编译成功后./gen-img.sh执行这个脚本会生成安卓的img,如果执行出错的话就去安装uboot的mkimage工具。
具体如下,到官网去下载uboot_tiny4412-20130729.tgz
然后以下步骤:
tar xzf uboot_tiny4412-20130729.tgz
cd uboot_tiny4412/
make tiny4412_config
make
sudo cp tools/mkimage /usr/bin/
6、生成的img有
ramdisk-u.img 、 system.img 、 userdata-4g 、 还有其它,我们主要需要前面这三个加上上面的zImage就可以了,
还有我们还需要Superboot4412、FriendlyARM.ini这两个文件,最前面那个是bootloader,后面那个是下载的配置脚本。
准备完成后,接下来:(以下是copy网友的,有侵权请联系我注明,谢谢。)
、使用SD-Flasher工具烧写Superboot到SD卡
本步骤将执行以下操作:
SD-Flasher.exe会对SD卡进行分区,第一个分区为130M用于存放Superboot4412,剩下的空间格式化为FRIENDLYARM分区,用于存放系统文件images。有些小于256M的SD卡是无法使用的,我们推荐使用至少4G的SD卡。
以下是详细步骤,基于Windows7环境:
Step1:打开光盘tools目录,解压SD-Flasher-1327.7z得到SD-Flasher.exe烧写软件,启动它,请注意,你需要通过管理员身份来打开该软件才行,如图
启动SD-Flasher.exe软件时,会弹出“Select your Machine...”对话框,请在其中选择“Mini4412/Tiny4412”项:
点Next后将弹出SD-Flasher主界面,点击一下Scan,将列出你的SD卡,选中它,然后点“ReLayout”对SD卡进行分割,注意,本操作会将SD卡内的数据清空然后重新分区。
分割完成后,再点一下“Scan”,你会看到Available已变为可用状态,表示已分割完成:
Step2:点按钮找到所要烧写的Superboot4412.bin(默认位于光盘images/目录下,如光盘目录已移动过,注意不要放在中文目录下),如图:
Step3:点“Fuse”,Superboot4412.bin就会被安全地烧写到SD卡的无格式区中了,以后你再使用SD-Flasher制作SD卡时,无需再执行ReLayout操作,FAT32分区中的数据会得以保留。
Bootloader被写入SD卡后是无法看到的,该如何检测呢?
方法是把SD卡插到已连接串口的开发板上,并把开发板上S2开关设置为“SDBOOT”模式,开机后,串口上有信息输出,例如:
表示Bootloader已被写入SD卡,如果串口没有输出,说明没有烧写成功。
以下几种原因均有可能导致不行,并有解决方法:
1.使用了笔记本自带的读卡器,建议使用外接的usb读卡器,注意,有的外接usb读卡器也是不行的
2.使用了山寨的SD卡,请使用正品,最好是4G或以上的SDHC
3.使用了microSD+卡套,请使用普通的SD卡,因为卡套的方式非常容易导致接触不良
4.因接触不良导致无法使用SD卡启动的可能性比较大,建议多插拔几次试试,这包括(1)核心板和底板的接触,(2)SD卡座本身的接触
1.2、注意事项
由于用户一般都会使用SD卡来存放一些其它的数据,因此,基于此考虑,SD-Flasher软件在Vista/Winows7中运行时,会把SD卡自动分割为普通的FAT32格式区(自动命名卷标为“FriendlyARM)和无格式区(占130M)两部分,烧写软件将会依据卷标名称作为标志,把bootloader烧写到无格式区,这样就不会破坏普通FAT32格式区中的数据了。
实际上,Vista/Windows7系统本身的安全性很高,普通用户是无法在Vista/Windows7系统上强制烧写SD卡的,因此必须要先分割才能写入。
另外,烧写Superboot4412.bin请务止使用Windows7运行SD-Flasher来操作,如果使用Windows XP,可能会烧写失败导致无法通过SD卡启动。
1.3、复制光盘的images目录到SD卡上
如需要使用SD卡脱机烧写系统功能,则可以将光盘上的images目录整个拷贝到SD卡的根目录下:
2、Linux环境下超级终端的配置(以minicom为例介绍)
想要对嵌入式开发板进行开发和操作,都需要进行文件传输或者是控制,这时基本都是需要通过串口线或者是网线进行连接的,在Windows下是使用超级终端通过串口对开发板进行操作的,而在Linux下,最后最常见的串口调试工具就是minicom。minicom的安装过程还是比较简单的,对于操作过程也就是一个熟悉的过程,在其中的操作都是字符界面下的,只要知道熟悉,就能熟练运用了。
2.1、minicom的安装
在终端中输入sudoapt-get install minicom安装。
2.2、minicom的配置
第一次启动前,在终端中输入sudo minicom -s,对minicom进行第一次的配置。在弹出的对话框内,选择Serial port setup一项,
然后按下a键,修改为/dev/ttyUSB0,就是选择了UART0,然后按下回车;再按e,修改为115200 8N1,设置传输的比特率等设置,然后按下回车;再按f,把Hardware Flow Control修改为No,然后按下回车。再在刚才的主菜单中选择Save setup as dfl,保存为默认配置,最后选择Exit from minicom,退出配置菜单。
或者选择Exit直接进入minicom:
3、使用SD卡脱机烧写Linux系统
注:此步骤假设你的SD已经烧写了Superboot4412.bin,并且从光盘中拷贝了相应的烧写文件到SD卡上,拷贝方法是将光盘中整个images目录拷贝到SD卡的根目录下。
3.1、修改烧写配置信息文件
把SD卡插入电脑,双击打开”imagesFriendlyARM.ini”文件,将FriendlyARM.ini的内容修改成如下内容(默认已经如此):
#This linecannot be removed. by FriendlyARM(www.arm9.net)
CheckOneButton=No
Action = Install
OS = Linux
LowFormat = No
VerifyNandWrite= No
LCD-Mode = No
CheckCRC32=No
StatusType =Beeper | LED
###################Linux ####################
Linux-BootLoader= Superboot4412.bin
Linux-Kernel =Linux/zImage
Linux-CommandLine= root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200 init=/linuxrcctp=2
Linux-RamDisk =Linux/ramdisk-u.img
Linux-RootFs-InstallImage= Linux/rootfs_qtopia_qt4.img
注意,使用Tiny4412SDK 1308底板的用户,Android-CommandLine上还要加上uhost0=y,在使用Tiny4412SDK 1306底板的用户则无需指定。
使用电阻屏的用户,需要在Linux-CommandLine上,设置ctp=0及skipcali=n。
底板的版本在这里查看:
3.2、检查烧写文件是否齐全
检查SD上至少存在如下文件,如果没有,从光盘中拷贝到SD卡(将光盘的images目录整个目录拷到SD卡的根目录即可):
3.3、SD卡脱机烧写
取出SD卡插到开发板的SD插槽上,参照下图把开发板串口线和电源线接好,将S2开关切换至SD卡启动,
然后上电开机,开始烧写系统时,LCD和串口终端会有进度显示。
烧写系统过程中,开发板“滴”一声,表示开始烧写系统,当发出两声“滴”,此时系统已经烧写完毕。在minicom中可以看到如下log信息,显示OS‘LINUX’ Installed:
4、烧写完重启进入系统
系统烧写完成后,参照下图把开发板S2开关设置为“Nand”启动,然后重新开机即可启动新的Linux系统了。
此时可以在minicom中看到如下信息,表示系统烧写成功:
通过ls命令可以顺利进入系统的文件根目录:
接下来就可以进行其他操作了!
还有一种是不需要用SD卡进行下来,直接通过DNW线就可以了,具体的,在FriendlyARM.ini中加一句:
USB-Mode = yes
表示用USB模式来下来,这样我们就可以直接用MiniTool这个工具来下载我们刚刚的那些.img了,驱动是自动识别的,不需要我们自己去安装,接下来下载的步骤请参考"Tiny4412用户手册",百度一搜就有,照着做就可以成功了。
然后就等待你的开发板启动成功,下面这个是我的开发板: