准备 qemu。 编译 arm 的执行环境


(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 -> <path to your alien rootfs dir, e.g. /home/payne/qemu/rootfs_my/>
    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,可是要外部訪问内部须要用port转发-redir tcp:5900::5900,就是把guest os 的5900 和host os 的5900做map, 这样訪问host os 5900就是訪问guest os 的5900

用buildroot qemu 执行 Android 系统的更多相关文章

  1. 将Android系统源码导入Android studio的方法

    Android源码目录结构如下: |-- Makefile|-- abi (applicationbinary interface,应用程序二进制接口,生成libgabi++.so相关库文件)|-- ...

  2. Android入门学习:Android 系统框架及应用程序执行过程

    Android基础知识学习 新手上路,还请多多帮助.由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习! 主要内容: 1.Android层次架构及主要功能 2.Android编程模型,程 ...

  3. Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

    目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...

  4. Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程【转】

    本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465603       Android系统Recovery工作原理之使用update.zip ...

  5. Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script【转】

    本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465551  Android系统Recovery工作原理之使用update.zip升级过程分 ...

  6. 深入浅出-Android系统移植与平台开发(一)- Android4.0系统的下载与编译

    作者:唐老师,华清远见嵌入式学院讲师. 一.Android4.0系统的下载与编译 Android系统的下载与编译,Google的官方网站上已经给出了详细的说明,请参照Android的官方网址: htt ...

  7. 深入浅出 - Android系统移植与平台开发(三)- 编译并运行Android4.0模拟器

    作者:唐老师,华清远见嵌入式学院讲师. 1.   编译Android模拟器 在Ubuntu下,我们可以在源码里编译出自己的模拟器及SDK等编译工具,当然这个和在windows里下载的看起来没有什么区别 ...

  8. 深入浅出 - Android系统移植与平台开发(五)- 编译Android源码(转)

    2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机.Linux内核.编译系统.框架代码.Android定制C库.测试套件.系统应用程序等部分组成,在编译Android源 ...

  9. [总结]Android系统体系结构

    Android 从图中可以看出Android主要的组成部分,其中底层是Linux的内核,包括的主要就是文件.内存.系统资源等的管理,Google在这部分的工作主要就是电源管理和一部分驱动,并且整合上层 ...

随机推荐

  1. linux下的用户组管理

    用户组管理分两类 如果赋给组什么权限,那么组员就会有什么权限 1.私有组 在创建新用户的时候,就要为用户指定组.如果没有指定,就会默认创建一个与用户名相同的用户组,这个用户组只有该用户一个用户,就被称 ...

  2. [LeetCode] Permutations II 排列

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  3. 【Chrome】Octotree Chrome插件离线安装

    插件下载地址:http://www.cnplugins.com/devtool/octotree/download.html Octotree 是国外程序员Buu Nguyen 做的一个 Chrome ...

  4. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---44

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  5. hdu 4519(数学题)

    郑厂长系列故事——体检 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total S ...

  6. HDU 2767.Proving Equivalences-强连通图(有向图)+缩点

    Proving Equivalences Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. Tallest Cow

    题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a p ...

  8. 微信工作汇报系统2——IOS原型设计

    上一篇博客:一款自动汇报工作的微信机器人 上一篇博客中说道,我打算自己做一款能自动汇报工作的微信机器人,可惜学识有限,最后不知道怎么实现让机器人学习我的文本说话,所以就一直耽搁了,见天又打开这个系列, ...

  9. OnTouchListener

    1.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  10. 方程式组织EQUATION DRUG平台解析(提纲) —方程式组织系列分析报告之四

    https://www.bleepingcomputer.com/news/security/shadow-brokers-release-new-files-revealing-windows-ex ...