X210刷Android4.0.4系统

记录一下 X210刷Android系统的过程 :
首先要声明的是 ,当开发板中的系统已经存在的时候,假设是Android系统,那么就需要进入到Android的控制台,通过以下两条命令:
(1)busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
(2)sync
来破坏iNand中的uboot,使系统不能启动,现在我们的系统中的uboot已经被毁坏了,之后如果开机的话,串口控制台会提示SD chencsum Error,见下图:
在这里插入图片描述
1、通过SD卡启动uboot
有两种方式来制作启动SD卡,一种是在windows中用刷卡工具去制作启动SD卡,如九鼎官方的X210_Fusing_Tool.exe;另一种是在linux中用dd命令。制作完成SD卡后将SD卡插入到开发板的对应的卡槽中,接上串口线,开机即可在控制台看到启动信息。
2、通过fastboot来烧写boootloader 、kernel以及system file
当开发板从SD卡启动后,在串口控制台就可看到对应的启动信息,如果在bootdelay 倒计时结束后,没有按下键盘上的按键时,那么系统可能会启动kernel 以及后面的文件系统,因为之前我们并没有将kernel 以及文件系统破坏掉,如果这次SD卡中的euboot能够启动iNand中对应的kernel时,那么系统就会启动了。所以我们应该在bootdelay 倒计时为0之前按下回车键,使uboot停留在命令行模式,之后我们使用fastboot命令来烧写对应的uboot、kernel 以及system file。
我们在串口控制台输入print可以看到相关的启动参数等环境变量:
在这里插入图片描述
当向串口控制台输入fastboot命令后,使开发板那进入到fastboot模式,之后会在控制台界面会出现以下提示:
在这里插入图片描述
提示我们iNand上的各个分区情况以及要插入OTG连接线。我们通过数据线连接PC和开发板。PC上安装好对应的ADB驱动后,就可以识别到我们的设备如下图提示为Android ADB Interface
在这里插入图片描述
之后,我们就可以通过PC上的fastboot软件来烧写系统了,首先要进入到在PC上的命令行界面进入到fastboot软件所在的路径,其次将要烧写的uboot、kernel 以及文件系统放到一个文件夹Android4.0.4中,以便于我们烧写。我将fastboot软件放到D盘下,然后将要烧写包含镜像的文件夹放到fastboot文件夹下,如下图:
在这里插入图片描述
然后在PC的命令行来通过fastboot命令来进行烧写系统。
先来看下fastboot常用命令:   
(1)fastboot devices 命令用来查看当前连接的设备。(如果正常的话,我们开发板看到的是:SMDKC110-01 fastboot)   
在这里插入图片描述
(2)fastboot flash xxx 命令用来烧录的   
(3)fastboot reboot 命令用来重启系统   
之后,我们就可以利用一下命令来刷系统了。
step1:烧写uboot,注意uboot所在的路径,以及各个步骤烧写完成后的系统提示
fastboot flash bootloader Android4.0.4/uboot.bin
step2:烧写内核镜像
fastboot flash kernel Android4.0.4/zImage-android
step3:烧写文件系统
fastboot flash system Android4.0.4/x210.img
PC命令行过程及提示如下:
在这里插入图片描述
这些都完成后,就可以通过fastboot reboot命令来启动系统了。之后如果能够进入到Android的控制台,说明我们的系统启动成功了,见下图。
在这里插入图片描述
之后关机并将SD卡拔出,开机如果系统能够重新启动,说明系统已经刷进iNand中了。

3、总结
首先看开发板中是否存在系统,或是仅存在uboot,我之前因为做后面的内核和根文件系统的移植时,为了方便做实验把内核和根文件系统放在了PC上,通过nfs 方式启动,最后也没有将其烧写到iNand,换了电脑之后,发现开发板上只有uboot了,开机后启动内核失败,查看环境变量发现是通过nfs挂载的内核。之后我通过fastboot将内核和文件系统重新烧写到iNand(这里我刷的是kernel 和文件系统都是Android4.0.4的,虽然当前我把板子中的uboot是之前做Linux内核移植时用的,但是这个uboot和Android4.0.4中的uboot是一样的,所以我能够通过这个uboot来启动Android4.0.4用的内核,之后进入Android系统可以将它在毁坏,重新刷其他的),并重新设置了启动参数:
(1)将iNand的kernel分区读取到DDR内存的0x30008000地址处,然后使用bootm启动命令从内存0x30008000处去启动内核,命令如下:
setenv bootcmd “movi read kernel 30008000;bootm 30008000”
(2)console=ttySAC2,115200 控制台使用串口2,波特率115200. root=/dev/mmcblk0p2 rw 根文件系统在SD卡端口0设备(iNand)第2分区,根文件系统是可读可写的 init=/linuxrc linux的进程1(init进程)的路径 rootfstype=ext3 根文件系统的类型是ext3,命令如下:
bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3
之后保存参数,使用bootm命令即可启动系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值