WEB开发网
开发学院手机开发Android 开发 用Android模拟器运行FTK 阅读

用Android模拟器运行FTK

 2010-07-06 04:25:00 来源:WEB开发网   
核心提示:文章出处:http://www.limodev.cn/blog用Android模拟器运行FTK以前写过一篇文章介绍如何在Androidr模拟器上运行FTK(http://www.limodev.cn/blog/archives /1400),那种方法有点别扭,用Android模拟器运行FTK,而且要下载Android

文章出处:http://www.limodev.cn/blog

Android模拟器运行FTK

以前写过一篇文章介绍如何在Androidr模拟器上运行FTK(http://www.limodev.cn/blog/archives /1400),那种方法有点别扭,而且要下载Android 的源代码才能编译。最近几个开发板都坏了,所以上周末研究了一下Android模拟器,自己生成文件系统,只是利用Android的模拟器来运行FTK。

Android的模拟器是基于qemu的,个人感觉qemu不好用,除了用Openmoko做的模拟器外,我还没成功用qemu来模拟运行过arm linux。Android在qemu做了不少人性化的工作,用起来比较方便。

0.请参考网上的方法安装Android SDK。

1.生成自己的init程序。

创建几个基本目录。

int init_dirs(void)

{

umask(0);

mkdir("/dev", 0755);

mkdir("/system", 0777);

mkdir("/dev/block", 0755);

return 0;

}

创建MTD设备的结点。

int init_dev_nodes(void)

{

int ret = 0;

ret = mknod("/dev/block/mtdblock0", 0755|S_IFBLK, makedev(31, 0));

printf("mknod /dev/block/mtdblock0 ret = %d errno=%d ", ret, errno);

return 0;

}

加载system.img 分区。

int mount_filesystem(void)

{

int ret = 0;

ret = mount("/dev/block/mtdblock0", "/system", "yaffs2", 0, NULL);

printf("mount /dev/block/mtdblock0 ret = %d errno=%d ", ret, errno);

return 0;

}

运行FTK的桌面。

int startup_desktop(const char* name)

{

struct stat st = {0};

int ret = stat(name, &st);

if(ret != 0)

{

return -1;

}

printf("starting the second init: %s. ", name);

if(fork() == 0)

{

ret = execl(name, name);

}

return ret;

}

int switch_root(void)

{

int ret = chroot("/system");

1 2  下一页

Tags:Android 模拟器 运行

编辑录入:coldstar [复制链接] [打 印]
赞助商链接