用buildroot qemu 运行 Android 系统

准备 qemu, 编译 arm 的运行环境

  • $ wget http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2
  • $ tar xzvf qemu-2.0.0.tar.bz2
  • $ mkdir ./qemu-2.0.0/bin
  • $ cd ./qemu-2.0.0/bin/
  • $ ../configure --target-list=arm-softmmu
  • $ make
    (system 模式,是模拟整个硬件了,user 模式是只模拟arm cpu, sys call 转变为对 host linux-x86的调用)
    准备build root, build root 自动下载需要文件编译需要的 kernel, rootfs

    • $ wget http://buildroot.uclibc.org/downloads/buildroot-2014.05.tar.bz2
    • $ tar xjvf buildroot-2014.05.tar.bz2
    • $ cd buildroot-2014.05/
    • $ make qemu_arm_vexpress_defconfig
    • $ make menuconfig

      Toolchain -> C library -> eglibc Toolchain -> Enable C++ support System configuration -> Root filesystem overlay directories -> Target packages -> Show packages that are also provided by busybox Target packages -> Debugging, profiling and benchmark -> gdb -> full debugger Target packages -> Networking applications -> dhcpcd Target packages -> Shell and utilities -> bash Filesystem images -> cpio the root filesystem Filesystem images -> tar the root filesystem

    • $ export BR2_JLEVEL=4
    • $ make linux-menuconfig

      Device Drivers -> (*) Staging drivers -> (*) Android -> (*) Android Binder IPC Driver File systems -> (*) FUSE (Filesystem in Userspace) support

    • $ make

      可以指定自己的rootfs, 把 target arm 的可执行文件,放在此目录/home/payne/qemu/rootfs_my/, 运行qemu-arm 的时候,就可以在shell 中执行了
      运行qemu, 使用的ZImage和rootfs 都是在buildroot中生成的

      • $ ./qemu-2.0.0/bin/system/arm-softmmu/qemu-system-arm -M vexpress-a9 -m 1G -kernel ./buildroot-2014.05/output/images/zImage -drive file=./buildroot-2014.05/output/images/rootfs.ext2,if=sd -append "console=ttyAMA0,115200 root=/dev/mmcblk0" -serial stdio -net nic,model=lan9118 -net user -redir tcp:5900::5900
      • Input "root" when you see the login prompt
      • # dhcpcd
      • #
        值得注意的是, qemu并不自动netwrok, 要运行dhcpcd获得ip(更android 一样,10.0.2.15是自己,10.0.2.2 是host), 在qemu中能访问外部internet,但是要外部访问内部需要用端口转发-redir tcp:5900::5900,就是把guest os 的5900 和host os 的5900做map, 这样访问host os 5900就是访问guest os 的5900

        点击复制链接 与好友分享!回本站首页
        您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
        上一篇:Android 代码混淆
        下一篇:HDU 4280Island Transport(网络流之最大流)
        相关文章

        调用系统程序打开指定的图片

        枚举Android系统的进程、任务和服务的

        Android系统原理与源码分析(1):利用

        深入理解Android消息处理系统——Loop

        Android系统名词解释汇总

        Andriod获取系统自带铃声

        Android获取系统隐藏服务实现锁屏

        android系统中ALSA架构audio -EPIPE错

        Android 类似360 系统启动时间提示

        Android中获取系统内存信息以及进程信

        图文推荐
        用buildroot qemu 运行 Android 系统
        Android中数据存储方
        用buildroot qemu 运行 Android 系统
        Android OTA升级包制
        用buildroot qemu 运行 Android 系统
        Android从普通发送和
        用buildroot qemu 运行 Android 系统
        Android开发:Parall

分类:默认分类 时间:2012-01-06 人气:19
本文关键词:
分享到:

相关文章

  • Android 代码混淆 2012-02-12

    一、代码混淆的定义 Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码。为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆。 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译

  • HDU 4280Island Transport(网络流之最大流) 2013-04-02

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4280 这个题是一个纯最大流模板题。。就是用来卡时间的。。还好我会isap算法。。但是坑爹的是一直WA,最后加了个输入优化就过了。。。(仅仅是把输入改了改而已。。)至今不知道为什么。。请好心的看到此博客的大神赐教。。 代码如下: #include #include #include #include #include using namespace std; int head[210000], s,

  • Android init源代码分析(1)概要分析 2013-09-08

    功能概述 init进程是Android内核启动的第一个进程,其进程号(pid)为1,是Android系统所有进程的祖先,因此它肩负着系统启动的重要责任。Android的init源代码位于system/core/init/目录下,伴随Android系统多个版本的迭代,init源代码也几经重构。 目前Android4.4源代码中,init目录编译后生成如下Android系统的三个文件,分别是 /init/sbin/ueventd-->/init /sbin/watchdogd-->/in

  • ubuntu上下载Android源码编译 2014-10-22

    看完sundy的视频之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源代码了呢?一直习惯使用Windows系统,而Android源代码是不支持在Windows上编译上,于是决定使用虚拟机安装Ubuntu,然后下载、编译和安装Android源代码。 一. 环境准备。 1. 磁盘空间预留20G左右,内存3G,因为一边要跑主机,一边要跑虚拟机,内存要求还是比较高的,这样才会比较流畅。 2. 安装VMWare 7.1.4。我的操作系

  • 手动开关Android虚拟键 2012-03-23

      三星Galaxy系列相对于其他Android最有辨识度的特点就是它们几乎都有着一颗实体的home键,但是实体键按得多很可能会遇到失灵的问题,当然我们可以通过一些虚拟键软件解决这个问题。而最近在网上出现了一种比较另类的方法,可以让Galaxy系列手机也加入虚拟键,同时利用相同的方法,也可以删除部分手机的虚拟键。   首先是要获取手机的root权限,然后打开“RE管理器”到系统根目录的System目录下,找到build.prop:   这个文件里包含了很多设备的信息,我们在设置里看到的很多版本号

  • [Android初级]android模拟器中的串口Serialport测试 2012-09-25

    最近项目要使用到串口通讯,在搭载android系统的主板上监听COM口的数据,这块之前没接触过,我搜索了一下找到一个开源项目:android-serialport-api,通过这个开源项目,我可以轻松的在android应用层监听和请求所需要的设备端口的数据。 使用前,考虑到没有硬件的条件下,我先做个虚拟测试。在电脑上虚拟建立2个com口,(com2com3),他们是互通的,我要这么做,通过android应用监听com2,接收来自com2的数据并显示,然后再往com2发送数据。那就开始吧! 先使用

  • Android系统名词解释 2012-10-21

      1、固件、刷固件   固件是指固化的软件,英文为firmware,它是把某个系统程序写入到特定的硬件系统中的flashROM。   手机固件相当于手机的系统,刷新固件就相当于刷系统。不同的手机对应不同的固件,在刷固件前应该充分了解当前固件和所刷固件的优点缺点和兼容性, 并做好充分的准备。   2、ROM(包)   智能手机配置中的ROM指的是EEProm(电擦除可写只读存储器)类似于计算机的硬盘,手机里能存多少东西就看他的容量了。底包+更新包统称为一个ROM包。   3、固件版本   固件版

  • 小白进:Android系统名词解释汇总 2013-01-16

      1、固件、刷固件   固件是指固化的软件,英文为firmware,它是把某个系统程序写入到特定的硬件系统中的flashROM。   手机固件相当于手机的系统,刷新固件就相当于刷系统。不同的手机对应不同的固件,在刷固件前应该充分了解当前固件和所刷固件的优点缺点和兼容性, 并做好充分的准备。   2、ROM(包)   智能手机配置中的ROM指的是EEProm(电擦除可写只读存储器)类似于计算机的硬盘,手机里能存多少东西就看他的容量了。底包+更新包统称为一个ROM包。   3、固件版本   固件版

  • Android init源代码分析(2)init.rc解析 2013-06-12

    本文描述init.rc脚本解析以及执行过程,读完本章后,读者应能 (1) 了解init.rc解析过程 (2) 定制init.rc init.rc介绍 init.rc是一个文本文件,可认为它是Android系统启动脚本。init.rc文件中定义了环境变量配置、系统进程启动,分区挂载,属性配置等诸多内容。init.rc具有特殊的语法。init源码目录下的readme.txt中详细的描述了init启动脚本的语法规则,是试图定制init.rc的开发者的必读资料。 Android启动脚本包括一组文件,包括

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.050 (s). 10 q(s)