偷梁换柱——Tiny210开发板下照样玩uboot和tftp
来源:互联网 发布:人民网三评算法推荐 编辑:程序博客网 时间:2024/05/05 17:22
首先向大牛liukun321致敬,这篇文章是基于他的uboot for tiny210 ver3.1http://blog.csdn.net/liukun321/article/details/7438880
其次声明,此文章针对的是初学者,大牛请绕道~~~
想必初玩友善之臂tiny210的童鞋一定对自带的superboot感到无语吧,我刚拿到板子的时候就有这感觉,玩惯了Uboot的普罗大众,估计没有几个对他这个superboot感冒吧,也不清楚友善设计这个的初衷到底是什么,不过闲来逛友善论坛时,倒是发现有个版主解释说,是为了方便初学者使用,因为有的初学者连个USB驱动都不会安装,汗一个先,难道友善这个板子是专门为开发android上层应用者开发的?对于做驱动开发和内核研究的童鞋来说,用SDCARD烧录这种笨拙的做法来测试内核,简直是不可接受的吧!好了,有点跑题了,为了让初学者少走弯路,简单介绍下使用uboot for tiny210 ver3.1来替换superboot的最快捷的方法:
- 用友善光盘中介绍的方法将superboot,zImage和android.img都烧好,让板子先跑起来。
- 然后编译uboot for tiny210 ver 3.1生成tiny210-uboot.bin,制作好启动sdcard。
- 设置板上的启动选项从sdcard启动,进入友善之腿FriendlyLEG,设置uboot网络参数,注意:该版本的uboot在设置ethaddr时,第一个字节的bit0必须设置成1,否则会报错,不知道算不算是小小的bug之一:
#setenv ethaddr01:23:45:67:89:ab
#setenv ipaddr 192.168.2.100
#setenv serverip 192.168.2.10
#setenv gatewayip 192.168.2.1
#saveenv
- 将uboot烧写到nand flash:首先在服务器上设置好tftp服务器,并设置好ip,测试通过后,将tiny210-uboot.bin放置于tftpboot:
#tftp 21000000 tiny210-uboot.bin
下载成功后,uboot会显示总共下载了多少字节,假设xxxx(hex)bytes,假设你不是很了解s5pv210的地址分区,根据uboot本身的大小来作为擦写和写入长度算是比较保险的方法
#nand erase 0 xxxx
#nand write 21000000 0 xxxx
设置板上的启动选择开关为nand启动,就可以看到从nand也可以进入FriendlyLEG了,至此,uboot已经成功的偷梁换柱了~~后面的设置应该就比较熟悉了~
- 按以下方法修改内核以适应uboot,详参见liukun321的文章http://blog.csdn.net/liukun321/article/details/7383669,忽略此步骤将会出现加载kernel时卡死在Uncompressing Linux... done, booting the kernel....
修改内核源码的
arch/arm/mach-s5pv210/include/mach/memory.h文件26,27行内容,将Maximum of 256MiB in one bank的限制改为Maximum of 512MiB in one bank 作如下修改:#defineSECTION_SIZE_BITS 29
#defineNODE_MEM_SIZE_BITS 29
- zImage转uImage:由于uboot只支持uImage格式的镜像文件,需要使用uboot for tiny210 ver3.1源码下面的tools里面的mkimage工具将内核编译生成的zImage转换成相应的uImage~
- 设置uboot从tftp加载kernel:
#setenv bootcmd "tftp 21000000 uImage;bootm 21000000"
#saveenv
- 设置挂载android的命令行,参照光盘里面的ini文件即可:
#setenv bootargs root=/dev/mtdblock4 console=ttySAC0,115200 init=/linuxrc androidboot.console=s3c2410_serial0
至此,整个环境搭建完毕,尽情享受uboot和tftp在调试kernel的时候带来的便捷吧~~~~
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.56:/210 ip=192.168.1.210:::::eth0:off init=/linuxrc console=ttySAC0,115200'
cd /dev
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3PS:解决u-boot for tiny210 在启动友善提供的mini210 linux内核/android出现卡死在Uncompressing Linux... done, booting the kernel.
1.由于友善提供的内核时mini210的,第一步先修改u-boot for tiny210的机器码,使之与内核机器码匹配。
修改include/configs/tiny210.h
#define MACH_TYPE_TINY210 3466
2.友善提供的是mini210的内核,根据内核和mini210 uboot里的配置(我手里没有mini210开发板),可以知道mini210的DDR2ram
和tiny210DDR2ram在bank的挂载方式是不同的,详见我的http://blog.csdn.net/liukun321/article/details/7270426 ,故需要修改内核
源码的arch/arm/mach-s5pv210/include/mach/memory.h文件26,27行内容,将Maximum of 256MiB in one bank的限制改为Maximum
of 512MiB in one bank 作如下修改:
#define SECTION_SIZE_BITS 29
#define NODE_MEM_SIZE_BITS 29通过上述两步修改u-boot for tiny210即可成功引导linux/android.
$make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_config
$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1cp mini210_linux_defconfig .config注意mac 地址
- 偷梁换柱——Tiny210开发板下照样玩uboot和tftp
- 偷梁换柱——Tiny210开发板下照样玩uboot和tftp
- tiny210—uboot 启动
- DM3730开发板使用uboot通过网络下载内核和文件系统 ubuntu下配置 TFTP
- tiny210——uboot移植之Makefile剖析篇
- tiny210 uboot
- tiny210(S5PV210)uboot的顶层Makefile的连接命令理解——记tiny210之uboot移植
- 基于MT7688模块的开发笔记8——TFTP方式烧写Uboot固件
- ubuntu 10.04下的配置tftp服务器和开发板上tftp命令的使用方法
- Tiny210下uboot不断重启问题修复
- tiny210 板子创建uboot + nfs 开发环境 总结
- 嵌入式 uboot下tftp代码追踪
- tiny210 + uboot + nfs + android
- Uboot tftp
- Tiny210开发板wm8960驱动
- 在uboot的控制台中利用tftp将镜像从虚拟机中下载到开发板
- ubuntu下配置NFS和TFTP连接omapl-138开发板
- 多彩虚线实线照样玩
- vc6.0+IDE编译64位程序
- Oracle计算时间差表达式
- 排序_Shell_Sort(希尔排序)
- ets结合record的增删改查操作
- 配置nginx服务器的rewrite
- 偷梁换柱——Tiny210开发板下照样玩uboot和tftp
- Postfix邮件服务器架设
- mini2440移植linux-2.6.32.7内核
- 转 -- 驾驭你的“职场布朗运动”
- _倒直角三角形
- mysql 5.0存储过程(包括语法,符号)
- Servlet文件上传
- vc 静态库和动态库总结(一)
- .net导出数据到Excel