android x86 6.0 build iso - mehome/openthos GitHub Wiki

在ubuntu 15.10 x86-64上实验 android-x86-6.0.1+kernel-4.0.9

从sf上取得源码

mkdir android-repo
cd android-repo
repo init -u git://gitscm.sf.net/gitroot/android-x86/manifest -b marshmallow-x86
repo sync

开始配置

自己的配置

cd ..
. ./chysetenv.sh
export PATH=/backup/android-related/git-repo:$PATH
export USE_CCACHE=1
export CCACHE_DIR=/backup/android-related/ccache
/backup/android-related/android-repo/prebuilts/misc/linux-x86/ccache/ccache -M 30G

export ANDROID_PRODUCT_OUT=/backup/android-related/android-repo/out/target/product/generic
export EMULATOR_X86=/backup/android-related/android-repo/prebuilts/android-emulator/linux-x86_64
ANDROID_PRODUCT_OUT_BIN=/backup/android-related/android-repo/out/host/linux-x86/bin
export PATH=$PATH:$ANDROID_PRODUCT_OUT_BIN:$ANDROID_PRODUCT_OUT:$EMULATOR_X86

这是为之前AOSP准备的,现在部分内容其实没用,比如EMULATOR_X86,也许就前面4行有用

开始编译

cd android-repo
source build/envsetup.sh
lunch android_x86_64-eng  #选择7 x86-64-eng 系统
make -j16 iso_img

就完成了! 可以直接用virtualbox/qemu使用生成的img,在不安装模式下是可以基本正常工作的。

定制内核(optional)

make -C kernel O=/backup/android-related/android-repo/out/obj2 ARCH=x86 android-x86_defconfig #选择缺省android-x86配置
make -C kernel O=/backup/android-related/android-repo/out/obj2 ARCH=x86 android-x86_defconfig
make -C kernel O=/backup/android-related/android-repo/out/obj2 ARCH=x86 menuconfig #可以自己做些定制
make -C kernel O=/backup/android-related/android-repo/out/obj2 ARCH=x86 -j16  #编译成功内核

注意:

DO NOT make in kernel/ directly. If you do so, try

make -C kernel distclean
rm -rf $OUT/obj/kernel 

用qemu-system-x86_64测试

(optional) 编译qemu

git clone git://git.qemu.org/qemu.git
cd qemu
mkdir build
cd build
../configure --target-list=x86_64-softmmu,i386-softmmu --enable-sdl --audio-drv-list=oss,alsa,sdl,pa --enable-spice --enable-gtk --with-gtkabi=3.0
make -j8
cd ..

if you want to build qemu-with-virgl, you also need install virglrenderer

BIOS 模式

qemu-system-x86_64 -enable-kvm -m 4G -cdrom android_x86_64.iso -vga std -serial stdio

UEFI 模式(optional)

qemu-system-x86_64 -enable-kvm -m 4G -bios OVMF.fd -hdb android_x86_64.img -vga std -serial stdio

kernel 参数

  nomodeset vga=788   即800x600:16bpp
  console=ttyS0  用串口交互

通过adb连接qemu进行调试(BIOS模式)

$ qemu-system-x86_64 -enable-kvm -m 4G -cdrom android_x86_64.iso -vga cirrus -serial stdio -redir tcp:5555::5555
$ adb shell

支持virgl方式(BIOS调试),qemu-2.6+

qemu-system-x86_64 -enable-kvm -m 3096 -serial stdio -cdrom android_x86_64.iso -hda diska.img -device virtio-gpu-pci,virgl -redir tcp:5555::5555

支持audio(BIOS调试),qemu-2.6+

QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -enable-kvm -m 3096 -serial stdio -cdrom android_x86_64.iso -hda diska.img -device virtio-gpu-pci,virgl -soundhw es1370 -redir tcp:5555::5555

实验室android-x86 6.0 marshmallow-x86 代码托管服务器

下载 repo 工具:

mkdir ~/bin
PATH=~/bin:$PATH
curl http://192.168.0.185/git-repo-downloads/repo > ~/bin/repo 
chmod a+x ~/bin/repo

建立工作目录:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

初始化仓库

开发请选择”multiwindow“分支,原版请选择“marshmallow-x86”分支:

repo init -u git://192.168.0.185/marshmallow-x86/manifest.git -b multiwindow  

如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:

REPO_URL = 'git://192.168.0.185/git-repo' 或清华大学的源:REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

同步源码树(以后只需执行这条命令来同步):

repo sync

注意,如何发现下载速度慢,可能是由于到google站点去取源码了,可以修改 .repo/manifest.xml的第5行为

   fetch="git://192.168.0.185/marshmallow-x86/" />

改用下载本地的源码,速度就快了。

建立multiwindow开发分支:

repo start multiwindow --all 

设置代码提交的远程仓库别名为“devorg”:

repo forall -c 'git remote add devorg git://192.168.0.185/marshmallow-x86/$REPO_PROJECT.git $@'

上述步骤在首次操作完成后,便可开始代码开发: 在对某个project的代码进行更改前,请确保当前是multiwindow分支;单个project提交,在该project目录下:

git commit -a -m "xxx commit"
git push devorg multiwindow:refs/heads/multiwindow 

将所有project的multiwindow分支提交到远程仓库:

repo forall -c git push devorg multiwindow:refs/heads/multiwindow

第三方app

第三方APP ,均已上传至如下地址。git clone到本地即可

git://192.168.0.185/openthos-apps