Posts tagged with compile

Compiling Google Andriod Progress

February 27th, 2009

It’s been pretty up and down but I’ve successfully compiled Google Andriod for an eee701. The problem is that after converting the installer.img into a VDI file and booting in Virtualbox I’m stuck at the boot menu.

I’ve actually been compiling the source in a Virtual environment, a Fedora 10 virtual machine running on Windows XP Professional.

In brief here’s the procedure so far on Fedora 10.

  1. Install the Sun Java SE Development Kit (JDK)
  2. Edit your ~/.bashrc file and add the following lines.
    export JAVA_HOME='/usr/java/jdk1.6.0_12'
    PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    
  3. Install gperf.
    # yum install gperf
  4. Make sure you have a ~/bin directory in your home directory, and check to be sure that this bin directory is in your path:
    $ cd ~
    $ mkdir bin
    $ echo $PATH
    
  5. Download the repo script and make sure it is executable:
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo
    
  6. Create an empty directory to hold your working files:
    $ mkdir mydroid
    $ cd mydroid
    
  7. Get the cupcake branch
    $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
  8. To pull down files to your working directory from the repositories as specified in the default manifest, run
    $ repo sync
  9. I tried compiling with
    $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make -j2 installer.img

    but this fails with the error:

    du: cannot access `out/target/product/eee_701/data': No such file or directory
    

    After making this data directory and running again the compiling is successful.

    File edit complete. Wrote 2 images.
    Done with bootable installer image -[ out/target/product/eee_701/installer.img ]
    
  10. Change to the output directory
    $ cd out/target/product/eee_701/
  11. Convert the installer.img to a Virtualbox VDI file
    $ VBoxManage  convertfromraw -static -format VDI ./installer.img  ./installer.vdi
  12. Create a new virtual machine in Virtualbox and use this vdi as the hard drive.
  13. Unfortunately this is where I get stuck. At first I received errors like:
    $  Booting `recovery`
    cmdline (hd0,1)/cmdline
    Error 15: File not found
    

    or

    Booting `std_boot`
    cmdline (hd0,2)/cmdline
    Error 22: No such partition
    

    Exactly as described here
    These problems were fixed by changing hd(0,2) to hd(0,0) but then it seems to boot only to be presented with this error. The same can be found in this post.

    init: Unable to open persistent property directory /data/property errno: 2
    sh: can’t access tty: Waiting for device /dev/block/sdb2
    

I can’t get past this error and the solutions on android-porting pages are sometimes hard to follow. Never the less I’ll keep trying especially that I’m so close.

Note that this was using the stock Andriod kernel. I also tried compiling the 2.6.27 kernel but it fails with the following error.

drivers/rtc/alarm.c:16:27: error: asm/mach/time.h: No such file or directory
drivers/rtc/alarm.c: In function ‘alarm_suspend’:
drivers/rtc/alarm.c:357: error: implicit declaration of function ‘save_time_delta’
make[2]: *** [drivers/rtc/alarm.o] Error 1
make[1]: *** [drivers/rtc] Error 2
make: *** [drivers] Error 2

Reading this post I see that this is a known issue and there is a patch but I haven’t tried applying the patch yet.

If you do decide to compile your own kernel it’s pretty easy.

$ cd ~/mydroid/vendor/asus/eee_701/
$ make menuconfig

Save the config file then.

$ make bzImage

Then copy the kernel to vendor/asus/eee_701

$ cp arch/x86/boot/bzImage ../vendor/asus/eee_701/kernel
Google BookmarksEvernoteGoogle GmailHotmailWordPressLinkedInFacebookDeliciousShare

Compiling Google Andriod for x86

February 22nd, 2009

After downloading and running the Google Andriod vdi for Virtualbox I decided to try and compile the source myself. I’m following the directions on the andriod-porting Google group including trying to enable networking that didn’t work in the vdi file I downloaded.

I’ve just finished downloading the cupcake source tree from git that takes quite a while as I’m not able to get more than about 1 to 2 Mbit/s when downloading. I’ve also modified the kernel config to include the ‘AMD PCnet32 PCI support’ that is one of the network devices supported by Virtualbox.

Next step is to compile but that’s for another post.

Google BookmarksEvernoteGoogle GmailHotmailWordPressLinkedInFacebookDeliciousShare

Switch to our mobile site