2012년 1월 27일 금요일

Android-x86 ICS on QEMU

After several trials and errors, I finally set up Ubuntu 10.4 and KVM for porting Android-x86 Ice cream-sandwich (ICS). ( I did setup CentOS before and it turned out that it wasn't a good decision for this. I was not able to resolve dependencies between RPM. )


My intention was to get the latest version of android, android-x86-4.0-generic.iso  from the web site. But that iso file was not provided. Although I downloaded android-x86-4.0-eeepc.iso instead and installed it, it failed during setup. 


Therefore, I decided that I got its source and compiled it to install android-x86 for my QEMU virtual machine. 


Before this, it needed to prepare build environment. Please check this web site.


# Installing Repository
$ mkdir ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


# Getting source code
$ mkdir ~/android-x86
$ cd ~/android-x86
$ ~/bin/repo init -u http://git.android-x86.org/manifest -b ics-x86
$ ~/bin/repo sync


# Compiling source
$ make iso_img TARGET_PRODUCT=generic_x86


After I successfully made the iso file, the following procedure was to setup it.
This was my screen-shots.


If you see black screen during booting after install, you have to change to vga model.


There were still some problems for further test.
1) ICS has not yet supported Ethernet configuration GUI, this enables LAN network interface. I couldn't configure a proper network. Earlier version, Gingerbread for example, it was provided.
2) SD card can't expand more than 2GB.

Reference sites: 
1. http://www.android-x86.org/documents/customizekernel
2. http://source.android.com/source/

댓글 8개:

  1. Its nice to see that you have successfully build the ics src.Could you tell me if you had any problems while syncing.I couldn't get the prebuilt and system folders in the first repo sync.Later I did
    repo sync -l prebuilt
    Prebuilt got synced.But the same command doesnt work on system.

    Thanx dude for this post.
    The screenshots look awesome.
    Btw I am getting this error while syncing:

    frameworks/base/Android.mk:326: frameworks/base/../../system/media/mca/Docs.mk: No such file or directory
    make: *** No rule to make target `frameworks/base/../../system/media/mca/Docs.mk'. Stop.

    답글삭제
  2. Hi,
    In my case, I chose a wrong operating system(CentOS). as a result I could'not solve dependency problem. After I installed Ubuntu 10.4 and required packages (http://source.android.com/source/initializing.html), I successfully downloaded the source and compile it without problem.
    Can I ask what kind of OS you currently use?

    Thank you.

    답글삭제
  3. Hi Yeonki...
    Dude , I am using Ubuntu 11.10.The ics-x86 source contains the following projects:
    abi,bionic,bootable,build,dalvik,development,deviceexternal.frameworks,hardware,kernel,libcore,ndk,packages,prebuilt,sdk and system.
    I setup the sync environment as given in the article taht you mentioned.I started syncing.It took around 8 hours.The total download size was ~9.1GB.
    But the sync lacked the prebuilt , sdk and system folders.
    I did
    repo sync -l prebuilt - I got prebuilt synced
    repo sync -l sdk - I got sdk synced
    repo sync -l system - I got the following error:
    error: project system not found

    I have done this twice.I had prepared the environment as given in the google article.
    I just cant get the SYSTEM directory to sync.
    Any subsequent build raises an error stating the absence of the system folder.
    If you have any ideas , please share.
    Thanks dude.

    답글삭제
  4. i am using Ubuntu 11.10 x86.32 bit. I am able to sync all the directories except for prebuilt, system and sdk.Executing the following:
    repo sync -l prebuilt
    repo sync -l sdk
    I am able to individually sync rebuilt and sdk.But doing the same with system:
    repo sync -l system
    gives the following error:
    error:project system not found
    Any subsequent build results in errors indicating an incomplete source tree.As a result i am not able to generate the iso_img.
    Honestly I am clueless as to what to do.I googled a lot to find if anybody else encountered the same situation.No luck.
    dude , if you have any ideas , please do share.
    Thanx for writing this blog .
    and also for replying.
    cheerios.

    답글삭제
  5. Hi,

    I freshly installed Ubuntu 11.10 (32 bit) on VirtualBox and then I also succeeded sync all directories (including prebuilt, sdk and sdk).I found nothing wrong.

    I followed like you did, I ran "sync -l system". It occurred an
    $ ~/bin/repo sync -l system
    error:project system not found.

    Next time, I changed sync option.
    $ ~/bin/repo sync -l
    Syncing work tree: 100% (222/222), done.
    It worked.

    It is possible to set "working folder name" after option -l ?

    Thank you.

    답글삭제
  6. Hi

    i am able to download the entire froyo src with all the required directories.But ics doesn't give me the system folder.I tried the mirror site , sourceforge for the repo as well.
    As for if its possible to set the working folder name after option -l, thats how i synced the prebuilt and sdk.
    Now i am compiling the synced froyo src.
    I guess I'll just have to keep repo syncing until i get the system folder for the ics src.
    Thanks dude for replying.
    If you have any ideas , please do share..

    답글삭제
  7. Hello...
    I have managed to download the gingerbreadx86 src and compile it and run it through both qemu and also through USB booting in VESA mode.As far as ics goes , no luck there as yet.

    답글삭제
  8. If anyone is still facing the black screen problem after booting android-x86 on qemu, as the blog says about changing to VGA mode, I did the same from command-line with "-vga std" as an argument for the KVM/Qemu command, as I didn't have the GUI as shown in the snapshot to change the mode to VGA.

    Thanks a lot for everyone. I made it. I have my android-x86 up and running finally after almost a year of intermittent struggle and frustration.

    Cheers!

    - Raghavan Santhanam

    답글삭제