tiny210 + uboot + nfs + android
来源:互联网 发布:深海鱼油 知乎 编辑:程序博客网 时间:2024/05/18 23:52
经过两天的努力,在参考无数网络文章后,终于在tiny210开发板上用uboot+nfs的方式让Android系统跑了起来。
目前实现的功能包含但不限于以下内容:
1. 制作SD启动卡
2. uboot支持DM9000
3. uboot支持usb dnw功能
4. uboot为2011.12版本
5. linux支持512M内存
6. 可以从NFS上加载rootfs
7. tiny210+uboot+nfs成功启动android.
一、制作SD启动卡
两条命令即可:
$dd iflag=dsync oflag=dsync if=out/spl/tiny210-spl.bin of=/dev/sdc seek=1
$dd iflag=dsync oflag=dsync if=out/u-boot.bin of=/dev/sdc seek=49
其中tiny210-spl.bin是由如下命令生成的(uboot编译过程中抓取)
/work/tiny210/u-boot-2011.12-tiny210/board/samsung/tiny210/tools/mktiny210spl.exe \
/work/tiny210/u-boot-2011.12-tiny210/out/spl/u-boot-spl.bin /work/tiny210/u-boot-2011.12-tiny210/out/spl/tiny210-spl.bin
而mktiny210spl.exe是由mkv210_image.c编译而来
而seek=49,这个数字49是由mkv210_image.c的IMG_SIZE有关系。
二、支持512M内存
这部分修改仅涉及linux, 在arch\arm\mach-s5pv210\include\mach\memory.h文件中
将
#define SECTION_SIZE_BITS28
#define NODE_MEM_SIZE_BITS 28
改为
#define SECTION_SIZE_BITS29
#define NODE_MEM_SIZE_BITS 29
再重新编译linux即可,否则uboot加载linux后,跳至linux却无法启动。
三、添加usb dnw功能
这个功能的代码主要沿用了s3c64xx的usbd-otg-hs.c/.h文件,改动不多,可在最初调试过程中,却花了很长的时间
最后发现是usb clk的问题,如下方法解决
在s3c_usbctl_init()函数内加入OTHERS_REG |= (1<<16);
int s3c_usbctl_init(void)
{
OTHERS_REG |= (1<<16);//这是210与6410最大的区别
...
}
再增加一个cmd_dnw.c文件,并添加U_BOOT_CMD。
四、让linux支持NFS
我最初没加这个功能,一直用NFS启动不了。 后来才发现是内核不支持NFS。
只要在linux配置中加入NFS ROOT相关即可。
我打开了如下功能:
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
# CONFIG_NFS_V4 is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
五、设置uboot启动参数与命令
1. PC上执行 $/mkimage -n "Kernel 2.6.35" -A arm -O linux -T kernel -C none -a 20A07fc0 -e 20A08000 -d zImage uzImage 用来制作uimage
2. 开发板上执行
$setenv bootargs root=/dev/nfs console=ttySAC0,115200 init=/linuxrc nfsroot=172.16.101.132:/work/tiny210/android-2.3.1-tiny210/rootfs_dir ip=192.168.170.40:172.16.101.132:192.168.170.200:255.255.255.0:tiny210:eth0:off fbcon=rotate:1
$setenv bootcmd 'dnw 0x20A07fc0;bootm 0x20a07fc0'
$saveenv
最后执行boot, 根据提示在PC上执行$dnw uzImage, 内核将被下载到开发板的内存中(0x20A07fc0), 系统再自动执行bootm指令,启动linux,
linux内核在完成初始化之后,将以172.16.101.132:/work/tiny210/android-2.3.1-tiny210/rootfs_dir 为root fs启动android系统。
- tiny210 + uboot + nfs + android
- tiny210 uboot nfs 启动android
- tiny210 板子创建uboot + nfs 开发环境 总结
- tiny210 uboot
- tiny210—uboot 启动
- 获取uboot for tiny210源码
- tiny210用sd卡烧写uboot
- tiny210上uboot移植备忘
- tiny210 uboot sd卡启动
- Tiny210 nfs挂载文件
- Fedora14 nfs配置 + tiny210 挂载nfs
- 关于u-boot for tiny210 NFS启动Android根文件系统(by liukun321 咕唧咕唧)
- S5PV210 -- UBOOT启动过程解析(TINY210)
- S5PV210 -- UBOOT启动过程解析(TINY210)
- S5PV210 -- UBOOT启动过程解析(TINY210)
- Tiny210 uboot 移植 No NAND device found!!!
- TINY210 UBOOT(一)启动过程
- Tiny210 s5pv210 uboot移植(编译过程)
- 用Collect对内表分组统计
- Mysql游标和循环
- Android显示系统之View与SurfaceView更新屏幕的区别
- 服务提供者框架
- Amazon云产品介绍(3) - 简单无脑的队列服务 - Amazon SQS
- tiny210 + uboot + nfs + android
- BCM53262芯片开发手册----静态组播表
- 导图 SQL Server之SQL Server基础
- ARM&LINUX学习笔记(4)---ARM 体系结构
- SD卡驱动学习(二)
- 【栈】出栈顺序题目总结
- 设计模式笔记——Singleton
- RobotFramework用户说明书翻译稿第2.1节
- 导图 SQL Server之数据转换